diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2008-08-21 05:37:12 +0000 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2008-08-21 05:37:12 +0000 |
| commit | c340fbb6635989fc24db6edd9d68544a376bca20 (patch) | |
| tree | 1f5921b70e2a085f11237d40a6b0f80679338fbd /pokebattle/Arena.cpp | |
| parent | b99070118a3cedc4fcc7514ba95fce2646d649c4 (diff) | |
| download | sigen-c340fbb6635989fc24db6edd9d68544a376bca20.tar.gz sigen-c340fbb6635989fc24db6edd9d68544a376bca20.tar.xz sigen-c340fbb6635989fc24db6edd9d68544a376bca20.zip | |
[FIX] Cleaned up some TODO tags (fine tuning)
[FIX] Now using QUuid for unique action names in Kross
git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@242 6ecfd1a5-f3ed-3746-8530-beee90d26b22
Diffstat (limited to 'pokebattle/Arena.cpp')
| -rw-r--r-- | pokebattle/Arena.cpp | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/pokebattle/Arena.cpp b/pokebattle/Arena.cpp index 6ab004c2..1ba34a00 100644 --- a/pokebattle/Arena.cpp +++ b/pokebattle/Arena.cpp @@ -42,31 +42,28 @@ Pokebattle::TeamMember::Action Pokebattle::decision(TeamMember* teamMember) return teamMember->requestAction(); } -QSet<int> Pokebattle::Arena::m_arenaIds; - Pokebattle::Arena::Arena(QList<Player*> players, QObject* parent) : Pokescripting::Config(parent), m_players(players), - m_id(0) + m_id(QUuid::createUuid()) { connect(this, SIGNAL(battleEnd()), SLOT(cleanUp())); - for (; (m_id < m_arenaIds.size()) && m_arenaIds.contains(m_id); ++m_id) - ; - m_arenaIds.insert(m_id); - m_actions = new Kross::ActionCollection(QString("arena-%1").arg(m_id), Kross::Manager::self().actionCollection()); + m_actions = new Kross::ActionCollection(QString("arena-%1").arg(m_id.toString()), Kross::Manager::self().actionCollection()); foreach (Player* player, m_players) player->enterArena(this); } Pokebattle::Arena::~Arena() { - m_arenaIds.remove(m_id); delete m_actions; } QList<Pokebattle::TeamMember*> Pokebattle::Arena::active() const { - // TODO: return all active team members + QList<Pokebattle::TeamMember*> active; + foreach (Player* player, m_players) + active += player->active(); + return active; } void Pokebattle::Arena::registerScript(const QString& name, const Pokemod::Script& script) @@ -74,7 +71,7 @@ void Pokebattle::Arena::registerScript(const QString& name, const Pokemod::Scrip Kross::Action* action = new Kross::Action(m_actions, name); action->setInterpreter(script.interpreter()); action->setCode(script.script().toUtf8()); - action->addObject(this, "arena", Kross::ChildrenInterface::AutoConnectSignals); + action->addObject(this, "arena"); action->trigger(); } @@ -85,7 +82,25 @@ void Pokebattle::Arena::cleanUp() void Pokebattle::Arena::handleAction(TeamMember* teamMember, TeamMember::Action action) { - // TODO: do whatever action is needed + switch (action.first) + { + case TeamMember::Attack: + // TODO: Start move script + break; + case TeamMember::Item: + // TODO: Start item script + break; + case TeamMember::Switch: + // TODO: Switch with the other member + break; + case TeamMember::Run: + // TODO: Run if possible, skip if fail + break; + case TeamMember::Skip: + case TeamMember::Timeout: + // TODO: Can't do anything... + break; + } } void Pokebattle::Arena::setupBattle() |
