package org.mage.test.cards.single; import mage.constants.PhaseStep; import mage.constants.Zone; import org.junit.Test; import org.mage.test.serverside.base.CardTestPlayerBase; /** * * @author BetaSteward */ public class HavengulLichTest extends CardTestPlayerBase { @Test public void testCard() { addCard(Zone.BATTLEFIELD, playerA, "Mountain", 4); addCard(Zone.BATTLEFIELD, playerA, "Havengul Lich"); addCard(Zone.GRAVEYARD, playerA, "Prodigal Pyromancer"); activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{1}", "Prodigal Pyromancer"); castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Prodigal Pyromancer"); activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{T}: {source} deals", playerB); setStopAt(1, PhaseStep.END_TURN); execute(); assertLife(playerA, 20); assertLife(playerB, 19); assertPermanentCount(playerA, "Havengul Lich", 1); assertPermanentCount(playerA, "Prodigal Pyromancer", 1); assertTapped("Havengul Lich", true); assertTapped("Prodigal Pyromancer", false); assertGraveyardCount(playerA, 0); } @Test public void testCard1() { addCard(Zone.BATTLEFIELD, playerA, "Swamp", 3); addCard(Zone.BATTLEFIELD, playerA, "Havengul Lich"); addCard(Zone.GRAVEYARD, playerA, "Black Cat"); activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{1}", "Black Cat"); castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Black Cat"); setStopAt(3, PhaseStep.BEGIN_COMBAT); execute(); assertLife(playerA, 20); assertLife(playerB, 20); assertPermanentCount(playerA, "Havengul Lich", 1); assertPermanentCount(playerA, "Black Cat", 0); assertGraveyardCount(playerA, 1); } @Test public void testCard2() { addCard(Zone.BATTLEFIELD, playerA, "Mountain", 4); // {1}: You may cast target creature card in a graveyard this turn. When you cast that card this turn, Havengul Lich // gains all activated abilities of that card until end of turn. addCard(Zone.BATTLEFIELD, playerA, "Havengul Lich"); // {T}: Prodigal Pyromancer deals 1 damage to target creature or player. addCard(Zone.GRAVEYARD, playerA, "Prodigal Pyromancer"); activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{1}: You may", "Prodigal Pyromancer"); castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Prodigal Pyromancer"); activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: {source} deals", playerB); activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: {source} deals", playerB); // only inm turn 1, so Havengul Lich has the abilit ylost now setStopAt(3, PhaseStep.BEGIN_COMBAT); execute(); assertLife(playerA, 20); assertLife(playerB, 19); assertPermanentCount(playerA, "Havengul Lich", 1); assertPermanentCount(playerA, "Prodigal Pyromancer", 1); assertTapped("Prodigal Pyromancer", true); assertTapped("Havengul Lich", false); assertGraveyardCount(playerA, 0); } /** * hey i play a Havengul Lich and Heartless Summoning deck. and every time * the lich is on the field as the same time as heartless summoning i cant * use the lich's ability correctly. because if you know magic you know that * a creature with one toughness will still enter the battlefield and * immediately die but the creature's effect will still trigger. like when i * "cast" Perilous Myr from the graveyard with the lich it doesn't actually * enter the battlefield and its death ability doesn't trigger! and that is * one of my decks i cast from the graveyard with the lich and things are * SUPPOSED to enter the battlefield and die triggering whatever ability the * creature might have alot like "myr retriever"! plz fix it, this is the * second time i have had to mention this problem! */ @Test public void testCardHeartlessSummoning() { addCard(Zone.BATTLEFIELD, playerA, "Mountain", 1); // {1}: You may cast target creature card in a graveyard this turn. When you cast that card this turn, Havengul Lich // gains all activated abilities of that card until end of turn. addCard(Zone.BATTLEFIELD, playerA, "Havengul Lich"); // Creature spells you cast cost {2} less to cast. // Creatures you control get -1/-1. addCard(Zone.BATTLEFIELD, playerA, "Heartless Summoning"); // Enchantment // When Perilous Myr dies, it deals 2 damage to target creature or player. addCard(Zone.GRAVEYARD, playerA, "Perilous Myr"); activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{1}: You may", "Perilous Myr"); castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Perilous Myr"); addTarget(playerA, playerB); execute(); assertLife(playerA, 20); assertLife(playerB, 18); assertPermanentCount(playerA, "Havengul Lich", 1); assertGraveyardCount(playerA, "Perilous Myr", 1); } }