///////////////////////////////////////////////////////////////////////////// // Name: battle/Team.cpp // Purpose: Base class which is used to interface with the arena // Author: Ben Boeckel // Modified by: Ben Boeckel // Created: Tue Oct 16 2007 19:22:20 // Copyright: ©2007-2008 Ben Boeckel and Nerdy Productions // Licence: // 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 . ///////////////////////////////////////////////////////////////////////////// #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; }