diff options
author | Ben Boeckel <MathStuf@gmail.com> | 2008-06-07 17:17:56 +0000 |
---|---|---|
committer | Ben Boeckel <MathStuf@gmail.com> | 2008-06-07 17:17:56 +0000 |
commit | 73a9660e15ccd5bbabd5c90a63a3e15e36cee9fa (patch) | |
tree | c80e1689278951c2637fced0e9b1ed738411d20a /pokebattle/Team.cpp | |
parent | 86d1186803981df134dd9869bac7da1c89e1bd55 (diff) | |
download | sigen-73a9660e15ccd5bbabd5c90a63a3e15e36cee9fa.tar.gz sigen-73a9660e15ccd5bbabd5c90a63a3e15e36cee9fa.tar.xz sigen-73a9660e15ccd5bbabd5c90a63a3e15e36cee9fa.zip |
[FIX] UI files now use <> including rather than "" for KDE classes
[FIX] Moved battle to pokebattle
[FIX] Starting to figure out the battle system
git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@197 6ecfd1a5-f3ed-3746-8530-beee90d26b22
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; +} |