39 lines
877 B
C++
39 lines
877 B
C++
|
#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
|