SpellAbilityEffect: registerDelayedTrigger: add more modi for what happend at the next end step.

This commit is contained in:
Hanmac
2016-07-22 14:42:27 +00:00
parent 0d3fde553f
commit 3bfccc55e5

View File

@@ -193,10 +193,21 @@ public abstract class SpellAbilityEffect {
} }
protected static void registerDelayedTrigger(final SpellAbility sa, final String location, final List<Card> crds) { protected static void registerDelayedTrigger(final SpellAbility sa, String location, final List<Card> crds) {
String delTrig = "Mode$ Phase | Phase$ End Of Turn | TriggerDescription$ " boolean your = location.startsWith("Your");
+ location + " " + crds + " at the beginning of the next end step."; if (your) {
final Trigger trig = TriggerHandler.parseTrigger(delTrig, sa.getHostCard(), true); location = location.substring("Your".length());
}
StringBuilder delTrig = new StringBuilder();
delTrig.append("Mode$ Phase | Phase$ End Of Turn ");
if (your) {
delTrig.append("| ValidPlayer$ You ");
}
delTrig.append("| TriggerDescription$ " + location + " " + crds + " at the beginning of ");
delTrig.append(your ? "your" : "the");
delTrig.append(" next end step.");
final Trigger trig = TriggerHandler.parseTrigger(delTrig.toString(), sa.getHostCard(), true);
for (final Card c : crds) { for (final Card c : crds) {
trig.addRemembered(c); trig.addRemembered(c);
} }
@@ -205,6 +216,8 @@ public abstract class SpellAbilityEffect {
trigSA = "DB$ SacrificeAll | Defined$ DelayTriggerRemembered | Controller$ You"; trigSA = "DB$ SacrificeAll | Defined$ DelayTriggerRemembered | Controller$ You";
} else if (location.equals("Exile")) { } else if (location.equals("Exile")) {
trigSA = "DB$ ChangeZone | Defined$ DelayTriggerRemembered | Origin$ Battlefield | Destination$ Exile"; trigSA = "DB$ ChangeZone | Defined$ DelayTriggerRemembered | Origin$ Battlefield | Destination$ Exile";
} else if (location.equals("Destroy")) {
trigSA = "DB$ Destroy | Cost$ 0 | Defined$ DelayTriggerRemembered";
} }
trig.setOverridingAbility(AbilityFactory.getAbility(trigSA, sa.getHostCard())); trig.setOverridingAbility(AbilityFactory.getAbility(trigSA, sa.getHostCard()));
sa.getActivatingPlayer().getGame().getTriggerHandler().registerDelayedTrigger(trig); sa.getActivatingPlayer().getGame().getTriggerHandler().registerDelayedTrigger(trig);