mirror of
https://github.com/correl/mage.git
synced 2024-11-15 11:09:30 +00:00
commit
939bdc292c
5 changed files with 217 additions and 0 deletions
|
@ -0,0 +1,47 @@
|
||||||
|
package org.mage.test.cards.single.m21;
|
||||||
|
|
||||||
|
import mage.constants.PhaseStep;
|
||||||
|
import mage.constants.Zone;
|
||||||
|
import mage.counters.CounterType;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||||
|
|
||||||
|
public class AdherentOfHopeTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
|
// At the beginning of combat on your turn, if you control a Basri planeswalker, put a +1/+1 counter on Adherent of Hope.
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_basri_in_play_controllerturn(){
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Adherent of Hope", 1);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Basri Ket", 1);
|
||||||
|
|
||||||
|
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||||
|
execute();
|
||||||
|
assertCounterCount(playerA, "Adherent of Hope", CounterType.P1P1, 1);
|
||||||
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_basri_in_play_opponentturn(){
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Adherent of Hope", 1);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Basri Ket", 1);
|
||||||
|
|
||||||
|
setStopAt(2, PhaseStep.POSTCOMBAT_MAIN);
|
||||||
|
execute();
|
||||||
|
assertCounterCount(playerA, "Adherent of Hope", CounterType.P1P1, 1);
|
||||||
|
assertAllCommandsUsed();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_no_basri_in_play_controllerturn(){
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Adherent of Hope", 1);
|
||||||
|
|
||||||
|
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||||
|
execute();
|
||||||
|
assertCounterCount(playerA, "Adherent of Hope", CounterType.P1P1, 0);
|
||||||
|
assertAllCommandsUsed();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,51 @@
|
||||||
|
package org.mage.test.cards.single.m21;
|
||||||
|
|
||||||
|
import mage.abilities.keyword.DeathtouchAbility;
|
||||||
|
import mage.abilities.keyword.LifelinkAbility;
|
||||||
|
import mage.constants.PhaseStep;
|
||||||
|
import mage.constants.Zone;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||||
|
|
||||||
|
public class AlchemistsGiftTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
|
private final String deathtouch = "Yes";
|
||||||
|
private final String lifelink = "No";
|
||||||
|
|
||||||
|
// Target creature gets +1/+1 and gains your choice of deathtouch or lifelink until end of turn.
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void giveDeathTouch(){
|
||||||
|
setStrictChooseMode(true);
|
||||||
|
addCard(Zone.BATTLEFIELD,playerA, "Adherent of Hope", 1);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Swamp");
|
||||||
|
addCard(Zone.HAND, playerA, "Alchemist's Gift");
|
||||||
|
|
||||||
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Alchemist's Gift", "Adherent of Hope");
|
||||||
|
setChoice(playerA, deathtouch);
|
||||||
|
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||||
|
execute();
|
||||||
|
assertAllCommandsUsed();
|
||||||
|
assertAbility(playerA, "Adherent of Hope", DeathtouchAbility.getInstance(), true);
|
||||||
|
assertAbility(playerA, "Adherent of Hope", LifelinkAbility.getInstance(), false);
|
||||||
|
assertPowerToughness(playerA, "Adherent of Hope", 3, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void giveLifelink(){
|
||||||
|
setStrictChooseMode(true);
|
||||||
|
addCard(Zone.BATTLEFIELD,playerA, "Adherent of Hope", 1);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Swamp");
|
||||||
|
addCard(Zone.HAND, playerA, "Alchemist's Gift");
|
||||||
|
|
||||||
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Alchemist's Gift", "Adherent of Hope");
|
||||||
|
setChoice(playerA, lifelink);
|
||||||
|
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||||
|
execute();
|
||||||
|
assertAllCommandsUsed();
|
||||||
|
assertAbility(playerA, "Adherent of Hope", LifelinkAbility.getInstance(), true);
|
||||||
|
assertAbility(playerA, "Adherent of Hope", DeathtouchAbility.getInstance(), false);
|
||||||
|
assertPowerToughness(playerA, "Adherent of Hope", 3, 2);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
package org.mage.test.cards.single.m21;
|
||||||
|
|
||||||
|
import mage.constants.PhaseStep;
|
||||||
|
import mage.constants.Zone;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||||
|
|
||||||
|
public class AlpineHoundmasterTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
|
// When Alpine Houndmaster enters the battlefield, you may search your library for a card named Alpine Watchdog and/or a card named Igneous Cur, reveal them, put them into your hand, then shuffle your library.
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void searchDog() {
|
||||||
|
addCard(Zone.HAND, playerA, "Alpine Houndmaster", 1);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Mountain");
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Plains");
|
||||||
|
addCard(Zone.LIBRARY, playerA, "Alpine Watchdog");
|
||||||
|
addCard(Zone.LIBRARY, playerA, "Igneous Cur");
|
||||||
|
|
||||||
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Alpine Houndmaster");
|
||||||
|
setChoice(playerA, "Yes");
|
||||||
|
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||||
|
execute();
|
||||||
|
assertAllCommandsUsed();
|
||||||
|
assertHandCount(playerA, 2);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Whenever Alpine Houndmaster attacks, it gets +X/+0 until end of turn, where X is the number of other attacking creatures.
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void attack() {
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Alpine Houndmaster", 1);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Alpine Watchdog");
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Igneous Cur");
|
||||||
|
|
||||||
|
attack(3, playerA, "Alpine Houndmaster");
|
||||||
|
attack(3, playerA, "Alpine Watchdog");
|
||||||
|
setStopAt(3, PhaseStep.POSTCOMBAT_MAIN);
|
||||||
|
execute();
|
||||||
|
assertAllCommandsUsed();
|
||||||
|
assertPowerToughness(playerA, "Alpine Houndmaster", 3, 2);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,43 @@
|
||||||
|
package org.mage.test.cards.single.m21;
|
||||||
|
|
||||||
|
import mage.constants.PhaseStep;
|
||||||
|
import mage.constants.Zone;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||||
|
|
||||||
|
public class AngelicAscensionTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
|
|
||||||
|
// Exile target creature or planeswalker. Its controller creates a 4/4 white Angel creature token with flying.
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void exileCreatureOpponent(){
|
||||||
|
addCard(Zone.HAND, playerA, "Angelic Ascension");
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Plains", 2);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerB, "Grizzly Bears");
|
||||||
|
|
||||||
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Angelic Ascension", "Grizzly Bears");
|
||||||
|
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||||
|
execute();
|
||||||
|
setStrictChooseMode(true);
|
||||||
|
assertAllCommandsUsed();
|
||||||
|
assertExileCount(playerB, 1);
|
||||||
|
assertPermanentCount(playerB, "Angel", 1);
|
||||||
|
assertPowerToughness(playerB, "Angel", 4, 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void exileOwnCreature(){
|
||||||
|
addCard(Zone.HAND, playerA, "Angelic Ascension");
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Plains", 2);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Grizzly Bears");
|
||||||
|
|
||||||
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Angelic Ascension", "Grizzly Bears");
|
||||||
|
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||||
|
execute();
|
||||||
|
assertAllCommandsUsed();
|
||||||
|
assertExileCount(playerA, 1);
|
||||||
|
assertPermanentCount(playerA, "Angel", 1);
|
||||||
|
assertPowerToughness(playerA, "Angel", 4, 4);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
package org.mage.test.cards.single.m21;
|
||||||
|
|
||||||
|
import mage.constants.PhaseStep;
|
||||||
|
import mage.constants.Zone;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||||
|
|
||||||
|
public class AnointedChoristerTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
|
// {4}{W}: Anointed Chorister gets +3/+3 until end of turn.
|
||||||
|
private final String chorister = "Anointed Chorister";
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void buff(){
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, chorister);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Plains", 10);
|
||||||
|
|
||||||
|
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "{4}{W}:");
|
||||||
|
attack(3, playerA, chorister);
|
||||||
|
setStopAt(4, PhaseStep.PRECOMBAT_MAIN);
|
||||||
|
execute();
|
||||||
|
assertAllCommandsUsed();
|
||||||
|
assertLife(playerA, 24);
|
||||||
|
assertLife(playerB, 16);
|
||||||
|
assertPowerToughness(playerA, chorister, 1, 1);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue