diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2009-02-22 20:15:47 -0500 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2009-02-22 20:15:47 -0500 |
| commit | 7883e40cd8dbe3195ccc0ebe2816098217fde583 (patch) | |
| tree | 76c55e916868b1c383e58234871c03d35b23f26a /sigencore/TeamMember.cpp | |
| parent | de3f4a4a015f716a3ac91d794a6e8a5fd43ae37a (diff) | |
| download | sigen-7883e40cd8dbe3195ccc0ebe2816098217fde583.tar.gz sigen-7883e40cd8dbe3195ccc0ebe2816098217fde583.tar.xz sigen-7883e40cd8dbe3195ccc0ebe2816098217fde583.zip | |
Added Move script handling to TeamMember
Diffstat (limited to 'sigencore/TeamMember.cpp')
| -rw-r--r-- | sigencore/TeamMember.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/sigencore/TeamMember.cpp b/sigencore/TeamMember.cpp index 2fa7ad98..4f3937db 100644 --- a/sigencore/TeamMember.cpp +++ b/sigencore/TeamMember.cpp @@ -558,6 +558,19 @@ bool Sigencore::TeamMember::addMove(Sigscript::MoveWrapper* move) } if (canLearn && (m_moves.size() < m_sigmod->rules()->maxMoves()) && !m_moves.contains(move)) { + Team* team = qobject_cast<Team*>(m_containment); + if (team) + { + ObjectMap worldObjects; + worldObjects["move"] = move; + worldObjects["owner"] = this; + worldObjects["client"] = team->player(); + worldObjects["sigmod"] = m_sigmod; + worldObjects["world"] = team->player()->world(); + Kross::Action* worldAction = runScript(QUuid::createUuid(), move->worldScript(), worldObjects, m_moveWorldScripts); + m_moveWorldScriptsMap[move] = worldAction; + worldAction->trigger(); + } m_moves.append(move); emit(moveAdded(move)); return true; @@ -569,6 +582,10 @@ bool Sigencore::TeamMember::removeMove(Sigscript::MoveWrapper* move) { if (m_moves.contains(move) && (1 < m_moves.size())) { + delete m_moveBattleScriptsMap[move]; + m_moveBattleScriptsMap.remove(move); + delete m_moveWorldScriptsMap[move]; + m_moveWorldScriptsMap.remove(move); m_moves.removeOne(move); emit(moveRemoved(move)); return true; |
