#ifndef CREATURELIB_BATTLE_HPP #define CREATURELIB_BATTLE_HPP #include #include "BattleSide.hpp" #include "../Library/BattleLibrary.hpp" #include "../TurnChoices/BaseTurnChoice.hpp" #include "../Flow/ChoiceQueue.hpp" namespace CreatureLib::Battling { class Battle { const BattleLibrary* _library; uint8_t _numberOfSides; uint8_t _creaturesPerSide; std::vector _sides; ChoiceQueue* _currentTurnQueue = nullptr; public: const BattleLibrary* GetLibrary() const; virtual bool CanUse(BaseTurnChoice* choice); virtual bool TrySetChoice(BaseTurnChoice* choice); void CheckChoicesSetAndRun(); ChoiceQueue* GetCurrentTurnQueue() const; }; } #endif //CREATURELIB_BATTLE_HPP