From 3b685ae78259c4ec86342df668423fc4048edea8 Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Thu, 28 Nov 2019 12:16:03 +0100 Subject: [PATCH] Added layout for CreatureParty --- src/Battling/Flow/TurnHandler.cpp | 1 - src/Battling/Models/CreatureParty.cpp | 1 + src/Battling/Models/CreatureParty.hpp | 38 +++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 src/Battling/Models/CreatureParty.cpp create mode 100644 src/Battling/Models/CreatureParty.hpp diff --git a/src/Battling/Flow/TurnHandler.cpp b/src/Battling/Flow/TurnHandler.cpp index 169be10..0913a42 100644 --- a/src/Battling/Flow/TurnHandler.cpp +++ b/src/Battling/Flow/TurnHandler.cpp @@ -66,7 +66,6 @@ void TurnHandler::ExecuteAttackChoice(AttackTurnChoice *choice) { auto target = choice->GetUser()->GetBattle()->GetTarget(choice->GetTarget()); std::vector targets = {target}; - //TODO: Set ExecutingAttack data auto attack = new ExecutingAttack(targets, 1, choice->GetUser(), choice->GetAttack(), choice->GetAttackScript()); bool prevented = false; HOOK(PreventAttack, attack, attack, prevented); diff --git a/src/Battling/Models/CreatureParty.cpp b/src/Battling/Models/CreatureParty.cpp new file mode 100644 index 0000000..497ec1a --- /dev/null +++ b/src/Battling/Models/CreatureParty.cpp @@ -0,0 +1 @@ +#include "CreatureParty.hpp" diff --git a/src/Battling/Models/CreatureParty.hpp b/src/Battling/Models/CreatureParty.hpp new file mode 100644 index 0000000..ad06f24 --- /dev/null +++ b/src/Battling/Models/CreatureParty.hpp @@ -0,0 +1,38 @@ +#ifndef CREATURELIB_CREATUREPARTY_HPP +#define CREATURELIB_CREATUREPARTY_HPP + +#include +#include "Creature.hpp" + +namespace CreatureLib::Battling{ + template + class CreatureParty { + std::array _party; + + public: + CreatureParty(std::array party) : _party(party){ + } + + Creature* GetAtIndex(int index) const{ + return _party[index]; + } + + void Switch(int a, int b){ + auto ca = _party[a]; + _party[a] = _party[b]; + _party[b] = ca; + } + + bool HasAvailableCreatures() const{ + for (Creature* c: _party){ + if (c == nullptr) continue; + if (c->IsFainted()) continue; + return true; + } + return false; + } + }; +} + + +#endif //CREATURELIB_CREATUREPARTY_HPP