#ifndef CREATURELIB_CHOICEQUEUE_HPP #define CREATURELIB_CHOICEQUEUE_HPP #include #include #include "../TurnChoices/BaseTurnChoice.hpp" namespace CreatureLib::Battling { class ChoiceQueue { std::vector _queue; size_t _current = 0; public: bool HasCompletedQueue = false; explicit ChoiceQueue(std::vector queue) : _queue(std::move(queue)) {} BaseTurnChoice* Dequeue() { auto b = _queue[_current]; _current++; return b; } [[nodiscard]] bool HasNext() const { return _current < _queue.size(); } std::vector& GetInnerQueue() { return _queue; } }; } #endif // CREATURELIB_CHOICEQUEUE_HPP