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 /battle | |
| parent | 86d1186803981df134dd9869bac7da1c89e1bd55 (diff) | |
[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 'battle')
| -rw-r--r-- | battle/Arena.cpp | 39 | ||||
| -rw-r--r-- | battle/Arena.h | 79 | ||||
| -rw-r--r-- | battle/Bot.h | 47 | ||||
| -rw-r--r-- | battle/Ghost.cpp | 98 | ||||
| -rw-r--r-- | battle/Ghost.h | 70 | ||||
| -rw-r--r-- | battle/GhostBot.h | 47 | ||||
| -rw-r--r-- | battle/Pokemon.h | 95 | ||||
| -rw-r--r-- | battle/Team.cpp | 77 | ||||
| -rw-r--r-- | battle/Team.h | 55 | ||||
| -rw-r--r-- | battle/battle.pro | 60 |
10 files changed, 0 insertions, 667 deletions
diff --git a/battle/Arena.cpp b/battle/Arena.cpp deleted file mode 100644 index 0927a50c..00000000 --- a/battle/Arena.cpp +++ /dev/null @@ -1,39 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: ai/AlphaBeta.cpp -// Purpose: Alpha-Beta pruning MiniMax tree -// Author: Ben Boeckel -// Modified by: Ben Boeckel -// Created: Tue Oct 16 2007 09:09:44 -// 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 <http://www.gnu.org/licenses/>. -///////////////////////////////////////////////////////////////////////////// - -#include "Arena.h" - -long Arena::AlphaBeta(AIProfile ai, Arena arena, const unsigned depth, const long alpha, const long beta) -{ - long val; - if (!depth) - return ai.eval(Arena); - while (CanSimulate()) - { - val = -AlphaBeta(Arena.Simulate(), depth - 1, -beta, -alpha); - if (beta <= val) - return beta; - if (alpha < val) - alpha = val; - } - return alpha; -} diff --git a/battle/Arena.h b/battle/Arena.h deleted file mode 100644 index 3745b065..00000000 --- a/battle/Arena.h +++ /dev/null @@ -1,79 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: battle/Arena.h -// Purpose: Class to handle the battle environment -// Author: Ben Boeckel -// Modified by: Ben Boeckel -// Created: Tue Oct 16 2007 09:21:30 -// 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 <http://www.gnu.org/licenses/>. -///////////////////////////////////////////////////////////////////////////// - -#ifndef __BATTLE_ARENA__ -#define __BATTLE_ARENA__ - -#include <QString> -#include "Pokemon.h" -#include "Team.h" -#include "pokemod/Ability.h" -#include "pokemod/Item.h" -#include "pokemod/MapTrainer.h" -#include "pokemod/Move.h" -#include "pokemod/Nature.h" -#include "pokemod/Pokemon.h" -#include "pokemod/Type.h" - -class Arena -{ - public: - typedef struct - { - unsigned action; - union - { - Pokemon pokemon; - unsigned value; - }; - }Action; - - enum - { - A_Fight = 0, - A_Switch = 1, - A_Item = 2, - A_Run = 3, - A_End_Choices = 4, - A_Ability = 4, - A_HeldItem = 5, - A_End_All = 6 - }; - - Arena(Team& p, Team& e); - - bool Play(); - - unsigned CheckWeather() const; - private: - void AskForActions(); - void ParseActions(const Action action1, const Action action2); - - long PokeGen::AlphaBeta(AIProfile ai, Arena arena, const unsigned depth, const long alpha = LONG_MIN, const long beta = LONG_MAX); - - Team player; - Team opponent; - - unsigned weather; -}; - -#endif diff --git a/battle/Bot.h b/battle/Bot.h deleted file mode 100644 index d20333da..00000000 --- a/battle/Bot.h +++ /dev/null @@ -1,47 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: battle/Bot.h -// Purpose: AI interface to the Team class -// Author: Ben Boeckel -// Modified by: Ben Boeckel -// Created: Tue Oct 16 2007 11:44:16 -// 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 <http://www.gnu.org/licenses/>. -///////////////////////////////////////////////////////////////////////////// - -#ifndef __POKEGEN_BOT__ -#define __POKEGEN_BOT__ - -#include <QList> -#include <QMap> -#include "../general/Ini.h" -#include "AIProfile.h" -#include "Arena.h" -#include "GhostBot.h" -#include "Team.h" -#include "../pokemod/MapTrainer.h" - -class Bot : public Team -{ - public: - Bot(const PokeMod::Pokemod& par, PokeMod::MapTrainer trainer); - - void InformOfAction(Arena::Action action); - Arena::Action RequestAction(Arena arena); - private: - GhostBot simulator; - AIProfile ai; -}; - -#endif diff --git a/battle/Ghost.cpp b/battle/Ghost.cpp deleted file mode 100644 index b994da05..00000000 --- a/battle/Ghost.cpp +++ /dev/null @@ -1,98 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: battle/Ghost.cpp -// Purpose: Ghost used by the AI for simulations -// Author: Ben Boeckel -// Modified by: Ben Boeckel -// Created: Tue Oct 16 2007 19:29:30 -// 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 <http://www.gnu.org/licenses/>. -///////////////////////////////////////////////////////////////////////////// - -#include "Ghost.h" - -Ghost(const PokeMod::Pokemod& par, const unsigned s, const unsigned l, const unsigned t) : - Pokemon(par, s, l), - teamSize(t), - unknownMoves(par->GetMaxMoves()) -{ - for (unsigned i = 0; i < PokeMod::ST_End_GSC; ++i) - { - dv[i] = 0; - statExp[i] = 0; - minStats[i] = GetStat(i); - dv[i] = pokemod->GetMaxDV(); - statExp[i] = 65535; - maxStats[i] = GetStat(i); - } - Species* pkmn = pokemod->GetSpeciesByID(s); - if (pkmn->GetNumAbilities() == 1) - FeedAbility(pkmn->GetAbility(0)); -} - -void FeedAttack(const unsigned actualDamage, const unsigned stat, const unsigned otherLevel, const unsigned power, const bool isAttacker) -{ - -} - -void FeedItem(const unsigned i) -{ - items.append(i); -} - -void FeedMove(const unsigned m) -{ - if (!moves.contains(m)) - { - moves.insert(m); - --unknownMoves; - moveChances[m] = UINT_MAX; - for (QMutableMapIterator<unsigned, unsigned> i(moveChances); i.hasNext(); i.next()) - { - if (i.value() != UINT_MAX) - { - i.value() *= unknownMoves; - i.value() /= (unknownMoves + 1); - if (!i.value()) - moveChances.erase(i); - } - } - for (QListIterator<MoveCombo> i(moveCombos); i.hasNext(); i.next()) - { - if (i.prereqs.intersect(moves).size() && !moves.contains(i.move)) - moves[i.move] *= i.chance; - } - } -} - -void FeedMoveChance(const unsigned m, const unsigned weight) -{ - moveChances[m] = weight; -} - -void FeedAbility(const unsigned a) -{ - ability = a; -} - -void UpdateHP() -{ - curHP = hpPercent * maxStats[PokeMod::ST_HP]; -} - -void SetHP(const Frac p) -{ - hpPercent = p; - UpdateHP(); -} diff --git a/battle/Ghost.h b/battle/Ghost.h deleted file mode 100644 index 84d0d09e..00000000 --- a/battle/Ghost.h +++ /dev/null @@ -1,70 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: battle/Ghost.h -// Purpose: Ghost used by the AI for simulations -// Author: Ben Boeckel -// Modified by: Ben Boeckel -// Created: Tue Oct 16 2007 11:52:23 -// 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 <http://www.gnu.org/licenses/>. -///////////////////////////////////////////////////////////////////////////// - -#ifndef __POKEGEN_GHOST__ -#define __POKEGEN_GHOST__ - -#include <QList> -#include <QMap> -#include <QSet> -#include "../general/Ini.h" -#include "../pokemod/Frac.h" -#include "Arena.h" -#include "Team.h" - -class Ghost : public Pokemon -{ - public: - Ghost(const PokeMod::Pokemod& par, const unsigned s, const unsigned l); - - void FeedAttack(const unsigned actualDamage, const unsigned stat, const unsigned otherLevel, const unsigned power, const bool isAttacker); - void FeedItem(const unsigned i); - void FeedMove(const unsigned m); - void FeedMoveChance(const unsigned m, const unsigned weight); - void FeedMoveCombo(const MoveCombo m); - void FeedAbility(const unsigned a); - - void UpdateHP(); - void SetHP(const Frac p); - private: - struct MoveCombo - { - public: - MoveCombo(const QSet<unsigned> p, const unsigned m, const unsigned c) : - prereqs(p), - move(m), - chance(c) - { - } - QSet<unsigned> prereqs; - unsigned move; - const unsigned chance; - }; - - unsigned minStats[PokeMod::ST_End_GSC]; - unsigned maxStats[PokeMod::ST_End_GSC]; - QMap<unsigned, unsigned> moveChances; - QList<MoveCombo> moveCombos; - unsigned unknownMoves; -}; - -#endif diff --git a/battle/GhostBot.h b/battle/GhostBot.h deleted file mode 100644 index f5c986d8..00000000 --- a/battle/GhostBot.h +++ /dev/null @@ -1,47 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pokegen/GhostBot.h -// Purpose: Ghost player used by the AI for simulations -// Author: Ben Boeckel -// Modified by: Ben Boeckel -// Created: Tue Oct 16 2007 11:52:23 -// 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 <http://www.gnu.org/licenses/>. -///////////////////////////////////////////////////////////////////////////// - -#ifndef __POKEGEN_GHOSTBOT__ -#define __POKEGEN_GHOSTBOT__ - -#include <QList> -#include <QMap> -#include "../Ini.h" -#include "AIProfile.h" -#include "Arena.h" -#include "Ghost.h" -#include "Team.h" - -class GhostBot : public Team -{ - public: - Ghost(const PokeMod::Pokemod& par, const QString aiFile, Bot host, const unsigned s, const unsigned l); - - void FeedAttack(const unsigned stat, const unsigned otherLevel, const unsigned power, const bool isAttacker); - void FeedItem(const unsigned i); - void FeedMove(const unsigned m); - void FeedAbility(const unsigned a); - private: - AIProfile ai; -}; - -#endif diff --git a/battle/Pokemon.h b/battle/Pokemon.h deleted file mode 100644 index 5b5b7a8c..00000000 --- a/battle/Pokemon.h +++ /dev/null @@ -1,95 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pokegen/Pokemon.h -// Purpose: Data relevant to a Pokemon in the game -// Author: Ben Boeckel -// Modified by: Ben Boeckel -// Created: Tue Oct 16 2007 09:21:30 -// 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 <http://www.gnu.org/licenses/>. -///////////////////////////////////////////////////////////////////////////// - -#ifndef __POKEGEN_POKEMON__ -#define __POKEGEN_POKEMON__ - -#include <QList> -#include <QSet> -#include <QString> -#include "../general/Frac.h" -#include "../general/Ini.h" -#include "../pokemod/Ability.h" -#include "../pokemod/Item.h" -#include "../pokemod/Nature.h" -#include "../pokemod/Pokemod.h" -#include "../pokemod/Species.h" - -class Pokemon -{ - public: - Pokemon(const PokeMod::Pokemod& par, Ini ini); - Pokemon(const PokeMod::Pokemod& par, const unsigned s, const unsigned l); - - unsigned GetStat(const unsigned s) const; - unsigned GetLevel() const; - - unsigned GetNumMoves() const; - bool SimulateMove(const unsigned m) const; - bool UseMove(const unsigned m); - bool UnlearnMove(const unsigned m); - - bool SetStatus(const unsigned s); - - bool UseItemOn(const unsigned i); - - unsigned GetNumHeldItems() const; - unsigned GetHeldItem(const unsigned h); - bool GiveItem(const unsigned i); - bool TakeItem(const unsigned i); - bool SimulateTakeItem(const unsigned i) const; - - bool CanFight() const; - - void OutOfBattle(); - protected: - typedef struct - { - Frac statMultipliers[PokeMod::ST_End_Battle]; - bool isConfused; - bool isAttracted; - QList<bool> diabled; - unsigned substituteHP; - Frac toxicMultiplier; - }BattleSettings; - - void GrowLevel(); - - unsigned species; - QString name; - QSet<unsigned> moves; - QList<unsigned> heldItems; - QList<Frac> powerPoints; - unsigned dv[PokeMod::ST_End_GSC]; - unsigned statExp[PokeMod::ST_End_GSC]; - unsigned curHP; - unsigned experience; - unsigned nature; - unsigned ability; - unsigned status; - - BattleSettings battleSettings; - - const PokeMod::Pokemod& pokemod; -}; - -#endif diff --git a/battle/Team.cpp b/battle/Team.cpp deleted file mode 100644 index f1d83b54..00000000 --- a/battle/Team.cpp +++ /dev/null @@ -1,77 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// 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 <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; -} diff --git a/battle/Team.h b/battle/Team.h deleted file mode 100644 index b18b60fa..00000000 --- a/battle/Team.h +++ /dev/null @@ -1,55 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: battle/Team.h -// Purpose: Base class which is used to interface with the arena -// Author: Ben Boeckel -// Modified by: Ben Boeckel -// Created: Tue Oct 16 2007 09:21:30 -// 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 <http://www.gnu.org/licenses/>. -///////////////////////////////////////////////////////////////////////////// - -#ifndef __BATTLE_TEAM__ -#define __BATTLE_TEAM__ - -#include <QList> -#include <QMap> -#include "Arena.h" -#include "Pokemon.h" - -class Team -{ - public: - Team(const PokeMod::Pokemod& par); - - void AddItem(const unsigned i, const unsigned amt); - void UseItem(const unsigned i); - - void AddPokemon(Pokemon& p); - void SwapPokemon(const unsigned a, const unsigned b); - bool SetActivePokemon(const unsigned a); - - unsigned CanFight() const; - - virtual void InformOfAction(Arena::Action action); - virtual Arena::Action RequestAction(Arena arena); - protected: - QList<Pokemon*> pokemon; - QMap<unsigned, unsigned> items; - unsigned active; - - const PokeMod::Pokemod& parent; -}; - -#endif diff --git a/battle/battle.pro b/battle/battle.pro deleted file mode 100644 index 818d3fe7..00000000 --- a/battle/battle.pro +++ /dev/null @@ -1,60 +0,0 @@ -OBJECTS_DIR = .obj -DESTDIR = ../../lib -TEMPLATE = lib -LIBS += -L../../lib -lgeneral -lpokemod - -CONFIG += qt warn_on dll exceptions - -# Following is reformatted from the KTIGCC .pro file -win32 { - KDEPREFIX = $$(KDEPREFIX) - isEmpty(KDEPREFIX){ - # Try running kde4-config, however chances are it's not in the path or it was compiled with a bad prefix. - KDEPREFIX = $$system(kde4-config --prefix) - isEmpty(KDEPREFIX) : error("KDE 4 kdelibs not found, set KDEPREFIX.") - !exists($$KDEPREFIX) : error("KDE 4 kdelibs not found, set KDEPREFIX.") - } - KDEINCDIR = $$KDEPREFIX/include - # $$KDEINCDIR/mingw contains the kdewin32 headers, defining stuff like mkdtemp. - INCLUDEPATH += $$KDEINCDIR/mingw $$KDEINCDIR - LIBS += -lkdewin32 - QMAKE_LIBDIR = $$KDEPREFIX/lib $$QMAKE_LIBDIR -}else { - KDEPREFIX = $$system(kde4-config --prefix) - isEmpty(KDEPREFIX) : error("KDE 4 kdelibs required.") - exists($$KDEPREFIX/include/kde4/KDE){ - KDEINCDIR = $$KDEPREFIX/include/kde4 - } else : exists($$KDEPREFIX/include/kde/KDE){ - KDEINCDIR = $$KDEPREFIX/include/kde - } else { - KDEINCDIR = $$KDEPREFIX/include - } - INCLUDEPATH += $$KDEINCDIR - KDELIBDIR = $$KDEPREFIX/lib$$system(kde4-config --libsuffix) - KDEDEVELLIBDIR = $$KDELIBDIR - exists($$KDEDEVELLIBDIR/kde4/devel){ - KDEDEVELLIBDIR = $$KDEDEVELLIBDIR/kde4/devel - } - !equals(KDEDEVELLIBDIR,/usr/lib) : !equals(KDEDEVELLIBDIR,/usr/lib64){ - QMAKE_LIBDIR = $$KDEDEVELLIBDIR $$QMAKE_LIBDIR - } - !equals(KDELIBDIR,/usr/lib):!equals(KDELIBDIR,/usr/lib64){ - !darwin-* : !macx-* { - LIBS += -Wl,--rpath,"$$KDELIBDIR" - } - } -} - -INCLUDEPATH += ../pokemod ../general -TARGETDEPS += ../../lib/libpokemod.so ../../lib/libgeneral.so - -SOURCES += Arena.cpp \ - Ghost.cpp \ - Team.cpp - -HEADERS += Arena.h \ - Bot.h \ - GhostBot.h \ - Ghost.h \ - Pokemon.h \ - Team.h |
