mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
[Simulated AI] Fix game copy error with dashed creatures and add a test.
This commit is contained in:
@@ -315,6 +315,8 @@ public class GameCopier {
|
|||||||
newCard.setNamedCard(c.getNamedCard());
|
newCard.setNamedCard(c.getNamedCard());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
newCard.setSVars(c.getSVars());
|
||||||
|
|
||||||
// TODO: FIXME
|
// TODO: FIXME
|
||||||
if (c.hasRemembered()) {
|
if (c.hasRemembered()) {
|
||||||
for (Object o : c.getRemembered()) {
|
for (Object o : c.getRemembered()) {
|
||||||
|
|||||||
@@ -584,4 +584,43 @@ public class GameSimulatorTest extends TestCase {
|
|||||||
assertNotNull(gameStateToString(simGame), thespianSim);
|
assertNotNull(gameStateToString(simGame), thespianSim);
|
||||||
assertTrue(thespianSim.isLand());
|
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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user