#ifndef CREATURELIB_CREATUREPARTY_HPP #define CREATURELIB_CREATUREPARTY_HPP #include #include "Creature.hpp" namespace CreatureLib::Battling { class CreatureParty { std::vector _party; public: CreatureParty(std::vector party) : _party(party) {} CreatureParty(std::initializer_list party) : _party(party) {} ~CreatureParty() { for (auto c : _party) { delete c; } } 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; } std::vector& GetParty() { return _party; } }; } #endif // CREATURELIB_CREATUREPARTY_HPP