From 05547bfda66ab44b056c8bd3eb5023bc8b1b7b55 Mon Sep 17 00:00:00 2001 From: Adam Pantel <> Date: Sat, 20 Mar 2021 15:30:17 -0400 Subject: [PATCH] Two Topsy Turvies cancel out --- forge-game/src/main/java/forge/game/Game.java | 2 +- .../main/java/forge/game/ability/effects/AddPhaseEffect.java | 2 +- forge-game/src/main/java/forge/game/phase/PhaseHandler.java | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/forge-game/src/main/java/forge/game/Game.java b/forge-game/src/main/java/forge/game/Game.java index b1450139a38..26c277bff94 100644 --- a/forge-game/src/main/java/forge/game/Game.java +++ b/forge-game/src/main/java/forge/game/Game.java @@ -435,7 +435,7 @@ public class Game { * The Direction in which the turn order of this Game currently proceeds. */ public final Direction getTurnOrder() { - if (phaseHandler.getPlayerTurn() != null && phaseHandler.getPlayerTurn().hasKeyword("The turn order is reversed.")) { + if (phaseHandler.getPlayerTurn() != null && phaseHandler.getPlayerTurn().getAmountOfKeyword("The turn order is reversed.") % 2 == 1) { return turnOrder.getOtherDirection(); } return turnOrder; diff --git a/forge-game/src/main/java/forge/game/ability/effects/AddPhaseEffect.java b/forge-game/src/main/java/forge/game/ability/effects/AddPhaseEffect.java index 188a61bca99..5a99ed427e3 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/AddPhaseEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/AddPhaseEffect.java @@ -20,7 +20,7 @@ public class AddPhaseEffect extends SpellAbilityEffect { @Override public void resolve(SpellAbility sa) { - boolean isTopsy = sa.getActivatingPlayer().hasKeyword("The phases of your turn are reversed."); + boolean isTopsy = sa.getActivatingPlayer().getAmountOfKeyword("The phases of your turn are reversed.") % 2 == 1; PhaseHandler phaseHandler = sa.getActivatingPlayer().getGame().getPhaseHandler(); PhaseType currentPhase = phaseHandler.getPhase(); diff --git a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java index c6a7179759a..51b04c6986b 100644 --- a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java +++ b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java @@ -167,7 +167,7 @@ public class PhaseHandler implements java.io.Serializable { private void advanceToNextPhase() { PhaseType oldPhase = phase; - boolean isTopsy = playerTurn.hasKeyword("The phases of your turn are reversed."); + boolean isTopsy = playerTurn.getAmountOfKeyword("The phases of your turn are reversed.") % 2 == 1; boolean turnEnded = false; if (bRepeatCleanup) { // for when Cleanup needs to repeat itself @@ -1154,7 +1154,8 @@ public class PhaseHandler implements java.io.Serializable { } public final boolean devAdvanceToPhase(PhaseType targetPhase) { - while (phase.isBefore(targetPhase, playerTurn.hasKeyword("The phases of your turn are reversed."))) { + boolean isTopsy = playerTurn.getAmountOfKeyword("The phases of your turn are reversed.") % 2 == 1; + while (phase.isBefore(targetPhase, isTopsy)) { if (checkStateBasedEffects()) { return false; }