From 7471d249b741a561b9829222fa3819a479852a22 Mon Sep 17 00:00:00 2001 From: Hellfish Date: Wed, 16 Nov 2011 16:03:06 +0000 Subject: [PATCH] *TriggerHandler now runs static triggers before others. Fixes Adaptive Automaton not pumping Champion of the Parish and others. --- .../forge/card/trigger/TriggerHandler.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/java/forge/card/trigger/TriggerHandler.java b/src/main/java/forge/card/trigger/TriggerHandler.java index ef7cd6f37fe..e49a8835596 100644 --- a/src/main/java/forge/card/trigger/TriggerHandler.java +++ b/src/main/java/forge/card/trigger/TriggerHandler.java @@ -290,14 +290,29 @@ public class TriggerHandler { // This is done to allow the list of triggers to be modified while // triggers are running. final ArrayList delayedTriggersWorkingCopy = new ArrayList(this.delayedTriggers); - CardList allCards; + CardList allCards = AllZoneUtil.getCardsInGame(); + + //Static triggers + for(final Card c : allCards) { + for(final Trigger t : c.getTriggers()) { + if(t.getMapParams().containsKey("Static")) { + this.runSingleTrigger(t, mode, runParams); + } + } + } + + this.suppressMode("Always"); + AllZone.getGameAction().checkStateEffects(true); + this.clearSuppression("Always"); // AP allCards = playerAP.getAllCards(); allCards.addAll(AllZoneUtil.getCardsIn(Constant.Zone.Stack).getController(playerAP)); for (final Card c : allCards) { for (final Trigger t : c.getTriggers()) { - this.runSingleTrigger(t, mode, runParams); + if(!t.getMapParams().containsKey("Static")) { + this.runSingleTrigger(t, mode, runParams); + } } } for (int i = 0; i < delayedTriggersWorkingCopy.size(); i++) { @@ -316,7 +331,9 @@ public class TriggerHandler { allCards.addAll(AllZoneUtil.getCardsIn(Constant.Zone.Stack).getController(playerAP.getOpponent())); for (final Card c : allCards) { for (final Trigger t : c.getTriggers()) { - this.runSingleTrigger(t, mode, runParams); + if(!t.getMapParams().containsKey("Static")) { + this.runSingleTrigger(t, mode, runParams); + } } } for (int i = 0; i < delayedTriggersWorkingCopy.size(); i++) {