#pragma once

#include "classicarrownote.h"
#include "game/arrowelement.h"
#include "core/gameevent.h"

#include <vector>
#include <memory>

class ClassicGraphicsManager;

class HoldManager
{
public:
    void emplace(ClassicArrowNote* note);
    void checkRelease(kku::SystemEvent::Key::Code released_key);

    void drawHoldBar();

private:
    std::vector<ClassicArrowNote*> _notes_on_hold;
    std::shared_ptr<ClassicGraphicsManager> _graphics_manager;
};
