diff options
Diffstat (limited to 'pokebattle/Team.cpp')
-rw-r--r-- | pokebattle/Team.cpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/pokebattle/Team.cpp b/pokebattle/Team.cpp new file mode 100644 index 00000000..707b05d9 --- /dev/null +++ b/pokebattle/Team.cpp @@ -0,0 +1,72 @@ +/* + * Copyright 2007-2008 Ben Boeckel <MathStuf@gmail.com> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "Team.h" + +Team::Team(const PokeMod::Pokemod& par) : + active(0), + parent(par) +{ +} + +void Team::AddItem(const unsigned i, const unsigned amt) +{ + if (amt) + items[i] = amt; +} + +void Team::UseItem(const unsigned i) +{ + if (items.contains(i) && (items[i] != UINT_MAX)) + { + --items[i]; + if (!items[i]) + items.remove(i); + } +} + +void Team::AddPokemon(Pokemon& p) +{ + pokemon.append(&p); +} + +void Team::SwapPokemon(const unsigned a, const unsigned b) +{ + if ((a < pokemon.size()) && (b < pokemon.size())) + { + Pokemon* p = pokemon[a]; + pokemon[a] = pokemon[b]; + pokemon[b] = p; + } +} + +bool Team::SetActivePokemon(const unsigned a) +{ + if ((a < pokemon.size()) && pokemon[a]->CanFight()) + active = a; +} + +unsigned Team::CanFight() const +{ + unsigned alive = 0; + for (unsigned i = 0; (i < pokemon.size()) && !alive; ++i) + { + if (pokemon[i]->CanFight()) + ++alive; + } + return alive; +} |