summaryrefslogtreecommitdiffstats
path: root/pokebattle/Arena.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2008-08-21 05:37:12 +0000
committerBen Boeckel <MathStuf@gmail.com>2008-08-21 05:37:12 +0000
commitc340fbb6635989fc24db6edd9d68544a376bca20 (patch)
tree1f5921b70e2a085f11237d40a6b0f80679338fbd /pokebattle/Arena.cpp
parentb99070118a3cedc4fcc7514ba95fce2646d649c4 (diff)
downloadsigen-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.cpp37
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()