From b6547808cd4b1191f36ef794f5bb06ea43199d1d Mon Sep 17 00:00:00 2001 From: Sol Date: Sun, 22 Jul 2012 03:10:03 +0000 Subject: [PATCH] - Latest attempt at fixing City of Brass triggers without screwing up Priority. --- src/main/java/forge/game/zone/MagicStack.java | 25 +++++++------------ 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/src/main/java/forge/game/zone/MagicStack.java b/src/main/java/forge/game/zone/MagicStack.java index b9370bcab3b..ab3577ad5cb 100644 --- a/src/main/java/forge/game/zone/MagicStack.java +++ b/src/main/java/forge/game/zone/MagicStack.java @@ -454,18 +454,9 @@ public class MagicStack extends MyObservable { sp.setActivatingPlayer(sp.getSourceCard().getController()); System.out.println(sp.getSourceCard().getName() + " - activatingPlayer not set before adding to stack."); } - - // 2012-07-21 the following comparison needs to move below the pushes but somehow screws up priority - // When it's down there. That makes absolutely no sense to me, so i'm putting it back for now - if (!((sp instanceof AbilityTriggered) || (sp instanceof AbilityStatic))) { - // when something is added we need to setPriority - Singletons.getModel().getGameState().getPhaseHandler().setPriority(sp.getActivatingPlayer()); - } - if (Singletons.getModel().getGameState().getPhaseHandler().is(PhaseType.CLEANUP)) { // If something - // triggers during - // Cleanup, need to - // repeat + if (Singletons.getModel().getGameState().getPhaseHandler().is(PhaseType.CLEANUP)) { + // If something triggers during Cleanup, need to repeat Singletons.getModel().getGameState().getPhaseHandler().repeatPhase(); } @@ -864,11 +855,6 @@ public class MagicStack extends MyObservable { } } - /* - * if (sp.getTargetCard() != null) - * CardFactoryUtil.checkTargetingEffects(sp, sp.getTargetCard()); - */ - if (this.getSimultaneousStackEntryList().size() > 0) { Singletons.getModel().getGameState().getPhaseHandler().passPriority(); } @@ -916,6 +902,13 @@ public class MagicStack extends MyObservable { final SpellAbilityStackInstance si = new SpellAbilityStackInstance(sp); this.getStack().push(si); + // 2012-07-21 the following comparison needs to move below the pushes but somehow screws up priority + // When it's down there. That makes absolutely no sense to me, so i'm putting it back for now + if (!((sp instanceof AbilityTriggered) || (sp instanceof AbilityStatic))) { + // when something is added we need to setPriority + Singletons.getModel().getGameState().getPhaseHandler().setPriority(sp.getActivatingPlayer()); + } + SDisplayUtil.showTab(EDocID.REPORT_STACK.getDoc()); this.updateObservers();