summaryrefslogtreecommitdiffstats
path: root/sigencore/TeamMember.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2009-02-09 05:25:12 -0500
committerBen Boeckel <MathStuf@gmail.com>2009-02-09 05:25:12 -0500
commit653e738133e5f54e16e2484d6a9475ba1b02853d (patch)
tree6e959732ade41272f3ed3bd8801a996e999d7a14 /sigencore/TeamMember.cpp
parent62add64f02b1738e42b779a498facbe6d3a50979 (diff)
downloadsigen-653e738133e5f54e16e2484d6a9475ba1b02853d.tar.gz
sigen-653e738133e5f54e16e2484d6a9475ba1b02853d.tar.xz
sigen-653e738133e5f54e16e2484d6a9475ba1b02853d.zip
Reorganized the Action enumeration to be flexible and have script overrides
Diffstat (limited to 'sigencore/TeamMember.cpp')
-rw-r--r--sigencore/TeamMember.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/sigencore/TeamMember.cpp b/sigencore/TeamMember.cpp
index 67cdea3f..403cce2d 100644
--- a/sigencore/TeamMember.cpp
+++ b/sigencore/TeamMember.cpp
@@ -22,6 +22,7 @@
#include "Arena.h"
#include "Containment.h"
#include "Player.h"
+#include "RunScript.h"
// Sigscript includes
#include "../sigscript/AbilityWrapper.h"
@@ -78,9 +79,19 @@ int Sigencore::actionPriority(TeamMember* teamMember, const TeamMember::Action&
case TeamMember::Timeout:
priority = INT_MAX;
break;
- case TeamMember::Invalid:
- priority = INT_MAX - 1;
+ default:
+ {
+ bool ok;
+ ObjectMap objects;
+ objects["arena"] = teamMember->arena();
+ objects["owner"] = teamMember;
+ objects["sigmod"] = teamMember->sigmod();
+ Kross::Action* kaction = globalScript(teamMember->sigmod(), QString("battleaction-priority-%1").arg(action.first), QUuid::createUuid().toString());
+ priority = kaction->callFunction("priority").toInt(&ok);
+ if (!ok)
+ priority = 0;
break;
+ }
}
return priority;
}