CreatureLib/src/Battling/Models/Battle.hpp

32 lines
786 B
C++

#ifndef CREATURELIB_BATTLE_HPP
#define CREATURELIB_BATTLE_HPP
#include <vector>
#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<BattleSide*> _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