From 0f28cbda4f96e479cbc7619a5fba0653aaf4cce1 Mon Sep 17 00:00:00 2001 From: Bug Hunter Date: Wed, 27 Jan 2021 21:36:23 +0000 Subject: [PATCH] Revert "Fix token created when removed before trigger resolves" This reverts commit e33644ecf38081e19e1a59c2fe6f66632d659776. --- forge-ai/src/main/java/forge/ai/PlayerControllerAi.java | 3 ++- forge-game/src/main/java/forge/game/phase/PhaseHandler.java | 6 +++--- .../src/main/java/forge/game/player/PlayerController.java | 2 +- .../gamesimulationtests/util/PlayerControllerForTests.java | 4 ++-- .../src/main/java/forge/player/PlayerControllerHuman.java | 4 ++-- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java index 4a0b0a5257c..a96ee50cd61 100644 --- a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java +++ b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java @@ -612,7 +612,7 @@ public class PlayerControllerAi extends PlayerController { } @Override - public void playChosenSpellAbility(SpellAbility sa) { + public boolean playChosenSpellAbility(SpellAbility sa) { // System.out.println("Playing sa: " + sa); if (sa instanceof LandAbility) { if (sa.canPlay()) { @@ -622,6 +622,7 @@ public class PlayerControllerAi extends PlayerController { } else { ComputerUtil.handlePlayingSpellAbility(player, sa, getGame()); } + return true; } @Override 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 b3fc16544ff..713e75f7cd5 100644 --- a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java +++ b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java @@ -1019,13 +1019,13 @@ public class PhaseHandler implements java.io.Serializable { if (DEBUG_PHASES) { System.out.print("... " + pPlayerPriority + " plays " + chosenSa); } - pFirstPriority = pPlayerPriority; // all opponents have to pass before stack is allowed to resolve for (SpellAbility sa : chosenSa) { Card saHost = sa.getHostCard(); final Zone originZone = saHost.getZone(); - // TODO it has no return value if successful - pPlayerPriority.getController().playChosenSpellAbility(sa); + if (pPlayerPriority.getController().playChosenSpellAbility(sa)) { + pFirstPriority = pPlayerPriority; // all opponents have to pass before stack is allowed to resolve + } saHost = game.getCardState(saHost); final Zone currentZone = saHost.getZone(); diff --git a/forge-game/src/main/java/forge/game/player/PlayerController.java b/forge-game/src/main/java/forge/game/player/PlayerController.java index 075ee75dddf..bcada42ecd5 100644 --- a/forge-game/src/main/java/forge/game/player/PlayerController.java +++ b/forge-game/src/main/java/forge/game/player/PlayerController.java @@ -192,7 +192,7 @@ public abstract class PlayerController { public abstract void declareAttackers(Player attacker, Combat combat); public abstract void declareBlockers(Player defender, Combat combat); public abstract List chooseSpellAbilityToPlay(); - public abstract void playChosenSpellAbility(SpellAbility sa); + public abstract boolean playChosenSpellAbility(SpellAbility sa); public abstract CardCollection chooseCardsToDiscardToMaximumHandSize(int numDiscard); public abstract boolean payManaOptional(Card card, Cost cost, SpellAbility sa, String prompt, ManaPaymentPurpose purpose); diff --git a/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java b/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java index f557947a51a..b7f1a41ba6d 100644 --- a/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java +++ b/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java @@ -609,9 +609,9 @@ public class PlayerControllerForTests extends PlayerController { } @Override - public void playChosenSpellAbility(SpellAbility sa) { + public boolean playChosenSpellAbility(SpellAbility sa) { // TODO Play abilities from here - + return true; } @Override diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java index 2c9175605be..c409109cf48 100644 --- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java +++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java @@ -1359,8 +1359,8 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont } @Override - public void playChosenSpellAbility(final SpellAbility chosenSa) { - HumanPlay.playSpellAbility(this, player, chosenSa); + public boolean playChosenSpellAbility(final SpellAbility chosenSa) { + return HumanPlay.playSpellAbility(this, player, chosenSa); } @Override