mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
tests: allow cards to be added to exile during a card test (#11739)
This commit is contained in:
parent
9aae17d3f0
commit
0db2599fa5
4 changed files with 33 additions and 3 deletions
|
|
@ -268,7 +268,9 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
|
|||
TestPlayer testPlayer = (TestPlayer) player;
|
||||
currentGame.cheat(testPlayer.getId(), getCommands(testPlayer));
|
||||
currentGame.cheat(testPlayer.getId(), getLibraryCards(testPlayer), getHandCards(testPlayer),
|
||||
getBattlefieldCards(testPlayer), getGraveCards(testPlayer), getCommandCards(testPlayer));
|
||||
getBattlefieldCards(testPlayer), getGraveCards(testPlayer), getCommandCards(testPlayer),
|
||||
getExiledCards(testPlayer));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -92,4 +92,26 @@ public class AddCardApiTest extends CardTestPlayerBase {
|
|||
public void test_CardNameWithSetCode_RaiseErrorOnUnknownSet() {
|
||||
addCard(Zone.BATTLEFIELD, playerA, "SS4-Plains", 1);
|
||||
}
|
||||
|
||||
// Add card to exile added for #11738
|
||||
@Test
|
||||
public void test_AddCardExiled() {
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Swamp", 4);
|
||||
addCard(Zone.HAND, playerA, "Mind Raker");
|
||||
|
||||
addCard(Zone.EXILED, playerB, "Llanowar Elves");
|
||||
|
||||
checkExileCount("llanowar elves in exile", 1, PhaseStep.PRECOMBAT_MAIN, playerB, "Llanowar Elves", 1);
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Mind Raker");
|
||||
setChoice(playerA, true);
|
||||
addTarget(playerA, "Llanowar Elves");
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(1, PhaseStep.END_TURN);
|
||||
execute();
|
||||
|
||||
assertExileCount(playerB, "Llanowar Elves", 0);
|
||||
assertGraveyardCount(playerB, "Llanowar Elves", 1);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -555,7 +555,7 @@ public interface Game extends MageItem, Serializable, Copyable<Game> {
|
|||
|
||||
// game cheats (for tests only)
|
||||
void cheat(UUID ownerId, Map<Zone, String> commands);
|
||||
void cheat(UUID ownerId, List<Card> library, List<Card> hand, List<PermanentCard> battlefield, List<Card> graveyard, List<Card> command);
|
||||
void cheat(UUID ownerId, List<Card> library, List<Card> hand, List<PermanentCard> battlefield, List<Card> graveyard, List<Card> command, List<Card> exiled);
|
||||
|
||||
// controlling the behaviour of replacement effects while permanents entering the battlefield
|
||||
void setScopeRelevant(boolean scopeRelevant);
|
||||
|
|
|
|||
|
|
@ -3567,7 +3567,7 @@ public abstract class GameImpl implements Game {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void cheat(UUID ownerId, List<Card> library, List<Card> hand, List<PermanentCard> battlefield, List<Card> graveyard, List<Card> command) {
|
||||
public void cheat(UUID ownerId, List<Card> library, List<Card> hand, List<PermanentCard> battlefield, List<Card> graveyard, List<Card> command, List<Card> exiled) {
|
||||
// fake test ability for triggers and events
|
||||
Ability fakeSourceAbilityTemplate = new SimpleStaticAbility(Zone.OUTSIDE, new InfoEffect("adding testing cards"));
|
||||
fakeSourceAbilityTemplate.setControllerId(ownerId);
|
||||
|
|
@ -3579,6 +3579,7 @@ public abstract class GameImpl implements Game {
|
|||
loadCards(ownerId, battlefield);
|
||||
loadCards(ownerId, graveyard);
|
||||
loadCards(ownerId, command);
|
||||
loadCards(ownerId, exiled);
|
||||
|
||||
for (Card card : library) {
|
||||
player.getLibrary().putOnTop(card, this);
|
||||
|
|
@ -3604,6 +3605,11 @@ public abstract class GameImpl implements Game {
|
|||
throw new IllegalArgumentException("Command zone supports in commander test games");
|
||||
}
|
||||
|
||||
for (Card card : exiled) {
|
||||
card.setZone(Zone.EXILED, this);
|
||||
getExile().add(card);
|
||||
}
|
||||
|
||||
for (PermanentCard permanentCard : battlefield) {
|
||||
Ability fakeSourceAbility = fakeSourceAbilityTemplate.copy();
|
||||
fakeSourceAbility.setSourceId(permanentCard.getId());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue