- NPE protection (Delayed Triggers have no Execute param).

This commit is contained in:
Sloth
2014-04-15 14:10:22 +00:00
parent ec9331ceb8
commit 3cea12e3dc
3 changed files with 6 additions and 3 deletions

View File

@@ -121,7 +121,8 @@ public class CountersPutAi extends SpellAbilityAi {
for (Trigger t : aiCreature.getTriggers()) { for (Trigger t : aiCreature.getTriggers()) {
if (t.getMode() == TriggerType.SpellCast) { if (t.getMode() == TriggerType.SpellCast) {
final Map<String, String> params = t.getMapParams(); final Map<String, String> params = t.getMapParams();
if ("Card.Self".equals(params.get("TargetsValid")) && "You".equals(params.get("ValidActivatingPlayer"))) { if ("Card.Self".equals(params.get("TargetsValid")) && "You".equals(params.get("ValidActivatingPlayer"))
&& params.containsKey("Execute")) {
SpellAbility heroic = AbilityFactory.getAbility(aiCreature.getSVar(params.get("Execute")),aiCreature); SpellAbility heroic = AbilityFactory.getAbility(aiCreature.getSVar(params.get("Execute")),aiCreature);
if ("Self".equals(heroic.getParam("Defined")) && "P1P1".equals(heroic.getParam("CounterType"))) { if ("Self".equals(heroic.getParam("Defined")) && "P1P1".equals(heroic.getParam("CounterType"))) {
int n = AbilityUtils.calculateAmount(aiCreature, heroic.getParam("CounterNum"), heroic); int n = AbilityUtils.calculateAmount(aiCreature, heroic.getParam("CounterNum"), heroic);

View File

@@ -149,7 +149,8 @@ public class EffectAi extends SpellAbilityAi {
for (Trigger t : aiCreature.getTriggers()) { for (Trigger t : aiCreature.getTriggers()) {
if (t.getMode() == TriggerType.SpellCast) { if (t.getMode() == TriggerType.SpellCast) {
final Map<String, String> params = t.getMapParams(); final Map<String, String> params = t.getMapParams();
if ("Card.Self".equals(params.get("TargetsValid")) && "You".equals(params.get("ValidActivatingPlayer"))) { if ("Card.Self".equals(params.get("TargetsValid")) && "You".equals(params.get("ValidActivatingPlayer"))
&& params.containsKey("Execute")) {
SpellAbility heroic = AbilityFactory.getAbility(aiCreature.getSVar(params.get("Execute")),aiCreature); SpellAbility heroic = AbilityFactory.getAbility(aiCreature.getSVar(params.get("Execute")),aiCreature);
if ("Self".equals(heroic.getParam("Defined")) && "P1P1".equals(heroic.getParam("CounterType"))) { if ("Self".equals(heroic.getParam("Defined")) && "P1P1".equals(heroic.getParam("CounterType"))) {
int amount = AbilityUtils.calculateAmount(aiCreature, heroic.getParam("CounterNum"), heroic); int amount = AbilityUtils.calculateAmount(aiCreature, heroic.getParam("CounterNum"), heroic);

View File

@@ -246,7 +246,8 @@ public class PumpAi extends PumpAiBase {
for (Trigger t : aiCreature.getTriggers()) { for (Trigger t : aiCreature.getTriggers()) {
if (t.getMode() == TriggerType.SpellCast) { if (t.getMode() == TriggerType.SpellCast) {
final Map<String, String> params = t.getMapParams(); final Map<String, String> params = t.getMapParams();
if ("Card.Self".equals(params.get("TargetsValid")) && "You".equals(params.get("ValidActivatingPlayer"))) { if ("Card.Self".equals(params.get("TargetsValid")) && "You".equals(params.get("ValidActivatingPlayer"))
&& params.containsKey("Execute")) {
SpellAbility heroic = AbilityFactory.getAbility(aiCreature.getSVar(params.get("Execute")),aiCreature); SpellAbility heroic = AbilityFactory.getAbility(aiCreature.getSVar(params.get("Execute")),aiCreature);
if ("Self".equals(heroic.getParam("Defined")) && "P1P1".equals(heroic.getParam("CounterType"))) { if ("Self".equals(heroic.getParam("Defined")) && "P1P1".equals(heroic.getParam("CounterType"))) {
int amount = AbilityUtils.calculateAmount(aiCreature, heroic.getParam("CounterNum"), heroic); int amount = AbilityUtils.calculateAmount(aiCreature, heroic.getParam("CounterNum"), heroic);