mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
LKICopy Transform and flip (#3146)
* LKICopy Transform and flip * Update CardUtil.java Fix newCopy state when flipped or transformed * Update CardUtil.java fix backside * Update CardUtil.java add EffectSource * CardStateName.Transformed needs to be copied * Fixes #3201 somewhat * Fix CardState for Fused Spells * GameSimulationTest: Add Ratadrabik + TDFC token test
This commit is contained in:
@@ -1779,7 +1779,7 @@ public class GameSimulationTest extends SimulationTest {
|
||||
|
||||
AssertJUnit.assertTrue(clonedOutLaw.isCloned());
|
||||
AssertJUnit.assertTrue(clonedOutLaw.isTransformable());
|
||||
AssertJUnit.assertFalse(clonedOutLaw.hasState(CardStateName.Transformed));
|
||||
AssertJUnit.assertTrue(clonedOutLaw.hasState(CardStateName.Transformed));
|
||||
AssertJUnit.assertTrue(clonedOutLaw.canTransform(null));
|
||||
AssertJUnit.assertFalse(clonedOutLaw.isBackSide());
|
||||
|
||||
@@ -1800,7 +1800,7 @@ public class GameSimulationTest extends SimulationTest {
|
||||
|
||||
AssertJUnit.assertTrue(transformOutLaw.isCloned());
|
||||
AssertJUnit.assertTrue(transformOutLaw.isTransformable());
|
||||
AssertJUnit.assertFalse(transformOutLaw.hasState(CardStateName.Transformed));
|
||||
AssertJUnit.assertTrue(transformOutLaw.hasState(CardStateName.Transformed));
|
||||
AssertJUnit.assertTrue(transformOutLaw.canTransform(null));
|
||||
AssertJUnit.assertTrue(transformOutLaw.isBackSide());
|
||||
|
||||
@@ -2451,13 +2451,9 @@ public class GameSimulationTest extends SimulationTest {
|
||||
// whereas Naban doesn't see Memnarch to double the trigger
|
||||
addCardToZone("Memnarch", p, ZoneType.Library);
|
||||
|
||||
addCard("Forest", p);
|
||||
addCard("Forest", p);
|
||||
addCard("Island", p);
|
||||
addCard("Island", p);
|
||||
addCard("Island", p);
|
||||
addCard("Mountain", p);
|
||||
addCard("Mountain", p);
|
||||
addCards("Forest", 2, p);
|
||||
addCards("Island", 3, p);
|
||||
addCards("Mountain", 2, p);
|
||||
|
||||
Card genesis = addCardToZone("Genesis Ultimatum", p, ZoneType.Hand);
|
||||
|
||||
@@ -2473,4 +2469,46 @@ public class GameSimulationTest extends SimulationTest {
|
||||
// 2 damage dealt for 2 artifacts
|
||||
AssertJUnit.assertEquals(18, simGame.getPlayers().get(1).getLife());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLKITransformableTokenCopy() {
|
||||
Game game = initAndCreateGame();
|
||||
Player p = game.getPlayers().get(0);
|
||||
|
||||
String untransformedName = "Heliod, the Radiant Dawn";
|
||||
String transformedName = "Heliod, the Warped Eclipse";
|
||||
|
||||
addCard("Ratadrabik of Urborg", p);
|
||||
Card heliod = addCard(untransformedName, p);
|
||||
|
||||
addCards("Island", 4, p);
|
||||
addCards("Swamp", 3, p);
|
||||
|
||||
Card murder = addCardToZone("Murder", p, ZoneType.Hand);
|
||||
SpellAbility murderSA = murder.getFirstSpellAbility();
|
||||
game.getPhaseHandler().devModeSet(PhaseType.MAIN2, p);
|
||||
game.getAction().checkStateEffects(true);
|
||||
|
||||
SpellAbility transformSA = findSAWithPrefix(heliod, "{3}{U/P}: Transform");
|
||||
|
||||
GameSimulator sim = createSimulator(game, p);
|
||||
AssertJUnit.assertNotNull(transformSA);
|
||||
sim.simulateSpellAbility(transformSA);
|
||||
|
||||
Game simGame = sim.getSimulatedGameState();
|
||||
|
||||
Card transformedHeliod = findCardWithName(simGame, transformedName);
|
||||
AssertJUnit.assertNotNull(transformedHeliod);
|
||||
murderSA.getTargets().add(transformedHeliod);
|
||||
|
||||
sim.simulateSpellAbility(murderSA);
|
||||
simGame = sim.getSimulatedGameState();
|
||||
|
||||
Card transformedHeliodToken = findCardWithName(simGame, transformedName);
|
||||
AssertJUnit.assertNotNull(transformedHeliodToken);
|
||||
AssertJUnit.assertTrue(transformedHeliodToken.isToken());
|
||||
AssertJUnit.assertTrue(transformedHeliodToken.isTransformable());
|
||||
AssertJUnit.assertTrue(transformedHeliodToken.isTransformed());
|
||||
AssertJUnit.assertTrue(transformedHeliodToken.isBackSide());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user