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:
Evan Kranzler 2022-03-14 22:37:21 -04:00 committed by GitHub
parent 83c94322c6
commit 9e0ea945ca
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
637 changed files with 950 additions and 1034 deletions

View file

@ -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()

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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());
} }
} }

View file

@ -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());
} }
} }

View file

@ -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);
} }

View file

@ -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);
} }

View file

@ -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));
} }

View file

@ -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();

View file

@ -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);
} }
} }

View file

@ -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);
} }

View file

@ -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);
} }
} }

View file

@ -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());
} }

View file

@ -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);
} }

View file

@ -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() {

View file

@ -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

View file

@ -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);
} }
} }

View file

@ -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

View file

@ -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);
} }

View file

@ -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
} }

View file

@ -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);
} }
} }

View file

@ -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
} }
/* /*

View file

@ -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);
} }
} }

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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);
} }
} }

View file

@ -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);
} }

View file

@ -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);
} }

View file

@ -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);
} }
} }

View file

@ -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);

View file

@ -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);
} }
} }

View file

@ -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
} }

View file

@ -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);
} }
} }

View file

@ -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

View file

@ -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);
} }
} }

View file

@ -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);
} }
} }

View file

@ -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);

View file

@ -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);
} }

View file

@ -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);
} }

View file

@ -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);

View file

@ -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);

View file

@ -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));

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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");

View file

@ -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
} }
*/ */

View file

@ -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<>();

View file

@ -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);

View file

@ -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);
} }

View file

@ -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);

View file

@ -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);
} }

View file

@ -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);
} }

View file

@ -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);
} }

View file

@ -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);
} }
} }

View file

@ -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);

View file

@ -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

View file

@ -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

View file

@ -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);

View file

@ -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);
} }
} }

View file

@ -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
} }
} }

View file

@ -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

View file

@ -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);
} }

View file

@ -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);
} }

View file

@ -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);

View file

@ -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);
} }

View file

@ -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

View file

@ -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);

View file

@ -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);
} }
} }

View file

@ -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
} }

View file

@ -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);
} }
} }

View file

@ -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);
} }
} }

View file

@ -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

View file

@ -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);
} }
} }

View file

@ -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);
} }
} }

View file

@ -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);

View file

@ -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);
} }

View file

@ -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
} }
/* /*

View file

@ -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
} }

View file

@ -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");

View file

@ -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);

View file

@ -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);

View file

@ -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() {

View file

@ -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);
} }

View file

@ -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

View file

@ -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);
} }
} }

View file

@ -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();
} }
} }

View file

@ -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);
} }

View file

@ -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);
} }
} }

View file

@ -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);

View file

@ -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);
} }
} }

View file

@ -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);
} }
} }

View file

@ -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);
} }
} }

View file

@ -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