From 7883e40cd8dbe3195ccc0ebe2816098217fde583 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Sun, 22 Feb 2009 20:15:47 -0500 Subject: Added Move script handling to TeamMember --- sigencore/TeamMember.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'sigencore/TeamMember.cpp') 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(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; -- cgit