From a2aa3ccc069162d9eb3a7a84a9731015b644735a Mon Sep 17 00:00:00 2001 From: Myrd Date: Thu, 22 Dec 2016 22:30:34 +0000 Subject: [PATCH] Fix another problem with Thespian's Stage copying itself and add a test. --- forge-game/src/main/java/forge/game/card/CardState.java | 4 ++++ .../src/test/java/forge/ai/simulation/GameSimulatorTest.java | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/card/CardState.java b/forge-game/src/main/java/forge/game/card/CardState.java index 21c89643d13..072bb246dc2 100644 --- a/forge-game/src/main/java/forge/game/card/CardState.java +++ b/forge-game/src/main/java/forge/game/card/CardState.java @@ -102,6 +102,10 @@ public class CardState { } } public final void setType(final CardType type0) { + if (type0 == type) { + // Logic below would incorrectly clear the type if it's the same object. + return; + } if (type0.isEmpty() && type.isEmpty()) { return; } type.clear(); type.addAll(type0); diff --git a/forge-gui-desktop/src/test/java/forge/ai/simulation/GameSimulatorTest.java b/forge-gui-desktop/src/test/java/forge/ai/simulation/GameSimulatorTest.java index 79a76d029db..fc6445c26c5 100644 --- a/forge-gui-desktop/src/test/java/forge/ai/simulation/GameSimulatorTest.java +++ b/forge-gui-desktop/src/test/java/forge/ai/simulation/GameSimulatorTest.java @@ -568,6 +568,7 @@ public class GameSimulatorTest extends TestCase { addCard("Swamp", p); addCard("Swamp", p); Card thespian = addCard("Thespian's Stage", p); + assertTrue(thespian.isLand()); game.getPhaseHandler().devModeSet(PhaseType.MAIN2, p); game.getAction().checkStateEffects(true); @@ -578,6 +579,8 @@ public class GameSimulatorTest extends TestCase { GameSimulator sim = createSimulator(game, p); sim.simulateSpellAbility(sa); Game simGame = sim.getSimulatedGameState(); - assertNotNull(gameStateToString(simGame), findCardWithName(simGame, "Thespian's Stage")); + Card thespianSim = findCardWithName(simGame, "Thespian's Stage"); + assertNotNull(gameStateToString(simGame), thespianSim); + assertTrue(thespianSim.isLand()); } }