- Attempt to fix another crash based on getAbility of RepeatEachEffect (Experimental Kraj)

This commit is contained in:
swordshine
2014-05-06 01:57:14 +00:00
parent 74504f22fe
commit 2685419a05
3 changed files with 7 additions and 3 deletions

View File

@@ -46,7 +46,7 @@ public class DelayedTriggerAi extends SpellAbilityAi {
@Override @Override
protected boolean canPlayAI(Player ai, SpellAbility sa) { protected boolean canPlayAI(Player ai, SpellAbility sa) {
final String svarName = sa.getParam("Execute"); final String svarName = sa.getParam("Execute");
final SpellAbility trigsa = AbilityFactory.getAbility(sa.getHostCard().getSVar(svarName), sa.getHostCard()); final SpellAbility trigsa = AbilityFactory.getAbility(sa.getSVar(svarName), sa.getHostCard());
trigsa.setActivatingPlayer(ai); trigsa.setActivatingPlayer(ai);
return AiPlayDecision.WillPlay == ((PlayerControllerAi)ai.getController()).getAi().canPlaySa(trigsa); return AiPlayDecision.WillPlay == ((PlayerControllerAi)ai.getController()).getAi().canPlaySa(trigsa);
} }

View File

@@ -161,11 +161,15 @@ public final class AbilityFactory {
spellAbility.setSVar(svar, hostCard.getSVar(svar)); spellAbility.setSVar(svar, hostCard.getSVar(svar));
} }
} }
if (api == ApiType.DelayedTrigger && mapParams.containsKey("Execute")) { if (api == ApiType.DelayedTrigger && mapParams.containsKey("Execute")) {
spellAbility.setSVar(mapParams.get("Execute"), hostCard.getSVar(mapParams.get("Execute"))); spellAbility.setSVar(mapParams.get("Execute"), hostCard.getSVar(mapParams.get("Execute")));
} }
if (api == ApiType.RepeatEach) {
spellAbility.setSVar(mapParams.get("RepeatSubAbility"), hostCard.getSVar(mapParams.get("RepeatSubAbility")));
}
if (mapParams.containsKey("PreventionSubAbility")) { if (mapParams.containsKey("PreventionSubAbility")) {
spellAbility.setSVar(mapParams.get("PreventionSubAbility"), hostCard.getSVar(mapParams.get("PreventionSubAbility"))); spellAbility.setSVar(mapParams.get("PreventionSubAbility"), hostCard.getSVar(mapParams.get("PreventionSubAbility")));
} }

View File

@@ -28,7 +28,7 @@ public class RepeatEachEffect extends SpellAbilityEffect {
Card source = sa.getHostCard(); Card source = sa.getHostCard();
// setup subability to repeat // setup subability to repeat
final SpellAbility repeat = AbilityFactory.getAbility(sa.getHostCard().getSVar(sa.getParam("RepeatSubAbility")), source); final SpellAbility repeat = AbilityFactory.getAbility(sa.getSVar(sa.getParam("RepeatSubAbility")), source);
repeat.setActivatingPlayer(sa.getActivatingPlayer()); repeat.setActivatingPlayer(sa.getActivatingPlayer());
((AbilitySub) repeat).setParent(sa); ((AbilitySub) repeat).setParent(sa);