#ifndef CREATURELIB_BATTLESIDE_HPP #define CREATURELIB_BATTLESIDE_HPP #include #include "Creature.hpp" #include "../TurnChoices/BaseTurnChoice.hpp" namespace CreatureLib::Battling{ class BattleSide : public ScriptSource{ uint8_t _creaturesPerSide; std::vector _creatures; std::vector _choices; uint8_t _choicesSet = 0; ScriptSet _volatile; Battle* _battle; public: explicit BattleSide(Battle* battle, uint8_t creaturesPerSide) : _creaturesPerSide(creaturesPerSide), _creatures(creaturesPerSide), _choices(creaturesPerSide), _battle(battle) { ResetChoices(); } [[nodiscard]] bool AllChoicesSet() const; [[nodiscard]] const std::vector& GetChoices() const; void SetChoice(BaseTurnChoice* choice); void ResetChoices(); void SetCreature(Creature* creature, uint8_t index); Creature* GetCreature(uint8_t index) const; bool CreatureOnSide(const Creature* creature) const; void GetActiveScripts(std::vector &scripts) override; }; } #endif //CREATURELIB_BATTLESIDE_HPP