///////////////////////////////////////////////////////////////////////////// // Name: pokemod/SpeciesAbility.h // Purpose: Define an ability that a species can have // Author: Ben Boeckel // Modified by: Ben Boeckel // Created: Tue Mar 20 18:39:17 2007 // 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 . ///////////////////////////////////////////////////////////////////////////// #ifndef __POKEMOD_SPECIESABILITY__ #define __POKEMOD_SPECIESABILITY__ #include #include "../general/Exception.h" #include "Object.h" class Pokemod; class SpeciesAbility : public Object { public: SpeciesAbility(const Pokemod& par, const unsigned _id); SpeciesAbility(const Pokemod& par, const SpeciesAbility& a, const unsigned _id); SpeciesAbility(const Pokemod& par, const QString& fname, const unsigned _id = UINT_MAX); void load(const QString& fname, const unsigned _id = UINT_MAX) throw(Exception); void save(const QString& species) const throw(Exception); void setAbility(const unsigned a) throw(BoundsException); void setWeight(const unsigned w) throw(BoundsException); unsigned getAbility() const; unsigned getWeight() const; SpeciesAbility& operator=(const SpeciesAbility& rhs); private: bool validate() const; unsigned ability; unsigned weight; }; #endif