[MKM] Implement Tenth District Hero

This commit is contained in:
theelk801 2024-01-30 11:24:06 -05:00
parent f2694eaa56
commit 3d94ce84d4
3 changed files with 252 additions and 0 deletions

View file

@ -0,0 +1,112 @@
package org.mage.test.cards.single.mkm;
import mage.abilities.keyword.VigilanceAbility;
import mage.constants.PhaseStep;
import mage.constants.SubType;
import mage.constants.Zone;
import org.junit.Test;
import org.mage.test.serverside.base.CardTestPlayerBase;
/**
* @author TheElk801
*/
public class TenthDistrictHeroTest extends CardTestPlayerBase {
private static final String hero = "Tenth District Hero";
private static final String giant = "Hill Giant";
private static final String mileva = "Mileva, the Stalwart";
@Test
public void testFirstAblityOnly() {
addCard(Zone.BATTLEFIELD, playerA, "Plains", 2);
addCard(Zone.BATTLEFIELD, playerA, hero);
addCard(Zone.GRAVEYARD, playerA, giant);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{1}");
setChoice(playerA, giant);
setStrictChooseMode(true);
setStopAt(1, PhaseStep.END_TURN);
execute();
assertPowerToughness(playerA, hero, 4, 4);
assertSubtype(hero, SubType.HUMAN);
assertSubtype(hero, SubType.DETECTIVE);
assertAbility(playerA, hero, VigilanceAbility.getInstance(), true);
assertPermanentCount(playerA, mileva, 0);
}
@Test
public void testSecondAblityOnly() {
addCard(Zone.BATTLEFIELD, playerA, "Plains", 3);
addCard(Zone.BATTLEFIELD, playerA, hero);
addCard(Zone.GRAVEYARD, playerA, giant);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{2}");
setChoice(playerA, giant);
setStrictChooseMode(true);
setStopAt(1, PhaseStep.END_TURN);
execute();
assertPowerToughness(playerA, hero, 2, 3);
assertSubtype(hero, SubType.HUMAN);
assertNotSubtype(hero, SubType.DETECTIVE);
assertAbility(playerA, hero, VigilanceAbility.getInstance(), false);
assertPermanentCount(playerA, hero, 1);
assertPermanentCount(playerA, mileva, 0);
}
@Test
public void testBothAbilities() {
addCard(Zone.BATTLEFIELD, playerA, "Plains", 2 + 3);
addCard(Zone.BATTLEFIELD, playerA, hero);
addCard(Zone.GRAVEYARD, playerA, giant, 1 + 1);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{1}");
setChoice(playerA, giant);
setStrictChooseMode(true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{2}");
setChoice(playerA, giant);
setStopAt(1, PhaseStep.END_TURN);
execute();
assertPowerToughness(playerA, mileva, 5, 5);
assertSubtype(mileva, SubType.HUMAN);
assertSubtype(mileva, SubType.DETECTIVE);
assertAbility(playerA, mileva, VigilanceAbility.getInstance(), true);
assertPermanentCount(playerA, mileva, 1);
assertPermanentCount(playerA, hero, 0);
}
@Test
public void testBothAbilitiesReversed() {
addCard(Zone.BATTLEFIELD, playerA, "Plains", 2 + 3);
addCard(Zone.BATTLEFIELD, playerA, hero);
addCard(Zone.GRAVEYARD, playerA, giant, 1 + 1);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{2}");
setChoice(playerA, giant);
setStrictChooseMode(true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{1}");
setChoice(playerA, giant);
setStopAt(1, PhaseStep.END_TURN);
execute();
assertPowerToughness(playerA, hero, 4, 4);
assertSubtype(hero, SubType.HUMAN);
assertSubtype(hero, SubType.DETECTIVE);
assertAbility(playerA, hero, VigilanceAbility.getInstance(), true);
assertPermanentCount(playerA, mileva, 0);
}
}