Require spell casting to have the exact name

This commit is contained in:
Steven Knipe 2023-09-18 05:52:14 -07:00
parent de8c7ea235
commit 485bd53ea8
7 changed files with 11 additions and 11 deletions

View file

@ -163,7 +163,7 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerB, "Clever Impersonator", 1);
addCard(Zone.BATTLEFIELD, playerB, "Island", 4);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker using Morph");
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Clever Impersonator");

View file

@ -30,7 +30,7 @@ public class RetraceTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerB, "Silvercoat Lion", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Raven's Crime", playerB);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Raven's Crime with retrace", playerB);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -82,7 +82,7 @@ public class RetraceTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Thalia, Guardian of Thraben", 1);
addCard(Zone.HAND, playerB, "Silvercoat Lion", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Raven's Crime", playerB);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Raven's Crime with retrace", playerB);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -110,7 +110,7 @@ public class RetraceTest extends CardTestPlayerBase {
// Create a 1/1 black and green Worm creature token for each land card in your graveyard.
// Retrace (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.)
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Worm Harvest");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Worm Harvest with retrace");
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();

View file

@ -83,7 +83,7 @@ public class SurgeTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Lightning Bolt", playerB);
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Tyrant of Valakut");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Tyrant of Valakut with surge");
addTarget(playerA, playerB);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -109,7 +109,7 @@ public class SurgeTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Lightning Bolt", playerB);
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Containment Membrane", "Silvercoat Lion");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Containment Membrane with surge", "Silvercoat Lion");
setStopAt(2, PhaseStep.PRECOMBAT_MAIN);
execute();

View file

@ -533,7 +533,7 @@ public class AdventureCardsTest extends CardTestPlayerBase {
// showAvailableAbilities("abils", 1, PhaseStep.PRECOMBAT_MAIN, playerA);
// retrace - You may cast this card from your graveyard by discarding a land card as an additional cost to cast it
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Treats to Share");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Treats to Share with retrace");
setChoice(playerA, "Forest");
setStrictChooseMode(true);

View file

@ -400,7 +400,7 @@ public class EntersTheBattlefieldTriggerTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Island", 2);
addCard(Zone.GRAVEYARD, playerA, "Balduvian Bears", 5);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Uro, Titan of Nature's Wrath");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Uro, Titan of Nature's Wrath with Escape");
setChoice(playerA, "Balduvian Bears^Balduvian Bears^Balduvian Bears^Balduvian Bears^Balduvian Bears");
setChoice(playerA, "When {this} enters the battlefield, sacrifice it"); // sacrifice trigger must go first
setChoice(playerA, false); // do not put land to battlefield

View file

@ -142,7 +142,7 @@ public class SpellCastTriggerTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Lightning Bolt", playerB);
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Glimpse of Freedom");
castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Glimpse of Freedom");
castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Glimpse of Freedom with Escape");
setChoice(playerA,"Mountain");
setChoice(playerA,"Mountain");
setChoice(playerA,"Mountain");

View file

@ -391,10 +391,10 @@ public class TestPlayer implements Player {
|| searchObject.contains("fused ")) {
Assert.assertFalse("alternative spell don't support alias", searchObject.startsWith(ALIAS_PREFIX));
foundObject = true;
foundAbility = ability.toString().startsWith(nameOrAlias);
foundAbility = ability.toString().equals(nameOrAlias);
} else {
foundObject = hasObjectTargetNameOrAlias(game.getObject(ability.getSourceId()), searchObject);
foundAbility = searchObject.startsWith(ALIAS_PREFIX) || ability.toString().startsWith(nameOrAlias);
foundAbility = searchObject.startsWith(ALIAS_PREFIX) || ability.toString().equals(nameOrAlias);
}
} else if (nameOrAlias.startsWith(ALIAS_PREFIX)) {
// object alias with ability text: