#pragma once

#include "core/time.h"

#include <memory>

class ClassicNoteGraphics;

class ClassicAnimationScenario
{
public:
    virtual ~ClassicAnimationScenario() = default;

    virtual void launch(const std::shared_ptr<ClassicNoteGraphics> sprite, const kku::microsec& time_begin, const kku::microsec &time_end) = 0;
    virtual void update(const kku::microsec& music_offset) = 0;
    virtual bool isDone() const = 0;

protected:
    std::shared_ptr<ClassicNoteGraphics> _sprite;
    kku::microsec _time_begin;
    kku::microsec _time_end;
};
