package org.mage.test.cards.replacement.lifereduce;
import mage.constants.PhaseStep;
import mage.constants.Zone;
import org.junit.Test;
import org.mage.test.serverside.base.CardTestPlayerBase;
/**
* Elderscale Wurm:
* As long as you have 7 or more life, damage that would reduce your life total to less than 7 reduces it to 7 instead..
*
* @author magenoxx_at_gmail.com
*/
public class DamageSetToXLifeInsteadTest extends CardTestPlayerBase {
/**
* Tests direct damage
*/
@Test
public void testDirectDamage() {
addCard(Zone.HAND, playerA, "Lava Axe");
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 5);
addCard(Zone.BATTLEFIELD, playerB, "Elderscale Wurm");
setLife(playerB, 8);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Lava Axe", playerB);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
// 5 damage dealt but it reduces life only to 7
assertLife(playerB, 7);
}
/**
* Tests doesn't work when less than 7 life total
* Also tests that the ability doesn't affect the loss or payment of life.
*/
@Test
public void testLessLifeTotal() {
addCard(Zone.HAND, playerA, "Lava Axe");
addCard(Zone.HAND, playerA, "Bump in the Night");
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 5);
addCard(Zone.BATTLEFIELD, playerA, "Swamp", 5);
addCard(Zone.BATTLEFIELD, playerB, "Elderscale Wurm");
setLife(playerB, 8);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Bump in the Night", playerB);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Lava Axe", playerB);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
// 5 damage dealt but it reduces life only to 7
assertLife(playerB, 0);
}
/**
* Tests Worhsip:
* If you control a creature, damage that would reduce your life total to less than 1 reduces it to 1 instead
*/
@Test
public void testWorshipWithCreature() {
addCard(Zone.HAND, playerA, "Volcanic Hammer");
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 2);
addCard(Zone.BATTLEFIELD, playerB, "Worship");
addCard(Zone.BATTLEFIELD, playerB, "Elite Vanguard");
setLife(playerB, 2);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Volcanic Hammer", playerB);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
assertLife(playerB, 1);
}
/**
* Tests Worhsip when there is no creature:
* If you control a creature, damage that would reduce your life total to less than 1 reduces it to 1 instead
*/
@Test
public void testWorshipWithoutCreature() {
addCard(Zone.HAND, playerA, "Volcanic Hammer", 2);
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 4);
addCard(Zone.BATTLEFIELD, playerA, "Llanowar Elves");
addCard(Zone.BATTLEFIELD, playerB, "Worship");
addCard(Zone.BATTLEFIELD, playerB, "Elite Vanguard");
setLife(playerB, 2);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Volcanic Hammer", "Elite Vanguard");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Volcanic Hammer", playerB);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
assertLife(playerB, -1);
}
}