CreatureLib/src/Battling/Models/CreatureParty.hpp

39 lines
877 B
C++
Raw Normal View History

2019-11-28 11:16:03 +00:00
#ifndef CREATURELIB_CREATUREPARTY_HPP
#define CREATURELIB_CREATUREPARTY_HPP
#include <array>
#include "Creature.hpp"
namespace CreatureLib::Battling{
template <int max>
class CreatureParty {
std::array<Creature*, max> _party;
public:
CreatureParty(std::array<Creature*, max> 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