#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)){} const BaseTurnChoice* Dequeue(){ auto b = _queue[_current]; _current++; return b; } [[nodiscard]] bool HasNext() const{ return _current < _queue.size(); } }; } #endif //CREATURELIB_CHOICEQUEUE_HPP