From beaebddc865efd51def20e526512f2c1b262def8 Mon Sep 17 00:00:00 2001 From: Myrd Date: Thu, 31 Dec 2015 20:33:14 +0000 Subject: [PATCH] Fix GameSimulatorTest and add a testcase I forgot to add before. --- .../java/forge/ai/simulation/GameCopier.java | 3 +- .../forge/ai/simulation/GameSimulator.java | 2 +- .../ai/simulation/GameSimulatorTest.java | 28 ++++++++++++++++++- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/simulation/GameCopier.java b/forge-ai/src/main/java/forge/ai/simulation/GameCopier.java index f72fd628a9f..1e8facdd8f5 100644 --- a/forge-ai/src/main/java/forge/ai/simulation/GameCopier.java +++ b/forge-ai/src/main/java/forge/ai/simulation/GameCopier.java @@ -222,11 +222,12 @@ public class GameCopier { } if (c.isFaceDown()) { boolean isCreature = newCard.isCreature(); + boolean hasManaCost = !newCard.getManaCost().isNoCost(); newCard.setState(CardStateName.FaceDown, true); if (c.isManifested()) { newCard.setManifested(true); // TODO: Should be able to copy other abilities... - if (isCreature && ! newCard.getManaCost().isNoCost()) { + if (isCreature && hasManaCost) { newCard.addSpellAbility(CardFactoryUtil.abilityManifestFaceUp(newCard, newCard.getManaCost())); } } diff --git a/forge-ai/src/main/java/forge/ai/simulation/GameSimulator.java b/forge-ai/src/main/java/forge/ai/simulation/GameSimulator.java index fee16bd6c35..20224bf722c 100644 --- a/forge-ai/src/main/java/forge/ai/simulation/GameSimulator.java +++ b/forge-ai/src/main/java/forge/ai/simulation/GameSimulator.java @@ -54,7 +54,7 @@ public class GameSimulator { eval.getScoreForGameState(origGame, origAiPlayer); // Print debug info. printDiff(origLines, simLines); - throw new RuntimeException("Game copy error"); + throw new RuntimeException("Game copy error. See diff output above for details."); } eval.setDebugging(false); 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 64b08c73306..31591cc71e4 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 @@ -390,7 +390,33 @@ public class GameSimulatorTest extends TestCase { Card manifestedCreatureCopy = findCardWithName(copy, ""); assertNull(findSAWithPrefix(manifestedCreatureCopy, "Unmanifest")); } - + + public void testManifest3() { + Game game = initAndCreateGame(); + Player p = game.getPlayers().get(1); + addCard("Plains", p); + addCard("Plains", p); + Card soulSummons = addCardToZone("Soul Summons", p, ZoneType.Hand); + addCardToZone("Dryad Arbor", p, ZoneType.Library); + + game.getPhaseHandler().devModeSet(PhaseType.MAIN2, p); + game.getAction().checkStateEffects(true); + + SpellAbility manifestSA = soulSummons.getSpellAbilities().get(0); + + GameSimulator sim = createSimulator(game, p); + sim.simulateSpellAbility(manifestSA); + Game simGame = sim.getSimulatedGameState(); + Card manifestedCreature = findCardWithName(simGame, ""); + assertNotNull(manifestedCreature); + assertNull(findSAWithPrefix(manifestedCreature, "Unmanifest")); + + GameCopier copier = new GameCopier(simGame); + Game copy = copier.makeCopy(); + Card manifestedCreatureCopy = findCardWithName(copy, ""); + assertNull(findSAWithPrefix(manifestedCreatureCopy, "Unmanifest")); + } + public void testTypeOfPermanentChanging() { String sarkhanCardName = "Sarkhan, the Dragonspeaker"; Game game = initAndCreateGame();