#pragma once

#include "classicmode/classicactions.h"

#include "core/gameevent.h"
#include "core/point.h" 

#include <memory>
#include <vector>
#include <array>

class ClassicAnimationScenario;
class ClassicNoteGraphics;
class ClassicSelectionGraphics;

struct MockElement
{
    std::shared_ptr<ClassicNoteGraphics> sprite;
    std::shared_ptr<ClassicSelectionGraphics> selection;
    bool selected;

    std::array<std::shared_ptr<ClassicAnimationScenario>, 5> animations;

    kku::Point position;
    std::vector<kku::Point> falling_curve_interpolation;

    Type type = Type::NONE;

    // Each note may consist of several buttons.
    // For example, ↑ → or ↓ → ←
    // Note Element represents this idea.
};
