mirror of
https://github.com/correl/mage.git
synced 2024-11-28 19:19:55 +00:00
Refactoring token names to reflect new rule (ready for review) (#8446)
* updated Riptide Replicator and Volrath's Laboratory * refactored token names * some test fixes * more test fixes * even more test fixes * the final test fixes * fixed a few missed tokens * merge fix * fixed a test failure * fixed test failure * updated ignored verify test * fixed token images not appearing * updated tests
This commit is contained in:
parent
83c94322c6
commit
9e0ea945ca
637 changed files with 950 additions and 1034 deletions
|
@ -487,7 +487,7 @@ public final class ImageCache {
|
||||||
* Returns the map key for a card, without any suffixes for the image size.
|
* Returns the map key for a card, without any suffixes for the image size.
|
||||||
*/
|
*/
|
||||||
private static String getKey(CardView card, String name, String suffix) {
|
private static String getKey(CardView card, String name, String suffix) {
|
||||||
return name
|
return (card.isToken() ? name.replace(" Token", "") : name)
|
||||||
+ '#' + card.getExpansionSetCode()
|
+ '#' + card.getExpansionSetCode()
|
||||||
+ '#' + card.getType()
|
+ '#' + card.getType()
|
||||||
+ '#' + card.getCardNumber()
|
+ '#' + card.getCardNumber()
|
||||||
|
|
|
@ -55,7 +55,7 @@ public final class AbhorrentOverlord extends CardImpl {
|
||||||
class AbhorrentOverlordHarpyToken extends TokenImpl {
|
class AbhorrentOverlordHarpyToken extends TokenImpl {
|
||||||
|
|
||||||
AbhorrentOverlordHarpyToken() {
|
AbhorrentOverlordHarpyToken() {
|
||||||
super("Harpy", "1/1 black Harpy creature tokens with flying");
|
super("Harpy Token", "1/1 black Harpy creature tokens with flying");
|
||||||
cardType.add(CardType.CREATURE);
|
cardType.add(CardType.CREATURE);
|
||||||
color.setBlack(true);
|
color.setBlack(true);
|
||||||
subtype.add(SubType.HARPY);
|
subtype.add(SubType.HARPY);
|
||||||
|
|
|
@ -80,7 +80,7 @@ class SpiritWarriorToken extends TokenImpl {
|
||||||
}
|
}
|
||||||
|
|
||||||
public SpiritWarriorToken(int x) {
|
public SpiritWarriorToken(int x) {
|
||||||
super("Spirit Warrior", "X/X black and green Spirit Warrior creature token, where X is the greatest toughness among creatures you control");
|
super("Spirit Warrior Token", "X/X black and green Spirit Warrior creature token, where X is the greatest toughness among creatures you control");
|
||||||
this.cardType.add(CardType.CREATURE);
|
this.cardType.add(CardType.CREATURE);
|
||||||
this.subtype.add(SubType.SPIRIT);
|
this.subtype.add(SubType.SPIRIT);
|
||||||
this.subtype.add(SubType.WARRIOR);
|
this.subtype.add(SubType.WARRIOR);
|
||||||
|
|
|
@ -92,7 +92,7 @@ class OozeToken extends TokenImpl {
|
||||||
}
|
}
|
||||||
|
|
||||||
public OozeToken(int x) {
|
public OozeToken(int x) {
|
||||||
super("Ooze", "X/X green Ooze creature token, where X is the sacrificed creature's power");
|
super("Ooze Token", "X/X green Ooze creature token, where X is the sacrificed creature's power");
|
||||||
this.cardType.add(CardType.CREATURE);
|
this.cardType.add(CardType.CREATURE);
|
||||||
this.color.addColor(ObjectColor.GREEN);
|
this.color.addColor(ObjectColor.GREEN);
|
||||||
this.subtype.add(SubType.OOZE);
|
this.subtype.add(SubType.OOZE);
|
||||||
|
|
|
@ -102,7 +102,7 @@ class PhantasmalSphereEffect extends OneShotEffect {
|
||||||
class PhantasmalSphereToken extends TokenImpl {
|
class PhantasmalSphereToken extends TokenImpl {
|
||||||
|
|
||||||
public PhantasmalSphereToken(int xValue) {
|
public PhantasmalSphereToken(int xValue) {
|
||||||
super("Orb", "X/X blue Orb creature token with flying");
|
super("Orb Token", "X/X blue Orb creature token with flying");
|
||||||
cardType.add(CardType.CREATURE);
|
cardType.add(CardType.CREATURE);
|
||||||
color.setBlue(true);
|
color.setBlue(true);
|
||||||
subtype.add(SubType.ORB);
|
subtype.add(SubType.ORB);
|
||||||
|
|
|
@ -64,7 +64,7 @@ public final class PrideOfTheClouds extends CardImpl {
|
||||||
private static class BirdToken extends TokenImpl {
|
private static class BirdToken extends TokenImpl {
|
||||||
|
|
||||||
public BirdToken() {
|
public BirdToken() {
|
||||||
super("Bird", "1/1 white and blue Bird creature token with flying");
|
super("Bird Token", "1/1 white and blue Bird creature token with flying");
|
||||||
cardType.add(CardType.CREATURE);
|
cardType.add(CardType.CREATURE);
|
||||||
color.setWhite(true);
|
color.setWhite(true);
|
||||||
color.setBlue(true);
|
color.setBlue(true);
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.r;
|
package mage.cards.r;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.ObjectColor;
|
import mage.ObjectColor;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.EntersBattlefieldAbility;
|
import mage.abilities.common.EntersBattlefieldAbility;
|
||||||
|
@ -23,10 +21,10 @@ import mage.constants.Zone;
|
||||||
import mage.counters.CounterType;
|
import mage.counters.CounterType;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.token.RiptideReplicatorToken;
|
import mage.game.permanent.token.RiptideReplicatorToken;
|
||||||
import mage.game.permanent.token.Token;
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author HanClinto
|
* @author HanClinto
|
||||||
*/
|
*/
|
||||||
public final class RiptideReplicator extends CardImpl {
|
public final class RiptideReplicator extends CardImpl {
|
||||||
|
@ -80,11 +78,10 @@ class RiptideReplicatorEffect extends OneShotEffect {
|
||||||
public boolean apply(Game game, Ability source) {
|
public boolean apply(Game game, Ability source) {
|
||||||
ObjectColor color = (ObjectColor) game.getState().getValue(source.getSourceId() + "_color");
|
ObjectColor color = (ObjectColor) game.getState().getValue(source.getSourceId() + "_color");
|
||||||
SubType subType = ChooseCreatureTypeEffect.getChosenCreatureType(source.getSourceId(), game);
|
SubType subType = ChooseCreatureTypeEffect.getChosenCreatureType(source.getSourceId(), game);
|
||||||
if (subType == null) {
|
if (subType == null || color == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
int x = (new CountersSourceCount(CounterType.CHARGE)).calculate(game, source, this);
|
int x = (new CountersSourceCount(CounterType.CHARGE)).calculate(game, source, this);
|
||||||
Token token = new RiptideReplicatorToken(color, subType, x);
|
return new RiptideReplicatorToken(color, subType, x).putOntoBattlefield(1, game, source, source.getControllerId());
|
||||||
return token.putOntoBattlefield(1, game, source, source.getControllerId());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.v;
|
package mage.cards.v;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.ObjectColor;
|
import mage.ObjectColor;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.EntersBattlefieldAbility;
|
import mage.abilities.common.EntersBattlefieldAbility;
|
||||||
|
@ -19,11 +17,11 @@ import mage.constants.Outcome;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.token.Token;
|
|
||||||
import mage.game.permanent.token.VolrathsLaboratoryToken;
|
import mage.game.permanent.token.VolrathsLaboratoryToken;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author emerald000
|
* @author emerald000
|
||||||
*/
|
*/
|
||||||
public final class VolrathsLaboratory extends CardImpl {
|
public final class VolrathsLaboratory extends CardImpl {
|
||||||
|
@ -74,7 +72,9 @@ class VolrathsLaboratoryEffect extends OneShotEffect {
|
||||||
public boolean apply(Game game, Ability source) {
|
public boolean apply(Game game, Ability source) {
|
||||||
ObjectColor color = (ObjectColor) game.getState().getValue(source.getSourceId() + "_color");
|
ObjectColor color = (ObjectColor) game.getState().getValue(source.getSourceId() + "_color");
|
||||||
SubType subType = ChooseCreatureTypeEffect.getChosenCreatureType(source.getSourceId(), game);
|
SubType subType = ChooseCreatureTypeEffect.getChosenCreatureType(source.getSourceId(), game);
|
||||||
Token token = new VolrathsLaboratoryToken(color, subType);
|
if (subType == null || color == null) {
|
||||||
return token.putOntoBattlefield(1, game, source, source.getControllerId());
|
return false;
|
||||||
|
}
|
||||||
|
return new VolrathsLaboratoryToken(color, subType).putOntoBattlefield(1, game, source, source.getControllerId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,8 +35,8 @@ public class PutOntoBattlefieldTest extends CardTestPlayerBase {
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertPowerToughness(playerA, "Kalonian Hydra", 2, 2);
|
assertPowerToughness(playerA, "Kalonian Hydra", 2, 2);
|
||||||
assertPermanentCount(playerA, "Ooze", 1);
|
assertPermanentCount(playerA, "Ooze Token", 1);
|
||||||
assertPowerToughness(playerA, "Ooze", 2, 2);
|
assertPowerToughness(playerA, "Ooze Token", 2, 2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@ public class PutToGraveyardTest extends CardTestPlayerBase {
|
||||||
assertPermanentCount(playerB, "Silvercoat Lion", 0);
|
assertPermanentCount(playerB, "Silvercoat Lion", 0);
|
||||||
assertExileCount(playerB, 0);
|
assertExileCount(playerB, 0);
|
||||||
assertGraveyardCount(playerB, "Silvercoat Lion", 1);
|
assertGraveyardCount(playerB, "Silvercoat Lion", 1);
|
||||||
assertPermanentCount(playerA, "Eldrazi Scion", 1);
|
assertPermanentCount(playerA, "Eldrazi Scion Token", 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ public class TokenImplActivatedAbilityTest extends CardTestPlayerBase {
|
||||||
setStopAt(3, PhaseStep.PRECOMBAT_MAIN);
|
setStopAt(3, PhaseStep.PRECOMBAT_MAIN);
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Elf Druid", 2);
|
assertPermanentCount(playerA, "Elf Druid Token", 2);
|
||||||
assertPermanentCount(playerA, "Freyalise, Llanowar's Fury", 1);
|
assertPermanentCount(playerA, "Freyalise, Llanowar's Fury", 1);
|
||||||
Assert.assertEquals("one green mana has to be in the mana pool", 1, playerA.getManaPool().get(ManaType.GREEN));
|
Assert.assertEquals("one green mana has to be in the mana pool", 1, playerA.getManaPool().get(ManaType.GREEN));
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,12 +32,12 @@ public class CurseOfShallowGravesTest extends CardTestPlayerBase {
|
||||||
// turn 1 - attack without token
|
// turn 1 - attack without token
|
||||||
attack(1, playerA, "Balduvian Bears", playerB);
|
attack(1, playerA, "Balduvian Bears", playerB);
|
||||||
setChoice(playerA, false); // don't create token
|
setChoice(playerA, false); // don't create token
|
||||||
checkPermanentCount("zombie 0", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Zombie", 0);
|
checkPermanentCount("zombie 0", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Zombie Token", 0);
|
||||||
|
|
||||||
// turn 3 - attack with token
|
// turn 3 - attack with token
|
||||||
attack(3, playerA, "Balduvian Bears", playerB);
|
attack(3, playerA, "Balduvian Bears", playerB);
|
||||||
setChoice(playerA, true); // create token
|
setChoice(playerA, true); // create token
|
||||||
checkPermanentCount("zombie 1", 3, PhaseStep.POSTCOMBAT_MAIN, playerA, "Zombie", 1);
|
checkPermanentCount("zombie 1", 3, PhaseStep.POSTCOMBAT_MAIN, playerA, "Zombie Token", 1);
|
||||||
|
|
||||||
setStopAt(3, PhaseStep.END_TURN);
|
setStopAt(3, PhaseStep.END_TURN);
|
||||||
execute();
|
execute();
|
||||||
|
@ -61,12 +61,12 @@ public class CurseOfShallowGravesTest extends CardTestPlayerBase {
|
||||||
// turn 1 - attack player without token
|
// turn 1 - attack player without token
|
||||||
attack(1, playerA, "Balduvian Bears", playerB);
|
attack(1, playerA, "Balduvian Bears", playerB);
|
||||||
setChoice(playerA, false); // don't create token
|
setChoice(playerA, false); // don't create token
|
||||||
checkPermanentCount("zombie 0", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Zombie", 0);
|
checkPermanentCount("zombie 0", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Zombie Token", 0);
|
||||||
|
|
||||||
// turn 3 - attack planeswalker (no choices at all)
|
// turn 3 - attack planeswalker (no choices at all)
|
||||||
attack(3, playerA, "Balduvian Bears", "Chandra Ablaze");
|
attack(3, playerA, "Balduvian Bears", "Chandra Ablaze");
|
||||||
//setChoice(playerA, true);
|
//setChoice(playerA, true);
|
||||||
checkPermanentCount("zombie 0", 3, PhaseStep.POSTCOMBAT_MAIN, playerA, "Zombie", 0);
|
checkPermanentCount("zombie 0", 3, PhaseStep.POSTCOMBAT_MAIN, playerA, "Zombie Token", 0);
|
||||||
|
|
||||||
setStopAt(3, PhaseStep.END_TURN);
|
setStopAt(3, PhaseStep.END_TURN);
|
||||||
execute();
|
execute();
|
||||||
|
|
|
@ -39,8 +39,8 @@ public class DearlyDepartedTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertPowerToughness(playerA, "Thraben Doomsayer", 3, 3);
|
assertPowerToughness(playerA, "Thraben Doomsayer", 3, 3);
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Human", 1);
|
assertPermanentCount(playerA, "Human Token", 1);
|
||||||
// check that the +1/+1 counter was added to the token
|
// check that the +1/+1 counter was added to the token
|
||||||
assertPowerToughness(playerA, "Human", 2, 2);
|
assertPowerToughness(playerA, "Human Token", 2, 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,8 +63,8 @@ public class GatherSpecimensTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Spirit", 3);
|
assertPermanentCount(playerA, "Spirit Token", 3);
|
||||||
assertPermanentCount(playerB, "Spirit", 0);
|
assertPermanentCount(playerB, "Spirit Token", 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ public class BatterskullTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertHandCount(playerA, 0);
|
assertHandCount(playerA, 0);
|
||||||
assertPermanentCount(playerA, "Batterskull", 1);
|
assertPermanentCount(playerA, "Batterskull", 1);
|
||||||
assertPermanentCount(playerA, "Phyrexian Germ", 1);
|
assertPermanentCount(playerA, "Phyrexian Germ Token", 1);
|
||||||
assertPowerToughness(playerA, "Phyrexian Germ", 4, 4);
|
assertPowerToughness(playerA, "Phyrexian Germ Token", 4, 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,12 +48,12 @@ public class SwordOfTheMeekTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Chromatic Star", 1);
|
assertPermanentCount(playerA, "Chromatic Star", 1);
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Myr", 1);
|
assertPermanentCount(playerA, "Myr Token", 1);
|
||||||
assertPowerToughness(playerA, "Myr", 2, 2);
|
assertPowerToughness(playerA, "Myr Token", 2, 2);
|
||||||
assertPermanentCount(playerA, "Sword of the Meek", 0);
|
assertPermanentCount(playerA, "Sword of the Meek", 0);
|
||||||
assertPowerToughness(playerA, "Master of Etherium", 3, 3);
|
assertPowerToughness(playerA, "Master of Etherium", 3, 3);
|
||||||
|
|
||||||
Permanent myr = getPermanent("Myr", playerA.getId());
|
Permanent myr = getPermanent("Myr Token", playerA.getId());
|
||||||
Assert.assertTrue("Myr may not have any attachments", myr.getAttachments().isEmpty());
|
Assert.assertTrue("Myr may not have any attachments", myr.getAttachments().isEmpty());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ public class CascadeTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Predatory Advantage", 1);
|
assertPermanentCount(playerA, "Predatory Advantage", 1);
|
||||||
assertPermanentCount(playerA, "Sejiri Merfolk", 1);
|
assertPermanentCount(playerA, "Sejiri Merfolk", 1);
|
||||||
assertPermanentCount(playerA, "Lizard", 1);
|
assertPermanentCount(playerA, "Lizard Token", 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -196,7 +196,7 @@ public class CascadeTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertLife(playerA, 15);
|
assertLife(playerA, 15);
|
||||||
assertHandCount(playerA, 5);
|
assertHandCount(playerA, 5);
|
||||||
assertPermanentCount(playerA, "Demon", 0);
|
assertPermanentCount(playerA, "Demon Token", 0);
|
||||||
assertPermanentCount(playerA, "Enlisted Wurm", 1);
|
assertPermanentCount(playerA, "Enlisted Wurm", 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,7 +83,7 @@ public class ChangelingTest extends CardTestPlayerBase {
|
||||||
* NOTE: As of 05/06/2017 this test is failing due to a bug in code.
|
* NOTE: As of 05/06/2017 this test is failing due to a bug in code.
|
||||||
* See issue #3316
|
* See issue #3316
|
||||||
* <p>
|
* <p>
|
||||||
* Kaseto, Orochi Archmage do not give Chameleon Colossus +2/+2 , even though Chameleon Colossus should have the "snake" type
|
* Kaseto, Orochi Archmage do not give Chameleon Colossus +2/+2 , even though Chameleon Colossus should have the "Snake Token" type
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void kasetoOrochiArchmageSnakeTest() {
|
public void kasetoOrochiArchmageSnakeTest() {
|
||||||
|
|
|
@ -90,8 +90,8 @@ public class ConspireTest extends CardTestPlayerBase {
|
||||||
// cast with conspire
|
// cast with conspire
|
||||||
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Lightning Bolt", playerB);
|
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Lightning Bolt", playerB);
|
||||||
setChoice(playerA, true); // use conspire
|
setChoice(playerA, true); // use conspire
|
||||||
setChoice(playerA, "Goblin Warrior");
|
setChoice(playerA, "Goblin Warrior Token");
|
||||||
setChoice(playerA, "Goblin Warrior");
|
setChoice(playerA, "Goblin Warrior Token");
|
||||||
setChoice(playerA, false); // keep targets
|
setChoice(playerA, false); // keep targets
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
|
@ -122,8 +122,8 @@ public class ConspireTest extends CardTestPlayerBase {
|
||||||
// cast with conspire
|
// cast with conspire
|
||||||
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Lightning Bolt", playerB);
|
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Lightning Bolt", playerB);
|
||||||
setChoice(playerA, true); // use conspire
|
setChoice(playerA, true); // use conspire
|
||||||
setChoice(playerA, "Goblin Warrior");
|
setChoice(playerA, "Goblin Warrior Token");
|
||||||
setChoice(playerA, "Goblin Warrior");
|
setChoice(playerA, "Goblin Warrior Token");
|
||||||
setChoice(playerA, false); // keep targets
|
setChoice(playerA, false); // keep targets
|
||||||
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Shock", playerB);
|
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Shock", playerB);
|
||||||
setChoice(playerA, false); // don't use conspire
|
setChoice(playerA, false); // don't use conspire
|
||||||
|
|
|
@ -280,7 +280,7 @@ public class ConvokeTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Call the Scions");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Call the Scions");
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Call the Scions");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Call the Scions");
|
||||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN, playerA);
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN, playerA);
|
||||||
checkPermanentCount("scions", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Eldrazi Scion", 4);
|
checkPermanentCount("scions", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Eldrazi Scion Token", 4);
|
||||||
|
|
||||||
// test case 1 - playable abilities must not show it as playable (not work, cause we don't known real payment order before payment)
|
// test case 1 - playable abilities must not show it as playable (not work, cause we don't known real payment order before payment)
|
||||||
//checkPlayableAbility("can't use convoke", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Will-Forged Golem", false);
|
//checkPlayableAbility("can't use convoke", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Will-Forged Golem", false);
|
||||||
|
@ -363,6 +363,6 @@ public class ConvokeTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
execute();
|
execute();
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Soldier", 1);
|
assertPermanentCount(playerA, "Soldier Token", 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -14,13 +14,13 @@ public class DecayedTest extends CardTestPlayerBase {
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Falcon Abomination");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Falcon Abomination");
|
||||||
attack(3, playerA, "Zombie");
|
attack(3, playerA, "Zombie Token");
|
||||||
setStopAt(3, PhaseStep.POSTCOMBAT_MAIN);
|
setStopAt(3, PhaseStep.POSTCOMBAT_MAIN);
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
assertPermanentCount(playerA, "Falcon Abomination", 1);
|
assertPermanentCount(playerA, "Falcon Abomination", 1);
|
||||||
assertPermanentCount(playerA, "Zombie", 0);
|
assertPermanentCount(playerA, "Zombie Token", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -42,7 +42,7 @@ public class DeliriumTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
assertExileCount(playerA, "Balduvian Bears", 4);
|
assertExileCount(playerA, "Balduvian Bears", 4);
|
||||||
assertGraveyardCount(playerA, "Descend upon the Sinful", 1);
|
assertGraveyardCount(playerA, "Descend upon the Sinful", 1);
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Angel", 0);
|
assertPermanentCount(playerA, "Angel Token", 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,7 +75,7 @@ public class DeliriumTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
assertExileCount(playerA, "Balduvian Bears", 4);
|
assertExileCount(playerA, "Balduvian Bears", 4);
|
||||||
assertGraveyardCount(playerA, "Descend upon the Sinful", 1);
|
assertGraveyardCount(playerA, "Descend upon the Sinful", 1);
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Angel", 1);
|
assertPermanentCount(playerA, "Angel Token", 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ public class DeliriumTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
assertGraveyardCount(playerA, "Spirit Mantle", 1);
|
assertGraveyardCount(playerA, "Spirit Mantle", 1);
|
||||||
assertGraveyardCount(playerA, "Descend upon the Sinful", 1);
|
assertGraveyardCount(playerA, "Descend upon the Sinful", 1);
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Angel", 0);
|
assertPermanentCount(playerA, "Angel Token", 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -151,7 +151,7 @@ public class DeliriumTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
assertExileCount(playerA, "Balduvian Bears", 4);
|
assertExileCount(playerA, "Balduvian Bears", 4);
|
||||||
assertGraveyardCount(playerA, "Descend upon the Sinful", 1);
|
assertGraveyardCount(playerA, "Descend upon the Sinful", 1);
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Angel", 0);
|
assertPermanentCount(playerA, "Angel Token", 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ public class DredgeTest extends CardTestPlayerBase {
|
||||||
assertHandCount(playerA, "Silvercoat Lion", 1);
|
assertHandCount(playerA, "Silvercoat Lion", 1);
|
||||||
assertGraveyardCount(playerA, "Silvercoat Lion", 3);
|
assertGraveyardCount(playerA, "Silvercoat Lion", 3);
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Zombie", 1); // May only be one creature
|
assertPermanentCount(playerA, "Zombie Token", 1); // May only be one creature
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ public class DredgeTest extends CardTestPlayerBase {
|
||||||
assertHandCount(playerB, "Stinkweed Imp", 1);
|
assertHandCount(playerB, "Stinkweed Imp", 1);
|
||||||
assertGraveyardCount(playerB, "Silvercoat Lion", 5);
|
assertGraveyardCount(playerB, "Silvercoat Lion", 5);
|
||||||
|
|
||||||
assertPermanentCount(playerB, "Zombie", 1); // May only be one creature
|
assertPermanentCount(playerB, "Zombie Token", 1); // May only be one creature
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ public class EpicTest extends CardTestPlayerBase {
|
||||||
execute();
|
execute();
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Snake", 3 + 3 + 4 + 5);
|
assertPermanentCount(playerA, "Snake Token", 3 + 3 + 4 + 5);
|
||||||
assertPermanentCount(playerA, "Forest", 8);
|
assertPermanentCount(playerA, "Forest", 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ public class EpicTest extends CardTestPlayerBase {
|
||||||
execute();
|
execute();
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Snake", 2 * (3 + 3 + 4 + 5));
|
assertPermanentCount(playerA, "Snake Token", 2 * (3 + 3 + 4 + 5));
|
||||||
assertPermanentCount(playerA, "Tropical Island", 10);
|
assertPermanentCount(playerA, "Tropical Island", 10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -198,7 +198,7 @@ public class FlashbackTest extends CardTestPlayerBase {
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Snapcaster Mage", 1);
|
assertPermanentCount(playerA, "Snapcaster Mage", 1);
|
||||||
assertPermanentCount(playerA, "Kor Ally", 4);
|
assertPermanentCount(playerA, "Kor Ally Token", 4);
|
||||||
assertExileCount("Unified Front", 1);
|
assertExileCount("Unified Front", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -435,7 +435,7 @@ public class FlashbackTest extends CardTestPlayerBase {
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertExileCount(playerA, fCatBlitz, 1);
|
assertExileCount(playerA, fCatBlitz, 1);
|
||||||
assertPermanentCount(playerA, "Elemental Cat", 1);
|
assertPermanentCount(playerA, "Elemental Cat Token", 1);
|
||||||
assertGraveyardCount(playerA, mountain, 1);
|
assertGraveyardCount(playerA, mountain, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -471,7 +471,7 @@ public class FlashbackTest extends CardTestPlayerBase {
|
||||||
assertTapped(yOx, true);
|
assertTapped(yOx, true);
|
||||||
assertTapped(wKnight, true);
|
assertTapped(wKnight, true);
|
||||||
assertExileCount(playerA, bScreech, 1); // this fails, but the creatures are tapped as part of paying the cost
|
assertExileCount(playerA, bScreech, 1); // this fails, but the creatures are tapped as part of paying the cost
|
||||||
assertPermanentCount(playerA, "Bird", 2); // if you comment out the above line, this is failing as well
|
assertPermanentCount(playerA, "Bird Token", 2); // if you comment out the above line, this is failing as well
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -37,7 +37,7 @@ public class InvestigateTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Briarbridge Patrol", 1);
|
assertPermanentCount(playerA, "Briarbridge Patrol", 1);
|
||||||
assertHandCount(playerA, 2); // 1 from sacrificed Clue and 1 from draw of turn 3
|
assertHandCount(playerA, 2); // 1 from sacrificed Clue and 1 from draw of turn 3
|
||||||
assertPermanentCount(playerA, "Clue", 1);
|
assertPermanentCount(playerA, "Clue Token", 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -262,8 +262,8 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
assertHandCount(playerA, "Ponyback Brigade", 0);
|
assertHandCount(playerA, "Ponyback Brigade", 0);
|
||||||
assertHandCount(playerB, "Doomwake Giant", 0);
|
assertHandCount(playerB, "Doomwake Giant", 0);
|
||||||
assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
|
assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
|
||||||
assertPermanentCount(playerA, "Goblin", 3);
|
assertPermanentCount(playerA, "Goblin Token", 3);
|
||||||
assertPowerToughness(playerA, "Goblin", 1, 1, Filter.ComparisonScope.Any);
|
assertPowerToughness(playerA, "Goblin Token", 1, 1, Filter.ComparisonScope.Any);
|
||||||
assertPermanentCount(playerB, "Doomwake Giant", 1);
|
assertPermanentCount(playerB, "Doomwake Giant", 1);
|
||||||
assertPermanentCount(playerA, "Ponyback Brigade", 1);
|
assertPermanentCount(playerA, "Ponyback Brigade", 1);
|
||||||
assertPowerToughness(playerA, "Ponyback Brigade", 1, 1);
|
assertPowerToughness(playerA, "Ponyback Brigade", 1, 1);
|
||||||
|
|
|
@ -150,7 +150,7 @@ public class PersistTest extends CardTestPlayerBase {
|
||||||
assertLife(playerB, 26); // +6 from lifelink of Wurmcoil
|
assertLife(playerB, 26); // +6 from lifelink of Wurmcoil
|
||||||
|
|
||||||
assertPermanentCount(playerB, "Wurmcoil Engine", 0);
|
assertPermanentCount(playerB, "Wurmcoil Engine", 0);
|
||||||
assertPermanentCount(playerB, "Phyrexian Wurm", 2);
|
assertPermanentCount(playerB, "Phyrexian Wurm Token", 2);
|
||||||
assertPermanentCount(playerA, "Kitchen Finks", 2);
|
assertPermanentCount(playerA, "Kitchen Finks", 2);
|
||||||
assertPowerToughness(playerA, "Kitchen Finks", 2, 1, Filter.ComparisonScope.All);
|
assertPowerToughness(playerA, "Kitchen Finks", 2, 1, Filter.ComparisonScope.All);
|
||||||
|
|
||||||
|
|
|
@ -115,7 +115,7 @@ public class RetraceTest extends CardTestPlayerBase {
|
||||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Worm", 3);
|
assertPermanentCount(playerA, "Worm Token", 3);
|
||||||
|
|
||||||
assertGraveyardCount(playerA, "Mountain", 1);
|
assertGraveyardCount(playerA, "Mountain", 1);
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@ public class SurgeTest extends CardTestPlayerBase {
|
||||||
assertGraveyardCount(playerA, "Lightning Bolt", 1);
|
assertGraveyardCount(playerA, "Lightning Bolt", 1);
|
||||||
assertGraveyardCount(playerB, "Cackling Counterpart", 1);
|
assertGraveyardCount(playerB, "Cackling Counterpart", 1);
|
||||||
assertGraveyardCount(playerA, "Crush of Tentacles", 1);
|
assertGraveyardCount(playerA, "Crush of Tentacles", 1);
|
||||||
assertPermanentCount(playerA, "Octopus", 1);
|
assertPermanentCount(playerA, "Octopus Token", 1);
|
||||||
assertPermanentCount(playerB, "Silvercoat Lion", 0);
|
assertPermanentCount(playerB, "Silvercoat Lion", 0);
|
||||||
assertHandCount(playerA, "Silvercoat Lion", 1);
|
assertHandCount(playerA, "Silvercoat Lion", 1);
|
||||||
assertHandCount(playerB, "Silvercoat Lion", 1);
|
assertHandCount(playerB, "Silvercoat Lion", 1);
|
||||||
|
|
|
@ -73,7 +73,7 @@ public class TransformTest extends CardTestPlayerBase {
|
||||||
assertPermanentCount(playerA, "Liliana, Defiant Necromancer", 1);
|
assertPermanentCount(playerA, "Liliana, Defiant Necromancer", 1);
|
||||||
assertCounterCount("Liliana, Defiant Necromancer", CounterType.LOYALTY, 3);
|
assertCounterCount("Liliana, Defiant Necromancer", CounterType.LOYALTY, 3);
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Zombie", 1);
|
assertPermanentCount(playerA, "Zombie Token", 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,7 +102,7 @@ public class TransformTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertGraveyardCount(playerB, "Languish", 1);
|
assertGraveyardCount(playerB, "Languish", 1);
|
||||||
assertPermanentCount(playerA, "Liliana, Defiant Necromancer", 0);
|
assertPermanentCount(playerA, "Liliana, Defiant Necromancer", 0);
|
||||||
assertPermanentCount(playerA, "Zombie", 0);
|
assertPermanentCount(playerA, "Zombie Token", 0);
|
||||||
|
|
||||||
assertGraveyardCount(playerA, "Silvercoat Lion", 1);
|
assertGraveyardCount(playerA, "Silvercoat Lion", 1);
|
||||||
assertGraveyardCount(playerA, "Liliana, Heretical Healer", 1);
|
assertGraveyardCount(playerA, "Liliana, Heretical Healer", 1);
|
||||||
|
@ -152,7 +152,7 @@ public class TransformTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Cult of the Waxing Moon", 1);
|
assertPermanentCount(playerA, "Cult of the Waxing Moon", 1);
|
||||||
assertPermanentCount(playerA, "Timber Shredder", 1); // Night-side card of Hinterland Logger, Werewolf (non-human)
|
assertPermanentCount(playerA, "Timber Shredder", 1); // Night-side card of Hinterland Logger, Werewolf (non-human)
|
||||||
assertPermanentCount(playerA, "Wolf", 1); // wolf token created
|
assertPermanentCount(playerA, "Wolf Token", 1); // wolf token created
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -377,7 +377,7 @@ public class TransformTest extends CardTestPlayerBase {
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertLife(playerA, 24);
|
assertLife(playerA, 24);
|
||||||
assertPermanentCount(playerA, "Wolf", 2);
|
assertPermanentCount(playerA, "Wolf Token", 2);
|
||||||
|
|
||||||
assertPermanentCount(playerB, "Eldrazi Displacer", 1);
|
assertPermanentCount(playerB, "Eldrazi Displacer", 1);
|
||||||
|
|
||||||
|
@ -410,7 +410,7 @@ public class TransformTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertLife(playerA, 24);
|
assertLife(playerA, 24);
|
||||||
assertLife(playerB, 18);
|
assertLife(playerB, 18);
|
||||||
assertPermanentCount(playerA, "Wolf", 2);
|
assertPermanentCount(playerA, "Wolf Token", 2);
|
||||||
assertPermanentCount(playerA, "Silvercoat Lion", 2);
|
assertPermanentCount(playerA, "Silvercoat Lion", 2);
|
||||||
assertPermanentCount(playerA, "Ravager of the Fells", 0);
|
assertPermanentCount(playerA, "Ravager of the Fells", 0);
|
||||||
assertPermanentCount(playerA, "Huntmaster of the Fells", 1);
|
assertPermanentCount(playerA, "Huntmaster of the Fells", 1);
|
||||||
|
|
|
@ -155,6 +155,6 @@ public class AddingCountersToPermanentsTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertGraveyardCount(playerB, "Lightning Bolt", 1);
|
assertGraveyardCount(playerB, "Lightning Bolt", 1);
|
||||||
assertPowerToughness(playerA, "Kitchen Finks", 2, 1);
|
assertPowerToughness(playerA, "Kitchen Finks", 2, 1);
|
||||||
assertPermanentCount(playerA, "Snake", 1);
|
assertPermanentCount(playerA, "Snake Token", 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ public class CounterActivatedAbilityTest extends CardTestPlayerBase {
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertGraveyardCount(playerB, "Squelch", 1);
|
assertGraveyardCount(playerB, "Squelch", 1);
|
||||||
assertPermanentCount(playerA, "Soldier", 0);
|
assertPermanentCount(playerA, "Soldier Token", 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ public class EndrekSahrMasterBreederTest extends CardTestPlayerBase {
|
||||||
assertGraveyardCount(playerA, "Silvercoat Lion", 1);
|
assertGraveyardCount(playerA, "Silvercoat Lion", 1);
|
||||||
assertGraveyardCount(playerB, "Counterspell", 1);
|
assertGraveyardCount(playerB, "Counterspell", 1);
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Thrull", 2);
|
assertPermanentCount(playerA, "Thrull Token", 2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ public class CelestialPurgeTest extends CardTestPlayerBase {
|
||||||
assertGraveyardCount(playerA, "Celestial Purge", 1);
|
assertGraveyardCount(playerA, "Celestial Purge", 1);
|
||||||
|
|
||||||
assertExileCount("Bitterblossom", 1);
|
assertExileCount("Bitterblossom", 1);
|
||||||
assertPermanentCount(playerB, "Faerie Rogue", 1);
|
assertPermanentCount(playerB, "Faerie Rogue Token", 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,7 +109,7 @@ public class ExileAndReturnTest extends CardTestPlayerBase {
|
||||||
assertPermanentCount(playerB, "Blanchwood Armor", 1);
|
assertPermanentCount(playerB, "Blanchwood Armor", 1);
|
||||||
assertGraveyardCount(playerB, "Frog Tongue", 0);
|
assertGraveyardCount(playerB, "Frog Tongue", 0);
|
||||||
assertPermanentCount(playerB, "Frog Tongue", 1);
|
assertPermanentCount(playerB, "Frog Tongue", 1);
|
||||||
assertPermanentCount(playerB, "Saproling", 8);
|
assertPermanentCount(playerB, "Saproling Token", 8);
|
||||||
assertPowerToughness(playerB, "Bramble Elemental", 10, 10);
|
assertPowerToughness(playerB, "Bramble Elemental", 10, 10);
|
||||||
assertAbility(playerB, "Bramble Elemental", ReachAbility.getInstance(), true);
|
assertAbility(playerB, "Bramble Elemental", ReachAbility.getInstance(), true);
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,7 @@ public class SakashimaTheImpostorTest extends CardTestPlayerBase {
|
||||||
assertGraveyardCount(playerA, "Silvercoat Lion", 1);
|
assertGraveyardCount(playerA, "Silvercoat Lion", 1);
|
||||||
assertGraveyardCount(playerB, "Sakashima the Impostor", 1);
|
assertGraveyardCount(playerB, "Sakashima the Impostor", 1);
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Eldrazi Spawn", 1);
|
assertPermanentCount(playerA, "Eldrazi Spawn Token", 1);
|
||||||
assertPermanentCount(playerB, "Eldrazi Spawn", 1);
|
assertPermanentCount(playerB, "Eldrazi Spawn Token", 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ public class SpellFizzlesTest extends CardTestPlayerBase {
|
||||||
assertGraveyardCount(playerA, "Adverse Conditions", 1);
|
assertGraveyardCount(playerA, "Adverse Conditions", 1);
|
||||||
assertGraveyardCount(playerB, "Lightning Bolt", 1);
|
assertGraveyardCount(playerB, "Lightning Bolt", 1);
|
||||||
assertGraveyardCount(playerB, "Silvercoat Lion", 1);
|
assertGraveyardCount(playerB, "Silvercoat Lion", 1);
|
||||||
assertPermanentCount(playerA, "Eldrazi Scion", 0); // All targets were illegal - spell fizzles
|
assertPermanentCount(playerA, "Eldrazi Scion Token", 0); // All targets were illegal - spell fizzles
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ public class StormTheVaultTest extends CardTestPlayerBase {
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Treasure", 2);
|
assertPermanentCount(playerA, "Treasure Token", 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -55,6 +55,6 @@ public class StormTheVaultTest extends CardTestPlayerBase {
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Treasure", 1);
|
assertPermanentCount(playerA, "Treasure Token", 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -463,7 +463,7 @@ public class PlayFromNonHandZoneTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
assertGraveyardCount(playerA, "Angelic Purge", 1);
|
assertGraveyardCount(playerA, "Angelic Purge", 1);
|
||||||
assertGraveyardCount(playerB, "Silvercoat Lion", 1); // sacrificed for Purge
|
assertGraveyardCount(playerB, "Silvercoat Lion", 1); // sacrificed for Purge
|
||||||
|
|
||||||
assertPermanentCount(playerB, "Food", 1);
|
assertPermanentCount(playerB, "Food Token", 1);
|
||||||
assertExileCount(playerA, "Curious Pair", 1);
|
assertExileCount(playerA, "Curious Pair", 1);
|
||||||
|
|
||||||
assertHandCount(playerB, 1); // 1 from Turn 2 draw
|
assertHandCount(playerB, 1); // 1 from Turn 2 draw
|
||||||
|
|
|
@ -26,7 +26,7 @@ public class DoIfCostPaidTest extends CardTestPlayerBase {
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertPermanentCount(playerB, "Awaken the Sky Tyrant", 0);
|
assertPermanentCount(playerB, "Awaken the Sky Tyrant", 0);
|
||||||
assertPermanentCount(playerB, "Dragon", 1);
|
assertPermanentCount(playerB, "Dragon Token", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,7 +106,7 @@ public class ChangelingTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertCounterCount(playerA, cohort, CounterType.P1P1, 1);
|
assertCounterCount(playerA, cohort, CounterType.P1P1, 1);
|
||||||
assertCounterCount(playerA, "Shapeshifter", CounterType.P1P1, 1);
|
assertCounterCount(playerA, "Shapeshifter Token", CounterType.P1P1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final String amoeboid = "Amoeboid Changeling";
|
private static final String amoeboid = "Amoeboid Changeling";
|
||||||
|
@ -119,13 +119,13 @@ public class ChangelingTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.HAND, playerA, cohort);
|
addCard(Zone.HAND, playerA, cohort);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, cohort);
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, cohort);
|
||||||
activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{T}: Target creature loses", "Shapeshifter");
|
activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{T}: Target creature loses", "Shapeshifter Token");
|
||||||
|
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
execute();
|
execute();
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertTapped(amoeboid, true);
|
assertTapped(amoeboid, true);
|
||||||
assertPowerToughness(playerA, "Shapeshifter", 2, 2);
|
assertPowerToughness(playerA, "Shapeshifter Token", 2, 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -150,7 +150,7 @@ public class CommandersCastTest extends CardTestCommander4PlayersWithAIHelps {
|
||||||
setModeChoice(playerA, "1");
|
setModeChoice(playerA, "1");
|
||||||
setModeChoice(playerA, "4");
|
setModeChoice(playerA, "4");
|
||||||
|
|
||||||
checkPermanentCount("after", 1, PhaseStep.BEGIN_COMBAT, playerA, "Citizen", 3);
|
checkPermanentCount("after", 1, PhaseStep.BEGIN_COMBAT, playerA, "Citizen Token", 3);
|
||||||
checkLife("after", 1, PhaseStep.BEGIN_COMBAT, playerA, 20 + 4);
|
checkLife("after", 1, PhaseStep.BEGIN_COMBAT, playerA, 20 + 4);
|
||||||
|
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
|
@ -179,7 +179,7 @@ public class CommandersCastTest extends CardTestCommander4PlayersWithAIHelps {
|
||||||
setModeChoice(playerA, "4");
|
setModeChoice(playerA, "4");
|
||||||
setChoice(playerA, true); // return commander
|
setChoice(playerA, true); // return commander
|
||||||
|
|
||||||
checkPermanentCount("after", 1, PhaseStep.BEGIN_COMBAT, playerA, "Citizen", 3);
|
checkPermanentCount("after", 1, PhaseStep.BEGIN_COMBAT, playerA, "Citizen Token", 3);
|
||||||
checkLife("after", 1, PhaseStep.BEGIN_COMBAT, playerA, 20 + 4);
|
checkLife("after", 1, PhaseStep.BEGIN_COMBAT, playerA, 20 + 4);
|
||||||
|
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
|
@ -409,7 +409,7 @@ public class CommandersCastTest extends CardTestCommander4PlayersWithAIHelps {
|
||||||
setChoice(playerA, true); // return commander
|
setChoice(playerA, true); // return commander
|
||||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
checkCommandCardCount("after first cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Curious Pair", 1);
|
checkCommandCardCount("after first cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Curious Pair", 1);
|
||||||
checkPermanentCount("after first cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Food", 1);
|
checkPermanentCount("after first cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Food Token", 1);
|
||||||
// commander tax: 1x
|
// commander tax: 1x
|
||||||
// can't cast due commander cost added (we stil have 2x mana)
|
// can't cast due commander cost added (we stil have 2x mana)
|
||||||
checkPlayableAbility("after first cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Curious Pair", false);
|
checkPlayableAbility("after first cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Curious Pair", false);
|
||||||
|
@ -425,7 +425,7 @@ public class CommandersCastTest extends CardTestCommander4PlayersWithAIHelps {
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Treats to Share");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Treats to Share");
|
||||||
setChoice(playerA, false); // do not return commander
|
setChoice(playerA, false); // do not return commander
|
||||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
checkPermanentCount("after second cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Food", 2);
|
checkPermanentCount("after second cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Food Token", 2);
|
||||||
checkPlayableAbility("after second cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Curious Pair", false);
|
checkPlayableAbility("after second cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Curious Pair", false);
|
||||||
checkPlayableAbility("after second cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Treats to Share", false);
|
checkPlayableAbility("after second cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Treats to Share", false);
|
||||||
|
|
||||||
|
|
|
@ -43,8 +43,8 @@ public class DaxosTheReturnedTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Underworld Dreams", 2);
|
assertPermanentCount(playerA, "Underworld Dreams", 2);
|
||||||
assertCounterCount(playerA, CounterType.EXPERIENCE, 2);
|
assertCounterCount(playerA, CounterType.EXPERIENCE, 2);
|
||||||
assertPowerToughness(playerA, "Spirit", 2, 2, Filter.ComparisonScope.All);
|
assertPowerToughness(playerA, "Spirit Token", 2, 2, Filter.ComparisonScope.All);
|
||||||
assertType("Spirit", CardType.ENCHANTMENT, SubType.SPIRIT);
|
assertType("Spirit Token", CardType.ENCHANTMENT, SubType.SPIRIT);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -93,7 +93,7 @@ public class DependentEffectsTest extends CardTestPlayerBase {
|
||||||
assertPowerToughness(playerB, "Cobblebrute", 4, 4);
|
assertPowerToughness(playerB, "Cobblebrute", 4, 4);
|
||||||
assertPowerToughness(playerA, "Cobblebrute", 4, 4);
|
assertPowerToughness(playerA, "Cobblebrute", 4, 4);
|
||||||
|
|
||||||
assertPermanentCount(playerB, "Soldier", 0);
|
assertPermanentCount(playerB, "Soldier Token", 0);
|
||||||
assertPermanentCount(playerA, "Island", 0);
|
assertPermanentCount(playerA, "Island", 0);
|
||||||
assertPermanentCount(playerB, "Plains", 0);
|
assertPermanentCount(playerB, "Plains", 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,15 +77,15 @@ public class GainAbilityDependenciesTest extends CardTestPlayerBase {
|
||||||
// cast token
|
// cast token
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Elephant Ambush");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Elephant Ambush");
|
||||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
checkPermanentCount("token must exist", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Elephant", 1);
|
checkPermanentCount("token must exist", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Elephant Token", 1);
|
||||||
|
|
||||||
// equip
|
// equip
|
||||||
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Equip {3}", "Elephant");
|
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Equip {3}", "Elephant Token");
|
||||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
|
|
||||||
// attack with +1 token
|
// attack with +1 token
|
||||||
attack(3, playerA, "Elephant", playerB);
|
attack(3, playerA, "Elephant Token", playerB);
|
||||||
checkPermanentCounters("must have counter", 3, PhaseStep.POSTCOMBAT_MAIN, playerA, "Elephant", CounterType.P1P1, 1);
|
checkPermanentCounters("must have counter", 3, PhaseStep.POSTCOMBAT_MAIN, playerA, "Elephant Token", CounterType.P1P1, 1);
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
setStopAt(3, PhaseStep.END_TURN);
|
setStopAt(3, PhaseStep.END_TURN);
|
||||||
|
|
|
@ -112,10 +112,10 @@ public class MerfolkTricksterTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "-2:");
|
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "-2:");
|
||||||
|
|
||||||
attack(3, playerA, "Devil");
|
attack(3, playerA, "Devil Token");
|
||||||
castSpell(3, PhaseStep.DECLARE_ATTACKERS, playerB, mTrickster);
|
castSpell(3, PhaseStep.DECLARE_ATTACKERS, playerB, mTrickster);
|
||||||
addTarget(playerB, "Devil");
|
addTarget(playerB, "Devil Token");
|
||||||
block(3, playerB, mTrickster, "Devil");
|
block(3, playerB, mTrickster, "Devil Token");
|
||||||
addTarget(playerA, mTrickster);
|
addTarget(playerA, mTrickster);
|
||||||
|
|
||||||
setStopAt(3, PhaseStep.END_COMBAT);
|
setStopAt(3, PhaseStep.END_COMBAT);
|
||||||
|
|
|
@ -268,11 +268,11 @@ public class SubTypeChangingEffectsTest extends CardTestPlayerBase {
|
||||||
Assert.assertTrue(silvercoatLion.hasSubtype(SubType.CAT, currentGame));
|
Assert.assertTrue(silvercoatLion.hasSubtype(SubType.CAT, currentGame));
|
||||||
Assert.assertFalse(silvercoatLion.hasSubtype(SubType.ORC, currentGame));
|
Assert.assertFalse(silvercoatLion.hasSubtype(SubType.ORC, currentGame));
|
||||||
|
|
||||||
Permanent beast = getPermanent("Beast", playerA);
|
Permanent beast = getPermanent("Beast Token", playerA);
|
||||||
Assert.assertTrue(beast.hasSubtype(SubType.BEAST, currentGame));
|
Assert.assertTrue(beast.hasSubtype(SubType.BEAST, currentGame));
|
||||||
Assert.assertFalse(beast.hasSubtype(SubType.ORC, currentGame));
|
Assert.assertFalse(beast.hasSubtype(SubType.ORC, currentGame));
|
||||||
|
|
||||||
Permanent wurm = getPermanent("Wurm", playerA);
|
Permanent wurm = getPermanent("Wurm Token", playerA);
|
||||||
Assert.assertTrue(wurm.hasSubtype(SubType.WURM, currentGame));
|
Assert.assertTrue(wurm.hasSubtype(SubType.WURM, currentGame));
|
||||||
Assert.assertFalse(wurm.hasSubtype(SubType.ORC, currentGame));
|
Assert.assertFalse(wurm.hasSubtype(SubType.ORC, currentGame));
|
||||||
|
|
||||||
|
|
|
@ -40,8 +40,8 @@ public class SwarmSurgeTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertPowerToughness(playerA, "Birthing Hulk", 7, 4);
|
assertPowerToughness(playerA, "Birthing Hulk", 7, 4);
|
||||||
assertAbility(playerA, "Birthing Hulk", FirstStrikeAbility.getInstance(), true);
|
assertAbility(playerA, "Birthing Hulk", FirstStrikeAbility.getInstance(), true);
|
||||||
assertPowerToughness(playerA, "Eldrazi Scion", 3, 1, Filter.ComparisonScope.All);
|
assertPowerToughness(playerA, "Eldrazi Scion Token", 3, 1, Filter.ComparisonScope.All);
|
||||||
assertAbility(playerA, "Eldrazi Scion", FirstStrikeAbility.getInstance(), true, 2);
|
assertAbility(playerA, "Eldrazi Scion Token", FirstStrikeAbility.getInstance(), true, 2);
|
||||||
assertPowerToughness(playerA, "Silvercoat Lion", 4, 2);
|
assertPowerToughness(playerA, "Silvercoat Lion", 4, 2);
|
||||||
assertAbility(playerA, "Silvercoat Lion", FirstStrikeAbility.getInstance(), false);
|
assertAbility(playerA, "Silvercoat Lion", FirstStrikeAbility.getInstance(), false);
|
||||||
|
|
||||||
|
|
|
@ -136,9 +136,9 @@ public class GontiLordOfLuxuryEffectTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Gonti, Lord of Luxury", 1);
|
assertPermanentCount(playerA, "Gonti, Lord of Luxury", 1);
|
||||||
assertPowerToughness(playerA, "Gonti, Lord of Luxury", 2, 3);
|
assertPowerToughness(playerA, "Gonti, Lord of Luxury", 2, 3);
|
||||||
assertPermanentCount(playerA, "Spirit", 2);
|
assertPermanentCount(playerA, "Spirit Token", 2);
|
||||||
|
|
||||||
assertPermanentCount(playerB, "Spirit", 2);
|
assertPermanentCount(playerB, "Spirit Token", 2);
|
||||||
|
|
||||||
assertExileCount("Lingering Souls", 1);
|
assertExileCount("Lingering Souls", 1);
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,7 @@ public class ArtisanOfFormsTest extends CardTestPlayerBase {
|
||||||
assertGraveyardCount(playerA, "Cackling Counterpart", 1);
|
assertGraveyardCount(playerA, "Cackling Counterpart", 1);
|
||||||
assertPermanentCount(playerA, "Artisan of Forms", 0);
|
assertPermanentCount(playerA, "Artisan of Forms", 0);
|
||||||
assertPermanentCount(playerB, "Silvercoat Lion", 1);
|
assertPermanentCount(playerB, "Silvercoat Lion", 1);
|
||||||
assertPermanentCount(playerA, "Bird", 1);
|
assertPermanentCount(playerA, "Bird Token", 1);
|
||||||
// 3 Silvercoat Lion at the end
|
// 3 Silvercoat Lion at the end
|
||||||
assertPermanentCount(playerA, "Silvercoat Lion", 3);
|
assertPermanentCount(playerA, "Silvercoat Lion", 3);
|
||||||
|
|
||||||
|
|
|
@ -209,7 +209,7 @@ public class CleverImpersonatorTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.HAND, playerB, "Memnite");
|
addCard(Zone.HAND, playerB, "Memnite");
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Kindred Discovery");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Kindred Discovery");
|
||||||
setChoice(playerA, "Construct");
|
setChoice(playerA, "Construct Token");
|
||||||
|
|
||||||
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Clever Impersonator");
|
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Clever Impersonator");
|
||||||
setChoice(playerB, "Kindred Discovery");
|
setChoice(playerB, "Kindred Discovery");
|
||||||
|
|
|
@ -221,7 +221,7 @@ public class CopySpellTest extends CardTestPlayerBase {
|
||||||
assertGraveyardCount(playerA, "Giant Growth", 1);
|
assertGraveyardCount(playerA, "Giant Growth", 1);
|
||||||
assertPowerToughness(playerA, "Silverfur Partisan", 5, 5);
|
assertPowerToughness(playerA, "Silverfur Partisan", 5, 5);
|
||||||
assertPowerToughness(playerA, "Zada, Hedron Grinder", 6, 6);
|
assertPowerToughness(playerA, "Zada, Hedron Grinder", 6, 6);
|
||||||
assertPermanentCount(playerA, "Wolf", 1); // created from Silverfur ability
|
assertPermanentCount(playerA, "Wolf Token", 1); // created from Silverfur ability
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -118,7 +118,7 @@ public class EssenceOfTheWildCopyTest extends CardTestPlayerBase {
|
||||||
execute();
|
execute();
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Soldier", 0);
|
assertPermanentCount(playerA, "Soldier Token", 0);
|
||||||
assertPermanentCount(playerA, "Essence of the Wild", 1 + 5);
|
assertPermanentCount(playerA, "Essence of the Wild", 1 + 5);
|
||||||
|
|
||||||
List<Permanent> list = new ArrayList<>();
|
List<Permanent> list = new ArrayList<>();
|
||||||
|
|
|
@ -88,11 +88,11 @@ public class FelhideSpiritbinderTest extends CardTestPlayerBase {
|
||||||
setStopAt(4, PhaseStep.PRECOMBAT_MAIN);
|
setStopAt(4, PhaseStep.PRECOMBAT_MAIN);
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Elephant", 1);
|
assertPermanentCount(playerA, "Elephant Token", 1);
|
||||||
assertPermanentCount(playerB, "Elephant", 1);
|
assertPermanentCount(playerB, "Elephant Token", 1);
|
||||||
assertAbility(playerB, "Elephant", HasteAbility.getInstance(), true);
|
assertAbility(playerB, "Elephant Token", HasteAbility.getInstance(), true);
|
||||||
|
|
||||||
Permanent copiedTokenElephant = getPermanent("Elephant", playerB);
|
Permanent copiedTokenElephant = getPermanent("Elephant Token", playerB);
|
||||||
Assert.assertEquals("Elephant has Enchantment card type", true, copiedTokenElephant.getCardType(currentGame).contains(CardType.ENCHANTMENT));
|
Assert.assertEquals("Elephant has Enchantment card type", true, copiedTokenElephant.getCardType(currentGame).contains(CardType.ENCHANTMENT));
|
||||||
|
|
||||||
assertLife(playerA, 17);
|
assertLife(playerA, 17);
|
||||||
|
|
|
@ -40,7 +40,7 @@ public class FlameshadowConjuringTest extends CardTestPlayerBase {
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Priest of the Blood Rite", 1);
|
assertPermanentCount(playerA, "Priest of the Blood Rite", 1);
|
||||||
assertPermanentCount(playerA, "Demon", 2);
|
assertPermanentCount(playerA, "Demon Token", 2);
|
||||||
|
|
||||||
assertLife(playerB, 20);
|
assertLife(playerB, 20);
|
||||||
assertLife(playerA, 18);
|
assertLife(playerA, 18);
|
||||||
|
@ -79,7 +79,7 @@ public class FlameshadowConjuringTest extends CardTestPlayerBase {
|
||||||
assertLife(playerB, 14);
|
assertLife(playerB, 14);
|
||||||
assertLife(playerA, 26);
|
assertLife(playerA, 26);
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Phyrexian Wurm", 2);
|
assertPermanentCount(playerA, "Phyrexian Wurm Token", 2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,8 +63,8 @@ public class HiveMindTest extends CardTestPlayerBase {
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertGraveyardCount(playerA, "Pact of the Titan", 1);
|
assertGraveyardCount(playerA, "Pact of the Titan", 1);
|
||||||
assertPermanentCount(playerA, "Giant", 0); // was countered by Chalice
|
assertPermanentCount(playerA, "Giant Token", 0); // was countered by Chalice
|
||||||
assertPermanentCount(playerB, "Giant", 1); // was not countered by Chalice because it was not cast
|
assertPermanentCount(playerB, "Giant Token", 1); // was not countered by Chalice because it was not cast
|
||||||
assertWonTheGame(playerA);
|
assertWonTheGame(playerA);
|
||||||
assertLostTheGame(playerB);
|
assertLostTheGame(playerB);
|
||||||
assertLife(playerB, 20);
|
assertLife(playerB, 20);
|
||||||
|
|
|
@ -46,7 +46,7 @@ public class KikiJikiMirrorBreakerTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertLife(playerA, 20);
|
assertLife(playerA, 20);
|
||||||
assertLife(playerB, 20);
|
assertLife(playerB, 20);
|
||||||
assertPermanentCount(playerA, "Elemental", 1); // because the copy was sacrificed
|
assertPermanentCount(playerA, "Elemental Token", 1); // because the copy was sacrificed
|
||||||
assertPermanentCount(playerA, "Voice of Resurgence", 1);
|
assertPermanentCount(playerA, "Voice of Resurgence", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ public class KikiJikiMirrorBreakerTest extends CardTestPlayerBase {
|
||||||
assertPermanentCount(playerA, "Voice of Resurgence", 0);
|
assertPermanentCount(playerA, "Voice of Resurgence", 0);
|
||||||
assertGraveyardCount(playerA, "Voice of Resurgence", 1);
|
assertGraveyardCount(playerA, "Voice of Resurgence", 1);
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Elemental", 2);
|
assertPermanentCount(playerA, "Elemental Token", 2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -382,7 +382,7 @@ public class PhantasmalImageTest extends CardTestPlayerBase {
|
||||||
assertPermanentCount(playerA, "Wurmcoil Engine", 1);
|
assertPermanentCount(playerA, "Wurmcoil Engine", 1);
|
||||||
|
|
||||||
assertGraveyardCount(playerB, "Phantasmal Image", 1);
|
assertGraveyardCount(playerB, "Phantasmal Image", 1);
|
||||||
assertPermanentCount(playerB, "Phyrexian Wurm", 2); // if triggered ability did not work, the Titan would be in the graveyard instaed
|
assertPermanentCount(playerB, "Phyrexian Wurm Token", 2); // if triggered ability did not work, the Titan would be in the graveyard instaed
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -574,8 +574,8 @@ public class PhantasmalImageTest extends CardTestPlayerBase {
|
||||||
assertGraveyardCount(playerA, "Phantasmal Image", 1);
|
assertGraveyardCount(playerA, "Phantasmal Image", 1);
|
||||||
assertGraveyardCount(playerB, "Wurmcoil Engine", 1);
|
assertGraveyardCount(playerB, "Wurmcoil Engine", 1);
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Phyrexian Wurm", 2);
|
assertPermanentCount(playerA, "Phyrexian Wurm Token", 2);
|
||||||
assertPermanentCount(playerB, "Phyrexian Wurm", 2);
|
assertPermanentCount(playerB, "Phyrexian Wurm Token", 2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -605,8 +605,8 @@ public class PhantasmalImageTest extends CardTestPlayerBase {
|
||||||
assertGraveyardCount(playerA, "Phantasmal Image", 1);
|
assertGraveyardCount(playerA, "Phantasmal Image", 1);
|
||||||
assertGraveyardCount(playerB, "Voice of Resurgence", 1);
|
assertGraveyardCount(playerB, "Voice of Resurgence", 1);
|
||||||
|
|
||||||
assertPermanentCount(playerB, "Elemental", 1);
|
assertPermanentCount(playerB, "Elemental Token", 1);
|
||||||
assertPermanentCount(playerA, "Elemental", 1);
|
assertPermanentCount(playerA, "Elemental Token", 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ public class PhyrexianMetamorphTest extends CardTestPlayerBase {
|
||||||
assertGraveyardCount(playerA, "Cloudshift", 1);
|
assertGraveyardCount(playerA, "Cloudshift", 1);
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Ponyback Brigade", 1);
|
assertPermanentCount(playerA, "Ponyback Brigade", 1);
|
||||||
assertPermanentCount(playerA, "Goblin", 3);
|
assertPermanentCount(playerA, "Goblin Token", 3);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ public class PhyrexianMetamorphTest extends CardTestPlayerBase {
|
||||||
assertLife(playerB, 18);
|
assertLife(playerB, 18);
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Ponyback Brigade", 1);
|
assertPermanentCount(playerA, "Ponyback Brigade", 1);
|
||||||
assertPermanentCount(playerA, "Goblin", 3);
|
assertPermanentCount(playerA, "Goblin Token", 3);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertHandCount(playerA, 0);
|
assertHandCount(playerA, 0);
|
||||||
assertPermanentCount(playerA, "Food", 1);
|
assertPermanentCount(playerA, "Food Token", 1);
|
||||||
assertExileCount(playerA, "Curious Pair", 1);
|
assertExileCount(playerA, "Curious Pair", 1);
|
||||||
assertGraveyardCount(playerA, 0);
|
assertGraveyardCount(playerA, 0);
|
||||||
}
|
}
|
||||||
|
@ -56,7 +56,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertHandCount(playerA, 0);
|
assertHandCount(playerA, 0);
|
||||||
assertPermanentCount(playerA, "Food", 1);
|
assertPermanentCount(playerA, "Food Token", 1);
|
||||||
assertExileCount(playerA, "Curious Pair", 1);
|
assertExileCount(playerA, "Curious Pair", 1);
|
||||||
assertGraveyardCount(playerA, 0);
|
assertGraveyardCount(playerA, 0);
|
||||||
}
|
}
|
||||||
|
@ -75,7 +75,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertHandCount(playerA, 0);
|
assertHandCount(playerA, 0);
|
||||||
assertPermanentCount(playerA, "Food", 0);
|
assertPermanentCount(playerA, "Food Token", 0);
|
||||||
assertPermanentCount(playerA, "Curious Pair", 1);
|
assertPermanentCount(playerA, "Curious Pair", 1);
|
||||||
assertExileCount(playerA, "Curious Pair", 0);
|
assertExileCount(playerA, "Curious Pair", 0);
|
||||||
assertGraveyardCount(playerA, 0);
|
assertGraveyardCount(playerA, 0);
|
||||||
|
@ -97,7 +97,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertHandCount(playerA, 0);
|
assertHandCount(playerA, 0);
|
||||||
assertPermanentCount(playerA, "Food", 1);
|
assertPermanentCount(playerA, "Food Token", 1);
|
||||||
assertPermanentCount(playerA, "Curious Pair", 1);
|
assertPermanentCount(playerA, "Curious Pair", 1);
|
||||||
assertExileCount(playerA, "Curious Pair", 0);
|
assertExileCount(playerA, "Curious Pair", 0);
|
||||||
assertGraveyardCount(playerA, 0);
|
assertGraveyardCount(playerA, 0);
|
||||||
|
@ -125,7 +125,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertHandCount(playerA, 0);
|
assertHandCount(playerA, 0);
|
||||||
assertPermanentCount(playerA, "Food", 1);
|
assertPermanentCount(playerA, "Food Token", 1);
|
||||||
assertPermanentCount(playerA, "Curious Pair", 0);
|
assertPermanentCount(playerA, "Curious Pair", 0);
|
||||||
assertExileCount(playerA, "Curious Pair", 1);
|
assertExileCount(playerA, "Curious Pair", 1);
|
||||||
assertGraveyardCount(playerA, 0);
|
assertGraveyardCount(playerA, 0);
|
||||||
|
@ -146,7 +146,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertHandCount(playerA, 1);
|
assertHandCount(playerA, 1);
|
||||||
assertPermanentCount(playerA, "Food", 0);
|
assertPermanentCount(playerA, "Food Token", 0);
|
||||||
assertPermanentCount(playerA, "Curious Pair", 1);
|
assertPermanentCount(playerA, "Curious Pair", 1);
|
||||||
assertExileCount(playerA, "Curious Pair", 0);
|
assertExileCount(playerA, "Curious Pair", 0);
|
||||||
assertGraveyardCount(playerA, 0);
|
assertGraveyardCount(playerA, 0);
|
||||||
|
@ -169,7 +169,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertHandCount(playerA, 1);
|
assertHandCount(playerA, 1);
|
||||||
assertPermanentCount(playerA, "Food", 1);
|
assertPermanentCount(playerA, "Food Token", 1);
|
||||||
assertPermanentCount(playerA, "Curious Pair", 1);
|
assertPermanentCount(playerA, "Curious Pair", 1);
|
||||||
assertExileCount(playerA, "Curious Pair", 0);
|
assertExileCount(playerA, "Curious Pair", 0);
|
||||||
assertGraveyardCount(playerA, 0);
|
assertGraveyardCount(playerA, 0);
|
||||||
|
@ -189,7 +189,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertHandCount(playerA, 0);
|
assertHandCount(playerA, 0);
|
||||||
assertPermanentCount(playerA, "Food", 0);
|
assertPermanentCount(playerA, "Food Token", 0);
|
||||||
assertPermanentCount(playerA, "Curious Pair", 1);
|
assertPermanentCount(playerA, "Curious Pair", 1);
|
||||||
assertPowerToughness(playerA, "Curious Pair", 2, 4);
|
assertPowerToughness(playerA, "Curious Pair", 2, 4);
|
||||||
assertExileCount(playerA, "Curious Pair", 0);
|
assertExileCount(playerA, "Curious Pair", 0);
|
||||||
|
@ -248,7 +248,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertHandCount(playerA, 0);
|
assertHandCount(playerA, 0);
|
||||||
assertPermanentCount(playerA, "Food", 2);
|
assertPermanentCount(playerA, "Food Token", 2);
|
||||||
assertPermanentCount(playerA, "Curious Pair", 0);
|
assertPermanentCount(playerA, "Curious Pair", 0);
|
||||||
assertExileCount(playerA, "Curious Pair", 1);
|
assertExileCount(playerA, "Curious Pair", 1);
|
||||||
assertGraveyardCount(playerA, 0);
|
assertGraveyardCount(playerA, 0);
|
||||||
|
@ -276,7 +276,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertHandCount(playerA, 0);
|
assertHandCount(playerA, 0);
|
||||||
assertPermanentCount(playerA, "Food", 2);
|
assertPermanentCount(playerA, "Food Token", 2);
|
||||||
assertPermanentCount(playerA, 5);
|
assertPermanentCount(playerA, 5);
|
||||||
assertExileCount(playerA, "Curious Pair", 1);
|
assertExileCount(playerA, "Curious Pair", 1);
|
||||||
assertExileCount(playerA, 1);
|
assertExileCount(playerA, 1);
|
||||||
|
@ -306,7 +306,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertHandCount(playerA, 0);
|
assertHandCount(playerA, 0);
|
||||||
assertPermanentCount(playerA, "Food", 0);
|
assertPermanentCount(playerA, "Food Token", 0);
|
||||||
assertPermanentCount(playerA, 1);
|
assertPermanentCount(playerA, 1);
|
||||||
assertExileCount(playerA, 0);
|
assertExileCount(playerA, 0);
|
||||||
assertGraveyardCount(playerA, "Curious Pair", 1);
|
assertGraveyardCount(playerA, "Curious Pair", 1);
|
||||||
|
@ -343,7 +343,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
assertHandCount(playerA, 0);
|
assertHandCount(playerA, 0);
|
||||||
assertHandCount(playerB, 0);
|
assertHandCount(playerB, 0);
|
||||||
assertPermanentCount(playerB, 0);
|
assertPermanentCount(playerB, 0);
|
||||||
assertPermanentCount(playerA, "Food", 1);
|
assertPermanentCount(playerA, "Food Token", 1);
|
||||||
assertPermanentCount(playerA, "Curious Pair", 1);
|
assertPermanentCount(playerA, "Curious Pair", 1);
|
||||||
assertExileCount(playerA, 0);
|
assertExileCount(playerA, 0);
|
||||||
assertExileCount(playerB, 0);
|
assertExileCount(playerB, 0);
|
||||||
|
@ -451,7 +451,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertHandCount(playerA, 0);
|
assertHandCount(playerA, 0);
|
||||||
assertPermanentCount(playerA, 4);
|
assertPermanentCount(playerA, 4);
|
||||||
assertPermanentCount(playerA, "Food", 2);
|
assertPermanentCount(playerA, "Food Token", 2);
|
||||||
assertPermanentCount(playerA, "Curious Pair", 0);
|
assertPermanentCount(playerA, "Curious Pair", 0);
|
||||||
assertExileCount(playerA, "Curious Pair", 1);
|
assertExileCount(playerA, "Curious Pair", 1);
|
||||||
assertGraveyardCount(playerA, 0);
|
assertGraveyardCount(playerA, 0);
|
||||||
|
@ -501,7 +501,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertHandCount(playerA, 0);
|
assertHandCount(playerA, 0);
|
||||||
assertPermanentCount(playerA, "Food", 0);
|
assertPermanentCount(playerA, "Food Token", 0);
|
||||||
assertPermanentCount(playerA, "Curious Pair", 1);
|
assertPermanentCount(playerA, "Curious Pair", 1);
|
||||||
assertExileCount(playerA, 0);
|
assertExileCount(playerA, 0);
|
||||||
assertGraveyardCount(playerA, 0);
|
assertGraveyardCount(playerA, 0);
|
||||||
|
@ -524,7 +524,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
execute();
|
execute();
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Food", 0);
|
assertPermanentCount(playerA, "Food Token", 0);
|
||||||
assertLibraryCount(playerA, 1);
|
assertLibraryCount(playerA, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -559,7 +559,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertHandCount(playerA, 0);
|
assertHandCount(playerA, 0);
|
||||||
assertPermanentCount(playerA, "Food", 1);
|
assertPermanentCount(playerA, "Food Token", 1);
|
||||||
assertPermanentCount(playerA, "Curious Pair", 0);
|
assertPermanentCount(playerA, "Curious Pair", 0);
|
||||||
assertPermanentCount(playerA, "Wrenn and Six", 1);
|
assertPermanentCount(playerA, "Wrenn and Six", 1);
|
||||||
assertEmblemCount(playerA, 1);
|
assertEmblemCount(playerA, 1);
|
||||||
|
@ -594,7 +594,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertHandCount(playerA, 0);
|
assertHandCount(playerA, 0);
|
||||||
assertPermanentCount(playerA, 3);
|
assertPermanentCount(playerA, 3);
|
||||||
assertPermanentCount(playerA, "Food", 1);
|
assertPermanentCount(playerA, "Food Token", 1);
|
||||||
assertPermanentCount(playerA, "Curious Pair", 0);
|
assertPermanentCount(playerA, "Curious Pair", 0);
|
||||||
assertExileCount(playerA, "Curious Pair", 1);
|
assertExileCount(playerA, "Curious Pair", 1);
|
||||||
assertGraveyardCount(playerA, 0);
|
assertGraveyardCount(playerA, 0);
|
||||||
|
@ -759,7 +759,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
// play as adventure spell
|
// play as adventure spell
|
||||||
castSpell(3, PhaseStep.POSTCOMBAT_MAIN, playerA, "Treats to Share");
|
castSpell(3, PhaseStep.POSTCOMBAT_MAIN, playerA, "Treats to Share");
|
||||||
waitStackResolved(3, PhaseStep.POSTCOMBAT_MAIN);
|
waitStackResolved(3, PhaseStep.POSTCOMBAT_MAIN);
|
||||||
checkPermanentCount("after play 3", 3, PhaseStep.POSTCOMBAT_MAIN, playerA, "Food", 1);
|
checkPermanentCount("after play 3", 3, PhaseStep.POSTCOMBAT_MAIN, playerA, "Food Token", 1);
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
setStopAt(3, PhaseStep.END_TURN);
|
setStopAt(3, PhaseStep.END_TURN);
|
||||||
|
@ -793,7 +793,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Curious Pair", 0);
|
assertPermanentCount(playerA, "Curious Pair", 0);
|
||||||
assertPermanentCount(playerA, "Food", 1);
|
assertPermanentCount(playerA, "Food Token", 1);
|
||||||
assertExileCount(playerA, "Curious Pair", 1);
|
assertExileCount(playerA, "Curious Pair", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -841,8 +841,8 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Curious Pair", 0);
|
assertPermanentCount(playerA, "Curious Pair", 0);
|
||||||
assertPermanentCount(playerA, "Food", 1);
|
assertPermanentCount(playerA, "Food Token", 1);
|
||||||
assertPermanentCount(playerA, "Servo", 3);
|
assertPermanentCount(playerA, "Servo Token", 3);
|
||||||
assertExileCount(playerA, "Curious Pair", 1);
|
assertExileCount(playerA, "Curious Pair", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -862,7 +862,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Flaxen Intruder", 1);
|
assertPermanentCount(playerA, "Flaxen Intruder", 1);
|
||||||
assertPermanentCount(playerA, "Bear", 0);
|
assertPermanentCount(playerA, "Bear", 0);
|
||||||
assertPermanentCount(playerA, "Servo", 3);
|
assertPermanentCount(playerA, "Servo Token", 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -880,8 +880,8 @@ public class AdventureCardsTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Lonesome Unicorn", 0);
|
assertPermanentCount(playerA, "Lonesome Unicorn", 0);
|
||||||
assertPermanentCount(playerA, "Knight", 1);
|
assertPermanentCount(playerA, "Knight Token", 1);
|
||||||
assertPermanentCount(playerA, "Servo", 3);
|
assertPermanentCount(playerA, "Servo Token", 3);
|
||||||
assertExileCount(playerA, "Lonesome Unicorn", 1);
|
assertExileCount(playerA, "Lonesome Unicorn", 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,7 +53,7 @@ public class BolassCitadelTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
assertHandCount(playerA, 0);
|
assertHandCount(playerA, 0);
|
||||||
assertPermanentCount(playerA, "Food", 1);
|
assertPermanentCount(playerA, "Food Token", 1);
|
||||||
assertExileCount(playerA, "Curious Pair", 1);
|
assertExileCount(playerA, "Curious Pair", 1);
|
||||||
assertGraveyardCount(playerA, 0);
|
assertGraveyardCount(playerA, 0);
|
||||||
assertLife(playerA, 19);
|
assertLife(playerA, 19);
|
||||||
|
|
|
@ -882,7 +882,7 @@ public class ModalDoubleFacesCardsTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Valki, God of Lies", 1);
|
assertPermanentCount(playerA, "Valki, God of Lies", 1);
|
||||||
assertPermanentCount(playerA, "Servo", 3);
|
assertPermanentCount(playerA, "Servo Token", 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -901,7 +901,7 @@ public class ModalDoubleFacesCardsTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "The Omenkeel", 1);
|
assertPermanentCount(playerA, "The Omenkeel", 1);
|
||||||
assertPermanentCount(playerA, "Servo", 3);
|
assertPermanentCount(playerA, "Servo Token", 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -117,7 +117,7 @@ public class BattlefieldThaumaturgeTest extends CardTestPlayerBase {
|
||||||
assertPermanentCount(playerA, creature, 1);
|
assertPermanentCount(playerA, creature, 1);
|
||||||
}
|
}
|
||||||
// Each has a solider token generated while attacking
|
// Each has a solider token generated while attacking
|
||||||
assertPermanentCount(playerA, "Soldier", 5);
|
assertPermanentCount(playerA, "Soldier Token", 5);
|
||||||
// Battlefield Thaumaturge will have hexproof from heroic trigger
|
// Battlefield Thaumaturge will have hexproof from heroic trigger
|
||||||
Permanent battlefieldThaumaturge = getPermanent("Battlefield Thaumaturge", playerA.getId());
|
Permanent battlefieldThaumaturge = getPermanent("Battlefield Thaumaturge", playerA.getId());
|
||||||
Assert.assertTrue("Battlefield Thaumaturge must have hexproof", battlefieldThaumaturge.getAbilities().contains(HexproofAbility.getInstance()));
|
Assert.assertTrue("Battlefield Thaumaturge must have hexproof", battlefieldThaumaturge.getAbilities().contains(HexproofAbility.getInstance()));
|
||||||
|
@ -166,7 +166,7 @@ public class BattlefieldThaumaturgeTest extends CardTestPlayerBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
// All 4 creatures have been replaced by boars
|
// All 4 creatures have been replaced by boars
|
||||||
assertPermanentCount(playerB, "Boar", 4);
|
assertPermanentCount(playerB, "Boar Token", 4);
|
||||||
|
|
||||||
/* Cost to target 4 permanents will be:
|
/* Cost to target 4 permanents will be:
|
||||||
* + {4}{U}{U} for the base spell with X = 4
|
* + {4}{U}{U} for the base spell with X = 4
|
||||||
|
@ -216,8 +216,8 @@ public class BattlefieldThaumaturgeTest extends CardTestPlayerBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
// And each player has 3 dragons
|
// And each player has 3 dragons
|
||||||
assertPermanentCount(playerA, "Dragon", 3);
|
assertPermanentCount(playerA, "Dragon Token", 3);
|
||||||
assertPermanentCount(playerB, "Dragon", 3);
|
assertPermanentCount(playerB, "Dragon Token", 3);
|
||||||
|
|
||||||
/* Cost to target 6 creatures will be
|
/* Cost to target 6 creatures will be
|
||||||
* + {4}{R}{R} for the fixed cost base spell
|
* + {4}{R}{R} for the fixed cost base spell
|
||||||
|
|
|
@ -89,7 +89,7 @@ public class DungeonTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPowerToughness(playerA, FLAMESPEAKER_ADEPT, 2 + 2, 3);
|
assertPowerToughness(playerA, FLAMESPEAKER_ADEPT, 2 + 2, 3);
|
||||||
assertPermanentCount(playerA, "Goblin", 0);
|
assertPermanentCount(playerA, "Goblin Token", 0);
|
||||||
assertDungeonRoom(LOST_MINE_OF_PHANDELVER, "Cave Entrance");
|
assertDungeonRoom(LOST_MINE_OF_PHANDELVER, "Cave Entrance");
|
||||||
assertLife(playerA, 20);
|
assertLife(playerA, 20);
|
||||||
assertLife(playerB, 20);
|
assertLife(playerB, 20);
|
||||||
|
@ -112,7 +112,7 @@ public class DungeonTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPowerToughness(playerA, FLAMESPEAKER_ADEPT, 2 + 2, 3);
|
assertPowerToughness(playerA, FLAMESPEAKER_ADEPT, 2 + 2, 3);
|
||||||
assertPermanentCount(playerA, "Goblin", 1);
|
assertPermanentCount(playerA, "Goblin Token", 1);
|
||||||
assertDungeonRoom(LOST_MINE_OF_PHANDELVER, "Goblin Lair");
|
assertDungeonRoom(LOST_MINE_OF_PHANDELVER, "Goblin Lair");
|
||||||
assertLife(playerA, 20);
|
assertLife(playerA, 20);
|
||||||
assertLife(playerB, 20);
|
assertLife(playerB, 20);
|
||||||
|
@ -138,7 +138,7 @@ public class DungeonTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPowerToughness(playerA, FLAMESPEAKER_ADEPT, 2 + 2, 3);
|
assertPowerToughness(playerA, FLAMESPEAKER_ADEPT, 2 + 2, 3);
|
||||||
assertPermanentCount(playerA, "Goblin", 1);
|
assertPermanentCount(playerA, "Goblin Token", 1);
|
||||||
assertDungeonRoom(LOST_MINE_OF_PHANDELVER, "Dark Pool");
|
assertDungeonRoom(LOST_MINE_OF_PHANDELVER, "Dark Pool");
|
||||||
assertLife(playerA, 20 + 1);
|
assertLife(playerA, 20 + 1);
|
||||||
assertLife(playerB, 20 - 1);
|
assertLife(playerB, 20 - 1);
|
||||||
|
@ -166,7 +166,7 @@ public class DungeonTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPowerToughness(playerA, FLAMESPEAKER_ADEPT, 2 + 2, 3);
|
assertPowerToughness(playerA, FLAMESPEAKER_ADEPT, 2 + 2, 3);
|
||||||
assertPermanentCount(playerA, "Goblin", 1);
|
assertPermanentCount(playerA, "Goblin Token", 1);
|
||||||
assertDungeonRoom(null, null);
|
assertDungeonRoom(null, null);
|
||||||
assertLife(playerA, 20 + 1);
|
assertLife(playerA, 20 + 1);
|
||||||
assertLife(playerB, 20 - 1);
|
assertLife(playerB, 20 - 1);
|
||||||
|
@ -189,7 +189,7 @@ public class DungeonTest extends CardTestPlayerBase {
|
||||||
execute();
|
execute();
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Goblin", 1);
|
assertPermanentCount(playerA, "Goblin Token", 1);
|
||||||
assertDungeonRoom(null, null);
|
assertDungeonRoom(null, null);
|
||||||
assertLife(playerA, 20 + 1);
|
assertLife(playerA, 20 + 1);
|
||||||
assertLife(playerB, 20 - 1);
|
assertLife(playerB, 20 - 1);
|
||||||
|
@ -213,7 +213,7 @@ public class DungeonTest extends CardTestPlayerBase {
|
||||||
execute();
|
execute();
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Goblin", 1);
|
assertPermanentCount(playerA, "Goblin Token", 1);
|
||||||
assertDungeonRoom(LOST_MINE_OF_PHANDELVER, "Goblin Lair");
|
assertDungeonRoom(LOST_MINE_OF_PHANDELVER, "Goblin Lair");
|
||||||
assertLife(playerA, 20);
|
assertLife(playerA, 20);
|
||||||
assertLife(playerB, 20);
|
assertLife(playerB, 20);
|
||||||
|
@ -247,7 +247,7 @@ public class DungeonTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertPowerToughness(playerA, SILVERCOAT_LION, 3, 3);
|
assertPowerToughness(playerA, SILVERCOAT_LION, 3, 3);
|
||||||
assertCounterCount(playerA, SILVERCOAT_LION, CounterType.P1P1, 1);
|
assertCounterCount(playerA, SILVERCOAT_LION, CounterType.P1P1, 1);
|
||||||
assertPermanentCount(playerA, "Goblin", 1);
|
assertPermanentCount(playerA, "Goblin Token", 1);
|
||||||
assertDungeonRoom(LOST_MINE_OF_PHANDELVER, "Storeroom");
|
assertDungeonRoom(LOST_MINE_OF_PHANDELVER, "Storeroom");
|
||||||
assertLife(playerA, 20);
|
assertLife(playerA, 20);
|
||||||
assertLife(playerB, 20);
|
assertLife(playerB, 20);
|
||||||
|
@ -286,8 +286,8 @@ public class DungeonTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertPowerToughness(playerA, FLAMESPEAKER_ADEPT, 2 + 2, 3);
|
assertPowerToughness(playerA, FLAMESPEAKER_ADEPT, 2 + 2, 3);
|
||||||
assertPowerToughness(playerB, FLAMESPEAKER_ADEPT, 2 + 2 + 2, 3);
|
assertPowerToughness(playerB, FLAMESPEAKER_ADEPT, 2 + 2 + 2, 3);
|
||||||
assertPermanentCount(playerA, "Goblin", 1);
|
assertPermanentCount(playerA, "Goblin Token", 1);
|
||||||
assertPermanentCount(playerB, "Treasure", 1);
|
assertPermanentCount(playerB, "Treasure Token", 1);
|
||||||
assertDungeonRoom(playerA, LOST_MINE_OF_PHANDELVER, "Dark Pool");
|
assertDungeonRoom(playerA, LOST_MINE_OF_PHANDELVER, "Dark Pool");
|
||||||
assertDungeonRoom(playerB, DUNGEON_OF_THE_MAD_MAGE, "Lost Level");
|
assertDungeonRoom(playerB, DUNGEON_OF_THE_MAD_MAGE, "Lost Level");
|
||||||
assertLife(playerA, 20 + 1);
|
assertLife(playerA, 20 + 1);
|
||||||
|
@ -406,7 +406,7 @@ public class DungeonTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPowerToughness(playerA, FLAMESPEAKER_ADEPT, 2 + 2 + 2, 3);
|
assertPowerToughness(playerA, FLAMESPEAKER_ADEPT, 2 + 2 + 2, 3);
|
||||||
assertPermanentCount(playerA, "Goblin", 2);
|
assertPermanentCount(playerA, "Goblin Token", 2);
|
||||||
assertDungeonRoom(LOST_MINE_OF_PHANDELVER, "Dark Pool");
|
assertDungeonRoom(LOST_MINE_OF_PHANDELVER, "Dark Pool");
|
||||||
assertLife(playerA, 20 + 1 + 1);
|
assertLife(playerA, 20 + 1 + 1);
|
||||||
assertLife(playerB, 20 - 1 - 1);
|
assertLife(playerB, 20 - 1 - 1);
|
||||||
|
@ -433,7 +433,7 @@ public class DungeonTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPowerToughness(playerA, FLAMESPEAKER_ADEPT, 2 + 2, 3);
|
assertPowerToughness(playerA, FLAMESPEAKER_ADEPT, 2 + 2, 3);
|
||||||
assertPermanentCount(playerA, "Goblin", 1);
|
assertPermanentCount(playerA, "Goblin Token", 1);
|
||||||
assertDungeonRoom(LOST_MINE_OF_PHANDELVER, "Dark Pool");
|
assertDungeonRoom(LOST_MINE_OF_PHANDELVER, "Dark Pool");
|
||||||
assertLife(playerA, 20 + 1);
|
assertLife(playerA, 20 + 1);
|
||||||
assertLife(playerB, 20 - 1);
|
assertLife(playerB, 20 - 1);
|
||||||
|
|
|
@ -49,7 +49,7 @@ public class NestOfScarabsTest extends CardTestPlayerBase {
|
||||||
assertPermanentCount(playerA, stinger, 1);
|
assertPermanentCount(playerA, stinger, 1);
|
||||||
assertCounterCount(playerA, stinger, CounterType.M1M1, 2);
|
assertCounterCount(playerA, stinger, CounterType.M1M1, 2);
|
||||||
assertPowerToughness(playerA, stinger, 2, 3); // 4/5 with two -1/-1 counters
|
assertPowerToughness(playerA, stinger, 2, 3); // 4/5 with two -1/-1 counters
|
||||||
assertPermanentCount(playerA, "Insect", 2); // two counters = two insects
|
assertPermanentCount(playerA, "Insect Token", 2); // two counters = two insects
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -98,7 +98,7 @@ public class NestOfScarabsTest extends CardTestPlayerBase {
|
||||||
assertCounterCount(playerB, hillGiant, CounterType.M1M1, 1);
|
assertCounterCount(playerB, hillGiant, CounterType.M1M1, 1);
|
||||||
assertPowerToughness(playerB, grizzly, 1, 1); // 2/2 with -1/-1 counter
|
assertPowerToughness(playerB, grizzly, 1, 1); // 2/2 with -1/-1 counter
|
||||||
assertPowerToughness(playerB, hillGiant, 2, 2); // 3/3 with -1/-1 counter
|
assertPowerToughness(playerB, hillGiant, 2, 2); // 3/3 with -1/-1 counter
|
||||||
assertPermanentCount(playerA, "Insect", 4); // 4 counters = 4 insects
|
assertPermanentCount(playerA, "Insect Token", 4); // 4 counters = 4 insects
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -150,8 +150,8 @@ public class NestOfScarabsTest extends CardTestPlayerBase {
|
||||||
assertCounterCount(playerB, hillGiant, CounterType.M1M1, 1);
|
assertCounterCount(playerB, hillGiant, CounterType.M1M1, 1);
|
||||||
assertPowerToughness(playerB, grizzly, 1, 1); // 2/2 with -1/-1 counter
|
assertPowerToughness(playerB, grizzly, 1, 1); // 2/2 with -1/-1 counter
|
||||||
assertPowerToughness(playerB, hillGiant, 2, 2); // 3/3 with -1/-1 counter
|
assertPowerToughness(playerB, hillGiant, 2, 2); // 3/3 with -1/-1 counter
|
||||||
assertPermanentCount(playerB, "Insect", 0); // playerB did not place the -1/-1 counters, should not trigger
|
assertPermanentCount(playerB, "Insect Token", 0); // playerB did not place the -1/-1 counters, should not trigger
|
||||||
assertPermanentCount(playerA, "Insect", 4); // 4 counters = 4 insects
|
assertPermanentCount(playerA, "Insect Token", 4); // 4 counters = 4 insects
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -177,7 +177,7 @@ public class NestOfScarabsTest extends CardTestPlayerBase {
|
||||||
assertCounterCount(playerB, CounterType.POISON, 0);
|
assertCounterCount(playerB, CounterType.POISON, 0);
|
||||||
assertPowerToughness(playerB, wOmens, -1, 3); // 0/4 with -1/-1 counter
|
assertPowerToughness(playerB, wOmens, -1, 3); // 0/4 with -1/-1 counter
|
||||||
assertCounterCount(playerB, wOmens, CounterType.M1M1, 1);
|
assertCounterCount(playerB, wOmens, CounterType.M1M1, 1);
|
||||||
assertPermanentCount(playerA, "Insect", 1);
|
assertPermanentCount(playerA, "Insect Token", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -203,6 +203,6 @@ public class NestOfScarabsTest extends CardTestPlayerBase {
|
||||||
assertLife(playerB, 20);
|
assertLife(playerB, 20);
|
||||||
assertPowerToughness(playerB, wOmens, -2, 2); // 0/4 with two -1/-1 counters
|
assertPowerToughness(playerB, wOmens, -2, 2); // 0/4 with two -1/-1 counters
|
||||||
assertCounterCount(playerB, wOmens, CounterType.M1M1, 2);
|
assertCounterCount(playerB, wOmens, CounterType.M1M1, 2);
|
||||||
assertPermanentCount(playerA, "Insect", 2);
|
assertPermanentCount(playerA, "Insect Token", 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ public class ParadoxHazeTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Paradox Haze", 1);
|
assertPermanentCount(playerA, "Paradox Haze", 1);
|
||||||
assertPermanentCount(playerA, "Verdant Force", 1);
|
assertPermanentCount(playerA, "Verdant Force", 1);
|
||||||
assertPermanentCount(playerA, "Saproling", 3);// 1 from turn 2 and 2 from turn 3
|
assertPermanentCount(playerA, "Saproling Token", 3);// 1 from turn 2 and 2 from turn 3
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -57,6 +57,6 @@ public class ParadoxHazeTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Paradox Haze", 2);
|
assertPermanentCount(playerA, "Paradox Haze", 2);
|
||||||
assertPermanentCount(playerA, "Verdant Force", 1);
|
assertPermanentCount(playerA, "Verdant Force", 1);
|
||||||
assertPermanentCount(playerA, "Saproling", 4); // 1 from turn 2 and 3 from turn 3
|
assertPermanentCount(playerA, "Saproling Token", 4); // 1 from turn 2 and 3 from turn 3
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,13 +29,13 @@ public class SagaTest extends CardTestPlayerBase {
|
||||||
setStopAt(1, PhaseStep.PRECOMBAT_MAIN);
|
setStopAt(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
execute();
|
execute();
|
||||||
assertCounterCount(rite, CounterType.LORE, 1);
|
assertCounterCount(rite, CounterType.LORE, 1);
|
||||||
assertPermanentCount(playerA, "Cleric", 2);
|
assertPermanentCount(playerA, "Cleric Token", 2);
|
||||||
|
|
||||||
setStopAt(3, PhaseStep.PRECOMBAT_MAIN);
|
setStopAt(3, PhaseStep.PRECOMBAT_MAIN);
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertCounterCount(rite, CounterType.LORE, 2);
|
assertCounterCount(rite, CounterType.LORE, 2);
|
||||||
assertPermanentCount(playerA, "Cleric", 4);
|
assertPermanentCount(playerA, "Cleric Token", 4);
|
||||||
|
|
||||||
setStopAt(5, PhaseStep.BEGIN_COMBAT);
|
setStopAt(5, PhaseStep.BEGIN_COMBAT);
|
||||||
execute();
|
execute();
|
||||||
|
@ -43,8 +43,8 @@ public class SagaTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertGraveyardCount(playerA, rite, 1);
|
assertGraveyardCount(playerA, rite, 1);
|
||||||
assertPermanentCount(playerA, rite, 0);
|
assertPermanentCount(playerA, rite, 0);
|
||||||
assertPermanentCount(playerA, "Cleric", 4);
|
assertPermanentCount(playerA, "Cleric Token", 4);
|
||||||
assertPermanentCount(playerA, "Demon", 1);
|
assertPermanentCount(playerA, "Demon Token", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -59,13 +59,13 @@ public class SagaTest extends CardTestPlayerBase {
|
||||||
setStopAt(1, PhaseStep.PRECOMBAT_MAIN);
|
setStopAt(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
execute();
|
execute();
|
||||||
assertCounterCount(rite, CounterType.LORE, 1);
|
assertCounterCount(rite, CounterType.LORE, 1);
|
||||||
assertPermanentCount(playerA, "Cleric", 2);
|
assertPermanentCount(playerA, "Cleric Token", 2);
|
||||||
|
|
||||||
setStopAt(3, PhaseStep.PRECOMBAT_MAIN);
|
setStopAt(3, PhaseStep.PRECOMBAT_MAIN);
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertCounterCount(rite, CounterType.LORE, 2);
|
assertCounterCount(rite, CounterType.LORE, 2);
|
||||||
assertPermanentCount(playerA, "Cleric", 4);
|
assertPermanentCount(playerA, "Cleric Token", 4);
|
||||||
|
|
||||||
castSpell(3, PhaseStep.POSTCOMBAT_MAIN, playerA, flicker, rite);
|
castSpell(3, PhaseStep.POSTCOMBAT_MAIN, playerA, flicker, rite);
|
||||||
setStopAt(3, PhaseStep.END_TURN);
|
setStopAt(3, PhaseStep.END_TURN);
|
||||||
|
@ -75,8 +75,8 @@ public class SagaTest extends CardTestPlayerBase {
|
||||||
assertGraveyardCount(playerA, rite, 0);
|
assertGraveyardCount(playerA, rite, 0);
|
||||||
assertPermanentCount(playerA, rite, 1);
|
assertPermanentCount(playerA, rite, 1);
|
||||||
assertCounterCount(playerA, rite, CounterType.LORE, 1);
|
assertCounterCount(playerA, rite, CounterType.LORE, 1);
|
||||||
assertPermanentCount(playerA, "Cleric", 6);
|
assertPermanentCount(playerA, "Cleric Token", 6);
|
||||||
assertPermanentCount(playerA, "Demon", 0);
|
assertPermanentCount(playerA, "Demon Token", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -91,13 +91,13 @@ public class SagaTest extends CardTestPlayerBase {
|
||||||
setStopAt(1, PhaseStep.PRECOMBAT_MAIN);
|
setStopAt(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
execute();
|
execute();
|
||||||
assertCounterCount(rite, CounterType.LORE, 1);
|
assertCounterCount(rite, CounterType.LORE, 1);
|
||||||
assertPermanentCount(playerA, "Cleric", 2);
|
assertPermanentCount(playerA, "Cleric Token", 2);
|
||||||
|
|
||||||
setStopAt(3, PhaseStep.PRECOMBAT_MAIN);
|
setStopAt(3, PhaseStep.PRECOMBAT_MAIN);
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertCounterCount(rite, CounterType.LORE, 2);
|
assertCounterCount(rite, CounterType.LORE, 2);
|
||||||
assertPermanentCount(playerA, "Cleric", 4);
|
assertPermanentCount(playerA, "Cleric Token", 4);
|
||||||
|
|
||||||
castSpell(5, PhaseStep.PRECOMBAT_MAIN, playerA, boomerang, rite);
|
castSpell(5, PhaseStep.PRECOMBAT_MAIN, playerA, boomerang, rite);
|
||||||
setStopAt(5, PhaseStep.BEGIN_COMBAT);
|
setStopAt(5, PhaseStep.BEGIN_COMBAT);
|
||||||
|
@ -107,8 +107,8 @@ public class SagaTest extends CardTestPlayerBase {
|
||||||
assertHandCount(playerA, rite, 1);
|
assertHandCount(playerA, rite, 1);
|
||||||
assertPermanentCount(playerA, rite, 0);
|
assertPermanentCount(playerA, rite, 0);
|
||||||
assertGraveyardCount(playerA, boomerang, 1);
|
assertGraveyardCount(playerA, boomerang, 1);
|
||||||
assertPermanentCount(playerA, "Cleric", 4);
|
assertPermanentCount(playerA, "Cleric Token", 4);
|
||||||
assertPermanentCount(playerA, "Demon", 1);
|
assertPermanentCount(playerA, "Demon Token", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -122,7 +122,7 @@ public class SagaTest extends CardTestPlayerBase {
|
||||||
setStopAt(1, PhaseStep.PRECOMBAT_MAIN);
|
setStopAt(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
execute();
|
execute();
|
||||||
assertCounterCount(rite, CounterType.LORE, 2);
|
assertCounterCount(rite, CounterType.LORE, 2);
|
||||||
assertPermanentCount(playerA, "Cleric", 4);
|
assertPermanentCount(playerA, "Cleric Token", 4);
|
||||||
|
|
||||||
setStopAt(3, PhaseStep.PRECOMBAT_MAIN);
|
setStopAt(3, PhaseStep.PRECOMBAT_MAIN);
|
||||||
execute();
|
execute();
|
||||||
|
@ -130,8 +130,8 @@ public class SagaTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertGraveyardCount(playerA, rite, 1);
|
assertGraveyardCount(playerA, rite, 1);
|
||||||
assertPermanentCount(playerA, rite, 0);
|
assertPermanentCount(playerA, rite, 0);
|
||||||
assertPermanentCount(playerA, "Cleric", 4);
|
assertPermanentCount(playerA, "Cleric Token", 4);
|
||||||
assertPermanentCount(playerA, "Demon", 1);
|
assertPermanentCount(playerA, "Demon Token", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -34,7 +34,7 @@ public class IvoryGuardiansTest extends CardTestPlayerBase {
|
||||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertPowerToughness(playerA, "Goblin", 1, 1);
|
assertPowerToughness(playerA, "Goblin Token", 1, 1);
|
||||||
assertPowerToughness(playerB, "Ivory Guardians", 3, 3);
|
assertPowerToughness(playerB, "Ivory Guardians", 3, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,8 +27,8 @@ public class ForbiddenOrchardTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Silvercoat Lion", 1);
|
assertPermanentCount(playerA, "Silvercoat Lion", 1);
|
||||||
|
|
||||||
assertPermanentCount(playerB, "Spirit", 1);
|
assertPermanentCount(playerB, "Spirit Token", 1);
|
||||||
assertPermanentCount(playerA, "Spirit", 0);
|
assertPermanentCount(playerA, "Spirit Token", 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ public class RosheenMeandererManaXTest extends CardTestPlayerBase {
|
||||||
setChoice(playerA, "X=2");
|
setChoice(playerA, "X=2");
|
||||||
|
|
||||||
checkPermanentCount("after", 1, PhaseStep.END_TURN, playerA, "Verdeloth the Ancient", 1);
|
checkPermanentCount("after", 1, PhaseStep.END_TURN, playerA, "Verdeloth the Ancient", 1);
|
||||||
checkPermanentCount("after", 1, PhaseStep.END_TURN, playerA, "Saproling", 2);
|
checkPermanentCount("after", 1, PhaseStep.END_TURN, playerA, "Saproling Token", 2);
|
||||||
|
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
|
@ -55,7 +55,7 @@ public class RosheenMeandererManaXTest extends CardTestPlayerBase {
|
||||||
setChoice(playerA, "X=2");
|
setChoice(playerA, "X=2");
|
||||||
|
|
||||||
checkPermanentCount("after", 1, PhaseStep.END_TURN, playerA, "Verdeloth the Ancient", 1);
|
checkPermanentCount("after", 1, PhaseStep.END_TURN, playerA, "Verdeloth the Ancient", 1);
|
||||||
checkPermanentCount("after", 1, PhaseStep.END_TURN, playerA, "Saproling", 2);
|
checkPermanentCount("after", 1, PhaseStep.END_TURN, playerA, "Saproling Token", 2);
|
||||||
|
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
|
@ -85,7 +85,7 @@ public class RosheenMeandererManaXTest extends CardTestPlayerBase {
|
||||||
setChoice(playerA, "X=0");
|
setChoice(playerA, "X=0");
|
||||||
|
|
||||||
checkPermanentCount("after", 1, PhaseStep.END_TURN, playerA, "Verdeloth the Ancient", 1);
|
checkPermanentCount("after", 1, PhaseStep.END_TURN, playerA, "Verdeloth the Ancient", 1);
|
||||||
checkPermanentCount("after", 1, PhaseStep.END_TURN, playerA, "Saproling", 0);
|
checkPermanentCount("after", 1, PhaseStep.END_TURN, playerA, "Saproling Token", 0);
|
||||||
|
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
|
|
|
@ -40,7 +40,7 @@ public class SpendManaAsThoughItWereManaOfAnyColorTest extends CardTestPlayerBas
|
||||||
|
|
||||||
assertExileCount(playerA, 0);
|
assertExileCount(playerA, 0);
|
||||||
assertGraveyardCount(playerA, "Moan of the Unhallowed", 1);
|
assertGraveyardCount(playerA, "Moan of the Unhallowed", 1);
|
||||||
assertPermanentCount(playerB, "Zombie", 2);
|
assertPermanentCount(playerB, "Zombie Token", 2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,7 @@ public class AjaniTest extends CardTestPlayerBase {
|
||||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Kor Ally", 2);
|
assertPermanentCount(playerA, "Kor Ally Token", 2);
|
||||||
assertPermanentCount(playerA, "Oath of Gideon", 1);
|
assertPermanentCount(playerA, "Oath of Gideon", 1);
|
||||||
assertPermanentCount(playerA, "Ajani Goldmane", 1);
|
assertPermanentCount(playerA, "Ajani Goldmane", 1);
|
||||||
assertCounterCount("Ajani Goldmane", CounterType.LOYALTY, 6); // 4 + 1 + 1 = 6
|
assertCounterCount("Ajani Goldmane", CounterType.LOYALTY, 6); // 4 + 1 + 1 = 6
|
||||||
|
|
|
@ -38,7 +38,7 @@ public class LilianaDefiantNecromancerTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertGraveyardCount(playerB, "Lightning Bolt", 1);
|
assertGraveyardCount(playerB, "Lightning Bolt", 1);
|
||||||
assertPermanentCount(playerA, "Liliana, Heretical Healer", 0);
|
assertPermanentCount(playerA, "Liliana, Heretical Healer", 0);
|
||||||
assertPermanentCount(playerA, "Zombie", 1);
|
assertPermanentCount(playerA, "Zombie Token", 1);
|
||||||
assertPermanentCount(playerA, "Liliana, Defiant Necromancer", 1);
|
assertPermanentCount(playerA, "Liliana, Defiant Necromancer", 1);
|
||||||
assertCounterCount("Liliana, Defiant Necromancer", CounterType.LOYALTY, 3); // No balid target with X=1 so no counter is removed
|
assertCounterCount("Liliana, Defiant Necromancer", CounterType.LOYALTY, 3); // No balid target with X=1 so no counter is removed
|
||||||
assertPermanentCount(playerA, "Hill Giant", 0);
|
assertPermanentCount(playerA, "Hill Giant", 0);
|
||||||
|
@ -73,7 +73,7 @@ public class LilianaDefiantNecromancerTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertGraveyardCount(playerB, "Lightning Bolt", 1);
|
assertGraveyardCount(playerB, "Lightning Bolt", 1);
|
||||||
assertPermanentCount(playerA, "Liliana, Heretical Healer", 0);
|
assertPermanentCount(playerA, "Liliana, Heretical Healer", 0);
|
||||||
assertPermanentCount(playerA, "Zombie", 1);
|
assertPermanentCount(playerA, "Zombie Token", 1);
|
||||||
assertPermanentCount(playerA, "Alesha, Who Smiles at Death", 0);
|
assertPermanentCount(playerA, "Alesha, Who Smiles at Death", 0);
|
||||||
assertGraveyardCount(playerA, "Alesha, Who Smiles at Death", 1);
|
assertGraveyardCount(playerA, "Alesha, Who Smiles at Death", 1);
|
||||||
// because target could not be chosen, the counters were never removed?
|
// because target could not be chosen, the counters were never removed?
|
||||||
|
@ -109,7 +109,7 @@ public class LilianaDefiantNecromancerTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertGraveyardCount(playerB, "Lightning Bolt", 1);
|
assertGraveyardCount(playerB, "Lightning Bolt", 1);
|
||||||
assertPermanentCount(playerA, "Liliana, Heretical Healer", 0);
|
assertPermanentCount(playerA, "Liliana, Heretical Healer", 0);
|
||||||
assertPermanentCount(playerA, "Zombie", 1);
|
assertPermanentCount(playerA, "Zombie Token", 1);
|
||||||
assertPermanentCount(playerA, "Bronze Sable", 1);
|
assertPermanentCount(playerA, "Bronze Sable", 1);
|
||||||
assertGraveyardCount(playerA, "Bronze Sable", 0);
|
assertGraveyardCount(playerA, "Bronze Sable", 0);
|
||||||
assertPermanentCount(playerA, "Liliana, Defiant Necromancer", 1);
|
assertPermanentCount(playerA, "Liliana, Defiant Necromancer", 1);
|
||||||
|
|
|
@ -104,6 +104,6 @@ public class LilianaTest extends CardTestPlayerBase {
|
||||||
assertCounterCount(playerA, liliannaUbD, CounterType.LOYALTY, 1);
|
assertCounterCount(playerA, liliannaUbD, CounterType.LOYALTY, 1);
|
||||||
assertPermanentCount(playerA, "Carrion Feeder", 1);
|
assertPermanentCount(playerA, "Carrion Feeder", 1);
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Bat", 1);
|
assertPermanentCount(playerA, "Bat Token", 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,10 +38,10 @@ public class TamiyoTest extends CardTestPlayerBase {
|
||||||
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "+1: Until end of turn");
|
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "+1: Until end of turn");
|
||||||
// finally, use Tamiyo +1 on both creatures
|
// finally, use Tamiyo +1 on both creatures
|
||||||
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "+1: Choose up to two");
|
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "+1: Choose up to two");
|
||||||
addTarget(playerA, "Knight Ally^Gideon, Ally of Zendikar"); // both token and Gideon as creature
|
addTarget(playerA, "Knight Ally Token^Gideon, Ally of Zendikar"); // both token and Gideon as creature
|
||||||
|
|
||||||
// attack with both unblocked
|
// attack with both unblocked
|
||||||
attack(3, playerA, "Knight Ally");
|
attack(3, playerA, "Knight Ally Token");
|
||||||
attack(3, playerA, "Gideon, Ally of Zendikar");
|
attack(3, playerA, "Gideon, Ally of Zendikar");
|
||||||
|
|
||||||
setStopAt(3, PhaseStep.END_COMBAT);
|
setStopAt(3, PhaseStep.END_COMBAT);
|
||||||
|
@ -50,7 +50,7 @@ public class TamiyoTest extends CardTestPlayerBase {
|
||||||
assertLife(playerB, 13); // 5 + 2 damage, 20 - 7 = 13
|
assertLife(playerB, 13); // 5 + 2 damage, 20 - 7 = 13
|
||||||
assertPermanentCount(playerA, "Tamiyo, Field Researcher", 1);
|
assertPermanentCount(playerA, "Tamiyo, Field Researcher", 1);
|
||||||
assertPermanentCount(playerA, "Gideon, Ally of Zendikar", 1);
|
assertPermanentCount(playerA, "Gideon, Ally of Zendikar", 1);
|
||||||
assertPermanentCount(playerA, "Knight Ally", 1);
|
assertPermanentCount(playerA, "Knight Ally Token", 1);
|
||||||
assertHandCount(playerA, 3); // two cards drawn from each creature dealing damage + 1 card drawn on turn
|
assertHandCount(playerA, 3); // two cards drawn from each creature dealing damage + 1 card drawn on turn
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,9 +22,9 @@ public class AcademyManufactorTest extends CardTestPlayerBase {
|
||||||
assertPermanentCount(playerA, "Plains", 1);
|
assertPermanentCount(playerA, "Plains", 1);
|
||||||
assertPermanentCount(playerA, "Academy Manufactor", 1);
|
assertPermanentCount(playerA, "Academy Manufactor", 1);
|
||||||
assertPermanentCount(playerA, "Thraben Inspector", 1);
|
assertPermanentCount(playerA, "Thraben Inspector", 1);
|
||||||
assertPermanentCount(playerA, "Clue", 1);
|
assertPermanentCount(playerA, "Clue Token", 1);
|
||||||
assertPermanentCount(playerA, "Food", 1);
|
assertPermanentCount(playerA, "Food Token", 1);
|
||||||
assertPermanentCount(playerA, "Treasure", 1);
|
assertPermanentCount(playerA, "Treasure Token", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -44,9 +44,9 @@ public class AcademyManufactorTest extends CardTestPlayerBase {
|
||||||
assertPermanentCount(playerA, "Academy Manufactor", 2);
|
assertPermanentCount(playerA, "Academy Manufactor", 2);
|
||||||
assertPermanentCount(playerA, "Anointed Procession", 1);
|
assertPermanentCount(playerA, "Anointed Procession", 1);
|
||||||
assertPermanentCount(playerA, "Thraben Inspector", 1);
|
assertPermanentCount(playerA, "Thraben Inspector", 1);
|
||||||
assertPermanentCount(playerA, "Clue", 6);
|
assertPermanentCount(playerA, "Clue Token", 6);
|
||||||
assertPermanentCount(playerA, "Food", 6);
|
assertPermanentCount(playerA, "Food Token", 6);
|
||||||
assertPermanentCount(playerA, "Treasure", 6);
|
assertPermanentCount(playerA, "Treasure Token", 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -88,8 +88,8 @@ public class AcademyManufactorTest extends CardTestPlayerBase {
|
||||||
// Gingerbrute token copy becomes a regular Food
|
// Gingerbrute token copy becomes a regular Food
|
||||||
assertPermanentCount(playerA, "Gingerbrute", 0);
|
assertPermanentCount(playerA, "Gingerbrute", 0);
|
||||||
assertPermanentCount(playerB, "Gingerbrute", 0);
|
assertPermanentCount(playerB, "Gingerbrute", 0);
|
||||||
assertPermanentCount(playerA, "Clue", 3);
|
assertPermanentCount(playerA, "Clue Token", 3);
|
||||||
assertPermanentCount(playerA, "Food", 3);
|
assertPermanentCount(playerA, "Food Token", 3);
|
||||||
assertPermanentCount(playerA, "Treasure", 3);
|
assertPermanentCount(playerA, "Treasure Token", 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,8 +23,8 @@ public class ChatterfangSquirrelGeneralTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
assertPermanentCount(playerA, "Plains", 2);
|
assertPermanentCount(playerA, "Plains", 2);
|
||||||
assertPermanentCount(playerA, chatterfang, 1);
|
assertPermanentCount(playerA, chatterfang, 1);
|
||||||
assertPermanentCount(playerA, "Soldier", 2);
|
assertPermanentCount(playerA, "Soldier Token", 2);
|
||||||
assertPermanentCount(playerA, "Squirrel", 2);
|
assertPermanentCount(playerA, "Squirrel Token", 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -41,10 +41,10 @@ public class ChatterfangSquirrelGeneralTest extends CardTestPlayerBase {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
assertPermanentCount(playerA, "Plains", 2);
|
assertPermanentCount(playerA, "Plains", 2);
|
||||||
assertPermanentCount(playerB, chatterfang, 1);
|
assertPermanentCount(playerB, chatterfang, 1);
|
||||||
assertPermanentCount(playerA, "Soldier", 2);
|
assertPermanentCount(playerA, "Soldier Token", 2);
|
||||||
assertPermanentCount(playerA, "Squirrel", 0);
|
assertPermanentCount(playerA, "Squirrel Token", 0);
|
||||||
assertPermanentCount(playerB, "Soldier", 0);
|
assertPermanentCount(playerB, "Soldier Token", 0);
|
||||||
assertPermanentCount(playerB, "Squirrel", 0);
|
assertPermanentCount(playerB, "Squirrel Token", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -66,9 +66,9 @@ public class ChatterfangSquirrelGeneralTest extends CardTestPlayerBase {
|
||||||
assertPermanentCount(playerA, "Plains", 1);
|
assertPermanentCount(playerA, "Plains", 1);
|
||||||
assertPermanentCount(playerA, chatterfang, 1);
|
assertPermanentCount(playerA, chatterfang, 1);
|
||||||
assertPermanentCount(playerA, "Academy Manufactor", 1);
|
assertPermanentCount(playerA, "Academy Manufactor", 1);
|
||||||
assertPermanentCount(playerA, "Clue", 1);
|
assertPermanentCount(playerA, "Clue Token", 1);
|
||||||
assertPermanentCount(playerA, "Food", 1);
|
assertPermanentCount(playerA, "Food Token", 1);
|
||||||
assertPermanentCount(playerA, "Treasure", 1);
|
assertPermanentCount(playerA, "Treasure Token", 1);
|
||||||
assertPermanentCount(playerA, "Squirrel", 3);
|
assertPermanentCount(playerA, "Squirrel Token", 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,7 +42,7 @@ public class DamageEffectsTest extends CardTestPlayerBase {
|
||||||
assertGraveyardCount(playerB, "Ob Nixilis, the Fallen", 1);
|
assertGraveyardCount(playerB, "Ob Nixilis, the Fallen", 1);
|
||||||
|
|
||||||
assertGraveyardCount(playerA, "Wurmcoil Engine", 1);
|
assertGraveyardCount(playerA, "Wurmcoil Engine", 1);
|
||||||
assertPermanentCount(playerA, "Phyrexian Wurm", 2);
|
assertPermanentCount(playerA, "Phyrexian Wurm Token", 2);
|
||||||
|
|
||||||
assertLife(playerB, 20);
|
assertLife(playerB, 20);
|
||||||
assertLife(playerA, 29); // -2 from Ob Nixilis + 12 from double damage with lifelink from Wurmcoil Engine
|
assertLife(playerA, 29); // -2 from Ob Nixilis + 12 from double damage with lifelink from Wurmcoil Engine
|
||||||
|
|
|
@ -88,7 +88,7 @@ public class DoublingSeasonTest extends CardTestPlayerBase {
|
||||||
assertLife(playerA, 20);
|
assertLife(playerA, 20);
|
||||||
assertLife(playerB, 20);
|
assertLife(playerB, 20);
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Saproling", 2);
|
assertPermanentCount(playerA, "Saproling Token", 2);
|
||||||
assertCounterCount("Pallid Mycoderm", CounterType.SPORE, 1);
|
assertCounterCount("Pallid Mycoderm", CounterType.SPORE, 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -272,7 +272,7 @@ public class DoublingSeasonTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Zombie", 2);
|
assertPermanentCount(playerA, "Zombie Token", 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -101,7 +101,7 @@ public class DrawEffectsTest extends CardTestPlayerBase {
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertGraveyardCount(playerA, "Counsel of the Soratami", 1);
|
assertGraveyardCount(playerA, "Counsel of the Soratami", 1);
|
||||||
assertPermanentCount(playerA, "Bear", 1);
|
assertPermanentCount(playerA, "Bear Token", 1);
|
||||||
assertHandCount(playerA, 1);
|
assertHandCount(playerA, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ public class HallowedMoonlightTest extends CardTestPlayerBase {
|
||||||
assertGraveyardCount(playerA, "Hallowed Moonlight", 1);
|
assertGraveyardCount(playerA, "Hallowed Moonlight", 1);
|
||||||
assertGraveyardCount(playerB, "Spiritual Visit", 1);
|
assertGraveyardCount(playerB, "Spiritual Visit", 1);
|
||||||
|
|
||||||
assertPermanentCount(playerB, "Spirit", 0);
|
assertPermanentCount(playerB, "Spirit Token", 0);
|
||||||
assertPermanentCount(playerB, "Silvercoat Lion", 1);
|
assertPermanentCount(playerB, "Silvercoat Lion", 1);
|
||||||
|
|
||||||
assertExileCount(playerB, 1);
|
assertExileCount(playerB, 1);
|
||||||
|
|
|
@ -123,7 +123,7 @@ public class LeylineOfTheVoidTest extends CardTestPlayerBase {
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Eldrazi Spawn", 0);
|
assertPermanentCount(playerA, "Eldrazi Spawn Token", 0);
|
||||||
assertExileCount(playerB, 0);
|
assertExileCount(playerB, 0);
|
||||||
assertHandCount(playerB, 1);
|
assertHandCount(playerB, 1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@ public class WouldDieExileInsteadTest extends CardTestPlayerBase {
|
||||||
assertExileCount("Sigiled Starfish", 1);
|
assertExileCount("Sigiled Starfish", 1);
|
||||||
assertGraveyardCount(playerB, 0); // all 3 creatures of playerB should be exiled not in graveyard
|
assertGraveyardCount(playerB, 0); // all 3 creatures of playerB should be exiled not in graveyard
|
||||||
assertExileCount("Kalitas, Traitor of Ghet", 0); // player controlled, not opponent so not exiled
|
assertExileCount("Kalitas, Traitor of Ghet", 0); // player controlled, not opponent so not exiled
|
||||||
assertPermanentCount(playerA, "Zombie", 3); // 3 tokens generated from exiling 3 opponent's creatures
|
assertPermanentCount(playerA, "Zombie Token", 3); // 3 tokens generated from exiling 3 opponent's creatures
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -75,7 +75,7 @@ public class ZoneChangeReplacementTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertGraveyardCount(playerA, "Silvercoat Lion", 1);
|
assertGraveyardCount(playerA, "Silvercoat Lion", 1);
|
||||||
assertGraveyardCount(playerA, 3); // Diabolic Edict + Bridge from Below + Silvercoat Lion
|
assertGraveyardCount(playerA, 3); // Diabolic Edict + Bridge from Below + Silvercoat Lion
|
||||||
assertPermanentCount(playerA, "Zombie", 1); // Silvercoat Lion goes to graveyard so a Zombie tokes is created
|
assertPermanentCount(playerA, "Zombie Token", 1); // Silvercoat Lion goes to graveyard so a Zombie tokes is created
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ public class ZoneChangeReplacementTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertGraveyardCount(playerA, "Progenitus", 0);
|
assertGraveyardCount(playerA, "Progenitus", 0);
|
||||||
assertGraveyardCount(playerA, 2); // Diabolic Edict + Bridge from Below
|
assertGraveyardCount(playerA, 2); // Diabolic Edict + Bridge from Below
|
||||||
assertPermanentCount(playerA, "Zombie", 0); // Progenitus never touches graveyard - so no Zombie tokes is created
|
assertPermanentCount(playerA, "Zombie Token", 0); // Progenitus never touches graveyard - so no Zombie tokes is created
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ public class HardenedScaleTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Wastes", 4);
|
addCard(Zone.BATTLEFIELD, playerA, "Wastes", 4);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, mMimic);
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, mMimic);
|
||||||
setChoice(playerA, "Construct");
|
setChoice(playerA, "Construct Token");
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, hWalker);
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, hWalker);
|
||||||
setChoice(playerA, "X=1");
|
setChoice(playerA, "X=1");
|
||||||
|
|
|
@ -29,7 +29,7 @@ public class ArrestTest extends CardTestPlayerBase {
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Arrest", 1);
|
assertPermanentCount(playerA, "Arrest", 1);
|
||||||
assertPermanentCount(playerB, "Saproling", 0); // can't use ability so no Saproling
|
assertPermanentCount(playerB, "Saproling Token", 0); // can't use ability so no Saproling
|
||||||
|
|
||||||
assertLife(playerA, 20); // can't attack so no damage to player
|
assertLife(playerA, 20); // can't attack so no damage to player
|
||||||
assertLife(playerB, 20);
|
assertLife(playerB, 20);
|
||||||
|
|
|
@ -46,7 +46,7 @@ public class RollDiceTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, goblins, 1);
|
assertPermanentCount(playerA, goblins, 1);
|
||||||
assertPermanentCount(playerA, "Goblin", goblinCount);
|
assertPermanentCount(playerA, "Goblin Token", goblinCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -91,7 +91,7 @@ public class RollDiceTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
|
|
||||||
assertPermanentCount(playerA, goblins, 1);
|
assertPermanentCount(playerA, goblins, 1);
|
||||||
assertPermanentCount(playerA, guide, 1);
|
assertPermanentCount(playerA, guide, 1);
|
||||||
assertPermanentCount(playerA, "Goblin", 2);
|
assertPermanentCount(playerA, "Goblin Token", 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -113,7 +113,7 @@ public class RollDiceTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
|
|
||||||
assertPermanentCount(playerA, goblins, 1);
|
assertPermanentCount(playerA, goblins, 1);
|
||||||
assertPermanentCount(playerA, guide, 2);
|
assertPermanentCount(playerA, guide, 2);
|
||||||
assertPermanentCount(playerA, "Goblin", 2);
|
assertPermanentCount(playerA, "Goblin Token", 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void runKrarksOtherThumbTest(int choice, int thumbCount, int goblinCount, int... rolls) {
|
private void runKrarksOtherThumbTest(int choice, int thumbCount, int goblinCount, int... rolls) {
|
||||||
|
@ -141,7 +141,7 @@ public class RollDiceTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
assertPermanentCount(playerA, goblins, 1);
|
assertPermanentCount(playerA, goblins, 1);
|
||||||
assertPermanentCount(playerA, gallery, 1);
|
assertPermanentCount(playerA, gallery, 1);
|
||||||
assertPermanentCount(playerA, thumb, thumbCount);
|
assertPermanentCount(playerA, thumb, thumbCount);
|
||||||
assertPermanentCount(playerA, "Goblin", goblinCount);
|
assertPermanentCount(playerA, "Goblin Token", goblinCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected = AssertionError.class)
|
@Test(expected = AssertionError.class)
|
||||||
|
@ -198,7 +198,7 @@ public class RollDiceTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, goblins, 1);
|
assertPermanentCount(playerA, goblins, 1);
|
||||||
assertPermanentCount(playerA, "Goblin", goblinCount);
|
assertPermanentCount(playerA, "Goblin Token", goblinCount);
|
||||||
assertAbility(playerA, farideh, FlyingAbility.getInstance(), true);
|
assertAbility(playerA, farideh, FlyingAbility.getInstance(), true);
|
||||||
assertHandCount(playerA, handCount);
|
assertHandCount(playerA, handCount);
|
||||||
}
|
}
|
||||||
|
@ -232,7 +232,7 @@ public class RollDiceTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
execute();
|
execute();
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Eldrazi", 2);
|
assertPermanentCount(playerA, "Eldrazi Token", 2);
|
||||||
assertTappedCount("Mountain", true, 1); // cost for second planar die
|
assertTappedCount("Mountain", true, 1); // cost for second planar die
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -259,7 +259,7 @@ public class RollDiceTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
execute();
|
execute();
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Eldrazi", 1);
|
assertPermanentCount(playerA, "Eldrazi Token", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -289,7 +289,7 @@ public class RollDiceTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
execute();
|
execute();
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Eldrazi", 1);
|
assertPermanentCount(playerA, "Eldrazi Token", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -323,7 +323,7 @@ public class RollDiceTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
execute();
|
execute();
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Eldrazi", 0);
|
assertPermanentCount(playerA, "Eldrazi Token", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -342,7 +342,7 @@ public class RollDiceTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
setDieRollResult(playerA, 6); // additional roll - will be selected
|
setDieRollResult(playerA, 6); // additional roll - will be selected
|
||||||
setDieRollResult(playerA, 5); // additional roll
|
setDieRollResult(playerA, 5); // additional roll
|
||||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
checkPermanentCount("after", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Goblin", 6);
|
checkPermanentCount("after", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Goblin Token", 6);
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
|
@ -366,11 +366,11 @@ public class RollDiceTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{2}{B/R}{B/R}, {T}");
|
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{2}{B/R}{B/R}, {T}");
|
||||||
setDieRollResult(playerA, 3);
|
setDieRollResult(playerA, 3);
|
||||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
checkPermanentCount("after prepare", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Brainiac", 3);
|
checkPermanentCount("after prepare", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Brainiac Token", 3);
|
||||||
|
|
||||||
// prepare idea effect
|
// prepare idea effect
|
||||||
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Tap three Brainiac");
|
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Tap three Brainiac");
|
||||||
setChoice(playerA, "Brainiac", 3);
|
setChoice(playerA, "Brainiac Token", 3);
|
||||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
|
|
||||||
// roll and trigger idea replace event
|
// roll and trigger idea replace event
|
||||||
|
@ -378,7 +378,7 @@ public class RollDiceTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
setDieRollResult(playerA, 3); // normal roll
|
setDieRollResult(playerA, 3); // normal roll
|
||||||
setDieRollResult(playerA, 6); // additional roll - will be sums
|
setDieRollResult(playerA, 6); // additional roll - will be sums
|
||||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
checkPermanentCount("after", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Goblin", 3 + 6);
|
checkPermanentCount("after", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Goblin Token", 3 + 6);
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
|
@ -401,7 +401,7 @@ public class RollDiceTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
setDieRollResult(playerA, 6); // additional roll
|
setDieRollResult(playerA, 6); // additional roll
|
||||||
setChoice(playerA, "6"); // keep 6 as roll result
|
setChoice(playerA, "6"); // keep 6 as roll result
|
||||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
checkPermanentCount("after", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Goblin", 6);
|
checkPermanentCount("after", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Goblin Token", 6);
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
|
@ -427,7 +427,7 @@ public class RollDiceTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
execute();
|
execute();
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Eldrazi", 1);
|
assertPermanentCount(playerA, "Eldrazi Token", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -450,7 +450,7 @@ public class RollDiceTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
execute();
|
execute();
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Eldrazi", 1);
|
assertPermanentCount(playerA, "Eldrazi Token", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -471,11 +471,11 @@ public class RollDiceTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{2}{B/R}{B/R}, {T}");
|
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{2}{B/R}{B/R}, {T}");
|
||||||
setDieRollResult(playerA, 3);
|
setDieRollResult(playerA, 3);
|
||||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
checkPermanentCount("after prepare", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Brainiac", 3);
|
checkPermanentCount("after prepare", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Brainiac Token", 3);
|
||||||
|
|
||||||
// prepare idea effect
|
// prepare idea effect
|
||||||
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Tap three Brainiac");
|
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Tap three Brainiac");
|
||||||
setChoice(playerA, "Brainiac", 3);
|
setChoice(playerA, "Brainiac Token", 3);
|
||||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
|
|
||||||
// roll planar die, but no triggers with second roll - cause it works with numerical results (sum)
|
// roll planar die, but no triggers with second roll - cause it works with numerical results (sum)
|
||||||
|
@ -489,7 +489,7 @@ public class RollDiceTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
execute();
|
execute();
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Eldrazi", 1);
|
assertPermanentCount(playerA, "Eldrazi Token", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -509,7 +509,7 @@ public class RollDiceTest extends CardTestPlayerBaseWithAIHelps {
|
||||||
aiPlayPriority(1, PhaseStep.PRECOMBAT_MAIN, playerA);
|
aiPlayPriority(1, PhaseStep.PRECOMBAT_MAIN, playerA);
|
||||||
|
|
||||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
checkPermanentCount("after", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Goblin", 6);
|
checkPermanentCount("after", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Goblin Token", 6);
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
|
|
|
@ -12,7 +12,7 @@ import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||||
public class TokenLimitTest extends CardTestPlayerBase {
|
public class TokenLimitTest extends CardTestPlayerBase {
|
||||||
private static final String secure = "Secure the Wastes";
|
private static final String secure = "Secure the Wastes";
|
||||||
private static final String procession = "Anointed Procession";
|
private static final String procession = "Anointed Procession";
|
||||||
private static final String warrior = "Warrior";
|
private static final String warrior = "Warrior Token";
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testOnePlayerHitsLimit() {
|
public void testOnePlayerHitsLimit() {
|
||||||
|
|
|
@ -20,7 +20,7 @@ public class DeathTyrantTest extends CardTestPlayerBase {
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertGraveyardCount(playerA, "Grizzly Bears", 1);
|
assertGraveyardCount(playerA, "Grizzly Bears", 1);
|
||||||
assertPermanentCount(playerA, "Zombie", 1);
|
assertPermanentCount(playerA, "Zombie Token", 1);
|
||||||
assertPermanentCount(playerA, "Death Tyrant", 1);
|
assertPermanentCount(playerA, "Death Tyrant", 1);
|
||||||
assertPermanentCount(playerB, "Hill Giant", 1);
|
assertPermanentCount(playerB, "Hill Giant", 1);
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ public class DeathTyrantTest extends CardTestPlayerBase {
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertGraveyardCount(playerB, "Grizzly Bears", 1);
|
assertGraveyardCount(playerB, "Grizzly Bears", 1);
|
||||||
assertPermanentCount(playerA, "Zombie", 1);
|
assertPermanentCount(playerA, "Zombie Token", 1);
|
||||||
assertPermanentCount(playerA, "Death Tyrant", 1);
|
assertPermanentCount(playerA, "Death Tyrant", 1);
|
||||||
assertPermanentCount(playerA, "Hill Giant", 1);
|
assertPermanentCount(playerA, "Hill Giant", 1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@ public class ProsperousInnkeeperTest extends CardTestPlayerBase {
|
||||||
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||||
execute();
|
execute();
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
assertPermanentCount(playerA, "Treasure", 1);
|
assertPermanentCount(playerA, "Treasure Token", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -22,7 +22,7 @@ public class AnnointedProcessionTest extends CardTestPlayerBase {
|
||||||
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Zombie", 4);
|
assertPermanentCount(playerA, "Zombie Token", 4);
|
||||||
assertLife(playerA, 24);
|
assertLife(playerA, 24);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ public class AnnointedProcessionTest extends CardTestPlayerBase {
|
||||||
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Zombie", 8);
|
assertPermanentCount(playerA, "Zombie Token", 8);
|
||||||
assertLife(playerA, 28);
|
assertLife(playerA, 28);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ public class AnnointedProcessionTest extends CardTestPlayerBase {
|
||||||
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Zombie", 2);
|
assertPermanentCount(playerA, "Zombie Token", 2);
|
||||||
assertLife(playerA, 20);
|
assertLife(playerA, 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,6 +82,6 @@ public class AnnointedProcessionTest extends CardTestPlayerBase {
|
||||||
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Zombie", 6);
|
assertPermanentCount(playerA, "Zombie Token", 6);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,8 +38,8 @@ public class HapatraVizierOfPoisonsTest extends CardTestPlayerBase {
|
||||||
assertLife(playerB, 18);
|
assertLife(playerB, 18);
|
||||||
assertCounterCount(playerB, gBears, CounterType.M1M1, 1);
|
assertCounterCount(playerB, gBears, CounterType.M1M1, 1);
|
||||||
assertPowerToughness(playerB, gBears, 1, 1); // 2/2 with -1/1 counter
|
assertPowerToughness(playerB, gBears, 1, 1); // 2/2 with -1/1 counter
|
||||||
assertPermanentCount(playerA, "Snake", 1);
|
assertPermanentCount(playerA, "Snake Token", 1);
|
||||||
assertAbility(playerA, "Snake", DeathtouchAbility.getInstance(), true);
|
assertAbility(playerA, "Snake Token", DeathtouchAbility.getInstance(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -66,8 +66,8 @@ public class HapatraVizierOfPoisonsTest extends CardTestPlayerBase {
|
||||||
assertCounterCount(playerB, CounterType.POISON, 0);
|
assertCounterCount(playerB, CounterType.POISON, 0);
|
||||||
assertPowerToughness(playerB, wOmens, -1, 3); // 0/4 with -1/-1 counter
|
assertPowerToughness(playerB, wOmens, -1, 3); // 0/4 with -1/-1 counter
|
||||||
assertCounterCount(playerB, wOmens, CounterType.M1M1, 1);
|
assertCounterCount(playerB, wOmens, CounterType.M1M1, 1);
|
||||||
assertPermanentCount(playerA, "Snake", 1);
|
assertPermanentCount(playerA, "Snake Token", 1);
|
||||||
assertAbility(playerA, "Snake", DeathtouchAbility.getInstance(), true);
|
assertAbility(playerA, "Snake Token", DeathtouchAbility.getInstance(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -95,8 +95,8 @@ public class HapatraVizierOfPoisonsTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertCounterCount(playerA, dDruid, CounterType.M1M1, 1);
|
assertCounterCount(playerA, dDruid, CounterType.M1M1, 1);
|
||||||
assertPowerToughness(playerA, dDruid, -1, 1); // 0/2 with -1/-1
|
assertPowerToughness(playerA, dDruid, -1, 1); // 0/2 with -1/-1
|
||||||
assertPermanentCount(playerA, "Snake", 1);
|
assertPermanentCount(playerA, "Snake Token", 1);
|
||||||
assertAbility(playerA, "Snake", DeathtouchAbility.getInstance(), true);
|
assertAbility(playerA, "Snake Token", DeathtouchAbility.getInstance(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -122,15 +122,15 @@ public class HapatraVizierOfPoisonsTest extends CardTestPlayerBase {
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, sprout);
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, sprout);
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, triumphOfTheHordes);
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, triumphOfTheHordes);
|
||||||
|
|
||||||
attack(1, playerA, "Saproling");
|
attack(1, playerA, "Saproling Token");
|
||||||
block(1, playerB, krakenHatchling, "Saproling");
|
block(1, playerB, krakenHatchling, "Saproling Token");
|
||||||
setStopAt(1, PhaseStep.END_COMBAT);
|
setStopAt(1, PhaseStep.END_COMBAT);
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
assertPowerToughness(playerB, krakenHatchling, -2, 2);
|
assertPowerToughness(playerB, krakenHatchling, -2, 2);
|
||||||
assertCounterCount(playerB, krakenHatchling, CounterType.M1M1, 2);
|
assertCounterCount(playerB, krakenHatchling, CounterType.M1M1, 2);
|
||||||
assertPermanentCount(playerA, "Snake", 1); //Should have triggered when Saproling added -1/-1 counter
|
assertPermanentCount(playerA, "Snake Token", 1); //Should have triggered when Saproling added -1/-1 counter
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,7 +51,7 @@ public class KessDissidentMageTest extends CardTestPlayerBase {
|
||||||
execute();
|
execute();
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Centaur", 1);
|
assertPermanentCount(playerA, "Centaur Token", 1);
|
||||||
assertLife(playerA, 20);
|
assertLife(playerA, 20);
|
||||||
assertExileCount(playerA, "Alive // Well", 1);
|
assertExileCount(playerA, "Alive // Well", 1);
|
||||||
}
|
}
|
||||||
|
@ -76,7 +76,7 @@ public class KessDissidentMageTest extends CardTestPlayerBase {
|
||||||
execute();
|
execute();
|
||||||
assertAllCommandsUsed();
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Centaur", 1);
|
assertPermanentCount(playerA, "Centaur Token", 1);
|
||||||
assertLife(playerA, 20 + 2);
|
assertLife(playerA, 20 + 2);
|
||||||
assertGraveyardCount(playerA, "Alive // Well", 1);
|
assertGraveyardCount(playerA, "Alive // Well", 1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ public class VarchildBetrayerOfKjeldorTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Varchild, Betrayer of Kjeldor", 1);
|
assertPermanentCount(playerA, "Varchild, Betrayer of Kjeldor", 1);
|
||||||
|
|
||||||
assertPermanentCount(playerB, "Survivor", 3);
|
assertPermanentCount(playerB, "Survivor Token", 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -62,10 +62,10 @@ public class VarchildBetrayerOfKjeldorTest extends CardTestPlayerBase {
|
||||||
assertExileCount(playerA, "Varchild, Betrayer of Kjeldor", 1);
|
assertExileCount(playerA, "Varchild, Betrayer of Kjeldor", 1);
|
||||||
assertLife(playerA, 23);
|
assertLife(playerA, 23);
|
||||||
|
|
||||||
assertPermanentCount(playerA, "Survivor", 3);
|
assertPermanentCount(playerA, "Survivor Token", 3);
|
||||||
|
|
||||||
assertPermanentCount(playerB, "Irregular Cohort", 1);
|
assertPermanentCount(playerB, "Irregular Cohort", 1);
|
||||||
assertPermanentCount(playerB, "Shapeshifter", 1);
|
assertPermanentCount(playerB, "Shapeshifter Token", 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ public class TatsumasaTheDragonsFangTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{6}");
|
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{6}");
|
||||||
|
|
||||||
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, murder, "Dragon Spirit");
|
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, murder, "Dragon Spirit Token");
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
|
|
|
@ -36,7 +36,7 @@ public class AcornCatapultTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertGraveyardCount(playerB, "Acolyte of Xathrid", 1);
|
assertGraveyardCount(playerB, "Acolyte of Xathrid", 1);
|
||||||
|
|
||||||
assertPermanentCount(playerB, "Squirrel", 1);
|
assertPermanentCount(playerB, "Squirrel Token", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -61,7 +61,7 @@ public class AcornCatapultTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertLife(playerB, 19);
|
assertLife(playerB, 19);
|
||||||
|
|
||||||
assertPermanentCount(playerB, "Squirrel", 1);
|
assertPermanentCount(playerB, "Squirrel Token", 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,8 +34,8 @@ public class ProfaneTransfusionTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertLife(playerA, 16);
|
assertLife(playerA, 16);
|
||||||
assertLife(playerB, 24);
|
assertLife(playerB, 24);
|
||||||
assertPermanentCount(playerA, "Phyrexian Horror", 1);
|
assertPermanentCount(playerA, "Phyrexian Horror Token", 1);
|
||||||
assertPowerToughness(playerA, "Phyrexian Horror", 24 - 16, 24 - 16);
|
assertPowerToughness(playerA, "Phyrexian Horror Token", 24 - 16, 24 - 16);
|
||||||
assertGraveyardCount(playerA, transfusion, 1);
|
assertGraveyardCount(playerA, transfusion, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,8 +60,8 @@ public class ProfaneTransfusionTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertLife(playerA, 24);
|
assertLife(playerA, 24);
|
||||||
assertLife(playerB, 16);
|
assertLife(playerB, 16);
|
||||||
assertPermanentCount(playerA, "Phyrexian Horror", 1);
|
assertPermanentCount(playerA, "Phyrexian Horror Token", 1);
|
||||||
assertPowerToughness(playerA, "Phyrexian Horror", 24 - 16, 24 - 16);
|
assertPowerToughness(playerA, "Phyrexian Horror Token", 24 - 16, 24 - 16);
|
||||||
assertGraveyardCount(playerA, transfusion, 1);
|
assertGraveyardCount(playerA, transfusion, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -86,8 +86,8 @@ public class ProfaneTransfusionTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertLife(playerA, 16);
|
assertLife(playerA, 16);
|
||||||
assertLife(playerB, 32);
|
assertLife(playerB, 32);
|
||||||
assertPermanentCount(playerA, "Phyrexian Horror", 1);
|
assertPermanentCount(playerA, "Phyrexian Horror Token", 1);
|
||||||
assertPowerToughness(playerA, "Phyrexian Horror", 32 - 16, 32 - 16);
|
assertPowerToughness(playerA, "Phyrexian Horror Token", 32 - 16, 32 - 16);
|
||||||
assertGraveyardCount(playerA, transfusion, 1);
|
assertGraveyardCount(playerA, transfusion, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,8 +110,8 @@ public class ProfaneTransfusionTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertLife(playerA, 20);
|
assertLife(playerA, 20);
|
||||||
assertLife(playerB, 17);
|
assertLife(playerB, 17);
|
||||||
assertPermanentCount(playerA, "Phyrexian Horror", 1);
|
assertPermanentCount(playerA, "Phyrexian Horror Token", 1);
|
||||||
assertPowerToughness(playerA, "Phyrexian Horror", 20 - 17, 20 - 17);
|
assertPowerToughness(playerA, "Phyrexian Horror Token", 20 - 17, 20 - 17);
|
||||||
assertGraveyardCount(playerA, transfusion, 1);
|
assertGraveyardCount(playerA, transfusion, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ public class AltarOfTheLostTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertLife(playerA, 20);
|
assertLife(playerA, 20);
|
||||||
assertLife(playerB, 20);
|
assertLife(playerB, 20);
|
||||||
assertPermanentCount(playerA, "Spirit", 2);
|
assertPermanentCount(playerA, "Spirit Token", 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -53,7 +53,7 @@ public class AltarOfTheLostTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertLife(playerA, 20);
|
assertLife(playerA, 20);
|
||||||
assertLife(playerB, 20);
|
assertLife(playerB, 20);
|
||||||
assertPermanentCount(playerA, "Spirit", 0);
|
assertPermanentCount(playerA, "Spirit Token", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ public class FeedThePackTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
assertLife(playerA, 20);
|
assertLife(playerA, 20);
|
||||||
assertLife(playerB, 20);
|
assertLife(playerB, 20);
|
||||||
assertPermanentCount(playerA, "Wolf", 4);
|
assertPermanentCount(playerA, "Wolf Token", 4);
|
||||||
assertPermanentCount(playerB, "Craw Wurm", 0);
|
assertPermanentCount(playerB, "Craw Wurm", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue