- Fixed Freeze caused by Wake Thrasher.

This commit is contained in:
Sloth
2013-03-18 21:51:34 +00:00
parent 160d45015d
commit 5ab6fd14a8

View File

@@ -69,7 +69,7 @@ public class Untap extends Phase {
final Player turn = game.getPhaseHandler().getPlayerTurn(); final Player turn = game.getPhaseHandler().getPlayerTurn();
Untap.doPhasing(turn); Untap.doPhasing(turn);
Untap.doUntap(); doUntap();
} }
/** /**
@@ -111,7 +111,7 @@ public class Untap extends Phase {
* doUntap. * doUntap.
* </p> * </p>
*/ */
private static void doUntap() { private void doUntap() {
final Player player = Singletons.getModel().getGame().getPhaseHandler().getPlayerTurn(); final Player player = Singletons.getModel().getGame().getPhaseHandler().getPlayerTurn();
final Predicate<Card> tappedCanUntap = Predicates.and(Presets.TAPPED, Presets.CANUNTAP); final Predicate<Card> tappedCanUntap = Predicates.and(Presets.TAPPED, Presets.CANUNTAP);
@@ -131,11 +131,13 @@ public class Untap extends Phase {
if (Untap.canOnlyUntapOneLand() && c.isLand()) { if (Untap.canOnlyUntapOneLand() && c.isLand()) {
return false; return false;
} }
if ((Singletons.getModel().getGame().isCardInPlay("Damping Field") || Singletons.getModel().getGame().isCardInPlay("Imi Statue")) if (c.isArtifact()
&& c.isArtifact()) { && (Singletons.getModel().getGame().isCardInPlay("Damping Field") || Singletons.getModel().getGame().isCardInPlay("Imi Statue"))) {
return false; return false;
} }
if ((Singletons.getModel().getGame().isCardInPlay("Smoke") || Singletons.getModel().getGame().isCardInPlay("Stoic Angel") || Singletons.getModel().getGame().isCardInPlay("Intruder Alarm")) && c.isCreature()) { if (c.isCreature()
&& (Singletons.getModel().getGame().isCardInPlay("Smoke") || Singletons.getModel().getGame().isCardInPlay("Stoic Angel")
|| Singletons.getModel().getGame().isCardInPlay("Intruder Alarm"))) {
return false; return false;
} }
return true; return true;
@@ -329,6 +331,7 @@ public class Untap extends Phase {
c.addHiddenExtrinsicKeyword("HIDDEN This card doesn't untap during your next untap step."); c.addHiddenExtrinsicKeyword("HIDDEN This card doesn't untap during your next untap step.");
} }
} }
game.getStack().chooseOrderOfSimultaneousStackEntryAll();
} // end doUntap } // end doUntap
private static boolean canOnlyUntapOneLand() { private static boolean canOnlyUntapOneLand() {