#pragma once

#include "tools/mathutils.h"
#include <memory>

class ClassicSprite;

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

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

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