CreatureLib/src/Battling/Models/BattleSide.cpp

37 lines
984 B
C++
Raw Normal View History

2019-10-17 12:33:25 +00:00
#include "BattleSide.hpp"
2019-10-31 12:26:56 +00:00
#include "../../Core/Exceptions/CreatureException.hpp"
#include <algorithm>
using namespace CreatureLib::Battling;
bool BattleSide::AllChoicesSet() const {
for (uint8_t i = 0; i < _creaturesPerSide; i++){
if (_choices[i] == nullptr){
return false;
}
}
return true;
}
void BattleSide::ResetChoices() {
for (uint8_t i = 0; i < _creaturesPerSide; i++){
_choices[i] = nullptr;
}
}
const std::vector<const BaseTurnChoice *>& BattleSide::GetChoices() const{
return _choices;
}
void BattleSide::SetChoice(const BaseTurnChoice *choice) {
auto find = std::find(_creatures.begin(), _creatures.end(), choice->GetUser());
if (find ==_creatures.end())
2019-10-31 12:26:56 +00:00
throw CreatureException("User not found");
uint8_t index = std::distance(_creatures.begin(),find);
_choices[index] = choice;
}
void BattleSide::SetCreature(Creature *creature, uint8_t index) {
_creatures[index] = creature;
}