mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48:00 +00:00
Add a test related to #3156
This commit is contained in:
@@ -10,6 +10,8 @@ import forge.game.zone.ZoneType;
|
||||
import org.testng.AssertJUnit;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class AutoPaymentTest extends SimulationTest {
|
||||
|
||||
@@ -46,4 +48,37 @@ public class AutoPaymentTest extends SimulationTest {
|
||||
Card elfCopy = findCardWithName(simGame, llanowar);
|
||||
AssertJUnit.assertNotNull(elfCopy);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void payWithTreasuresOverPhyrexianAltar() {
|
||||
Game game = initAndCreateGame();
|
||||
Player p = game.getPlayers().get(1);
|
||||
|
||||
String squire = "Squire";
|
||||
|
||||
List<Card> squires = addCards(squire, 6, p);
|
||||
Card altar = addCard("Phyrexian Altar", p);
|
||||
List<Card> treasures = addTokens("c_a_treasure_sac", 6, p);
|
||||
|
||||
String shivan = "Shivan Dragon";
|
||||
Card dragon = addCardToZone(shivan, p, ZoneType.Hand);
|
||||
|
||||
game.getPhaseHandler().devModeSet(PhaseType.MAIN1, p);
|
||||
game.getAction().checkStateEffects(true);
|
||||
|
||||
GameSimulator sim = createSimulator(game, p);
|
||||
int score = sim.simulateSpellAbility(dragon.getFirstSpellAbility()).value;
|
||||
|
||||
AssertJUnit.assertTrue(score > 0);
|
||||
Game simGame = sim.getSimulatedGameState();
|
||||
|
||||
Card dragonBF = findCardWithName(simGame, shivan);
|
||||
AssertJUnit.assertNotNull(dragonBF);
|
||||
|
||||
Card squireCopy = findCardWithName(simGame, squire);
|
||||
AssertJUnit.assertNotNull(squireCopy);
|
||||
|
||||
Card treasureCopy = findCardWithName(simGame, "Treasure Token");
|
||||
AssertJUnit.assertNull(treasureCopy);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package forge.ai.simulation;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
@@ -160,6 +161,16 @@ public class SimulationTest {
|
||||
return Card.fromPaperCard(token, p, p.getGame());
|
||||
}
|
||||
|
||||
protected List<Card> addTokens(String name, int amount, Player p) {
|
||||
List<Card> cards = new ArrayList<>();
|
||||
|
||||
for(int i = 0; i < amount; i++) {
|
||||
cards.add(addToken(name, p));
|
||||
}
|
||||
|
||||
return cards;
|
||||
}
|
||||
|
||||
protected Card addToken(String name, Player p) {
|
||||
Card c = createToken(name, p);
|
||||
// card need a new Timestamp otherwise Static Abilities might collide
|
||||
@@ -167,5 +178,4 @@ public class SimulationTest {
|
||||
p.getZone(ZoneType.Battlefield).add(c);
|
||||
return c;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user