[Simulated AI] Fix game copy error with dashed creatures and add a test.

This commit is contained in:
Myrd
2016-12-26 16:29:21 +00:00
parent 0b7c70230a
commit d3723daa6d
2 changed files with 41 additions and 0 deletions

View File

@@ -315,6 +315,8 @@ public class GameCopier {
newCard.setNamedCard(c.getNamedCard());
}
newCard.setSVars(c.getSVars());
// TODO: FIXME
if (c.hasRemembered()) {
for (Object o : c.getRemembered()) {

View File

@@ -584,4 +584,43 @@ public class GameSimulatorTest extends TestCase {
assertNotNull(gameStateToString(simGame), thespianSim);
assertTrue(thespianSim.isLand());
}
public void testDash() {
Game game = initAndCreateGame();
Player p = game.getPlayers().get(1);
addCard("Mountain", p);
addCard("Mountain", p);
String berserkerCardName = "Lightning Berserker";
Card berserkerCard = addCardToZone(berserkerCardName, p, ZoneType.Hand);
game.getPhaseHandler().devModeSet(PhaseType.MAIN1, p);
SpellAbility dashSA = findSAWithPrefix(berserkerCard, "Dash");
assertNotNull(dashSA);
GameSimulator sim = createSimulator(game, p);
int score = sim.simulateSpellAbility(dashSA).value;
assertTrue(score > 0);
Game simGame = sim.getSimulatedGameState();
Card berserker = findCardWithName(simGame, berserkerCardName);
assertNotNull(berserker);
assertEquals(1, berserker.getNetPower());
assertEquals(1, berserker.getNetToughness());
assertFalse(berserker.isSick());
SpellAbility pumpSA = findSAWithPrefix(berserker, "{R}: CARDNAME gets +1/+0 until end of turn.");
assertNotNull(pumpSA);
GameSimulator sim2 = createSimulator(simGame, (Player) sim.getGameCopier().find(p));
int score2 = sim2.simulateSpellAbility(pumpSA).value;
assert(score2 > score);
Game simGame2 = sim2.getSimulatedGameState();
Card berserker2 = findCardWithName(simGame2, berserkerCardName);
assertNotNull(berserker2);
assertEquals(2, berserker2.getNetPower());
assertEquals(1, berserker2.getNetToughness());
assertFalse(berserker2.isSick());
}
}