package org.mage.test.cards.continuous;
import mage.abilities.keyword.IslandwalkAbility;
import mage.constants.PhaseStep;
import mage.constants.Zone;
import org.junit.Test;
import org.mage.test.serverside.base.CardTestPlayerBase;
/**
* @author magenoxx_at_gmail.com
*/
public class MasterOfThePearlTridentTest extends CardTestPlayerBase {
@Test
public void testLordAbility() {
addCard(Zone.BATTLEFIELD, playerA, "Island", 2);
addCard(Zone.HAND, playerA, "Master of the Pearl Trident");
addCard(Zone.BATTLEFIELD, playerA, "Merfolk of the Pearl Trident");
addCard(Zone.BATTLEFIELD, playerB, "Llanowar Elves");
addCard(Zone.BATTLEFIELD, playerB, "Island");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Master of the Pearl Trident");
attack(3, playerA, "Merfolk of the Pearl Trident");
block(3, playerB, "Llanowar Elves", "Merfolk of the Pearl Trident");
setStopAt(3, PhaseStep.END_TURN);
execute();
assertPermanentCount(playerA, "Master of the Pearl Trident", 1);
assertLife(playerB, 18);
assertPowerToughness(playerA, "Merfolk of the Pearl Trident", 2, 2);
assertAbility(playerA, "Merfolk of the Pearl Trident", new IslandwalkAbility(), true);
}
@Test
public void testLordAbilityGone() {
addCard(Zone.BATTLEFIELD, playerA, "Island", 2);
addCard(Zone.HAND, playerA, "Master of the Pearl Trident");
addCard(Zone.BATTLEFIELD, playerA, "Merfolk of the Pearl Trident");
addCard(Zone.BATTLEFIELD, playerB, "Swamp", 3);
addCard(Zone.BATTLEFIELD, playerB, "Llanowar Elves");
addCard(Zone.BATTLEFIELD, playerB, "Island");
addCard(Zone.HAND, playerB, "Murder");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Master of the Pearl Trident");
castSpell(3, PhaseStep.DECLARE_ATTACKERS, playerB, "Murder", "Master of the Pearl Trident");
attack(3, playerA, "Merfolk of the Pearl Trident");
block(3, playerB, "Llanowar Elves", "Merfolk of the Pearl Trident");
setStopAt(3, PhaseStep.END_TURN);
execute();
assertLife(playerB, 20);
assertPermanentCount(playerA, "Merfolk of the Pearl Trident", 0);
assertPermanentCount(playerB, "Llanowar Elves", 0);
}
@Test
public void testTurnToFrog() {
addCard(Zone.BATTLEFIELD, playerA, "Island", 2);
addCard(Zone.HAND, playerA, "Master of the Pearl Trident");
// Creature — Merfolk 2/2, UU
// Other Merfolk creatures you control get +1/+1 and have islandwalk. (They can't be blocked as long as defending player controls an Island.)
addCard(Zone.BATTLEFIELD, playerA, "Merfolk of the Pearl Trident");
addCard(Zone.BATTLEFIELD, playerB, "Island", 2);
addCard(Zone.BATTLEFIELD, playerB, "Llanowar Elves");
// Creature — Elf Druid 1/1, G
// {T}: Add {G} to your mana pool.
addCard(Zone.HAND, playerB, "Turn to Frog");
// Target creature loses all abilities and becomes a 1/1 blue Frog until end of turn.
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Master of the Pearl Trident");
castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerB, "Turn to Frog", "Master of the Pearl Trident");
attack(3, playerA, "Merfolk of the Pearl Trident");
block(3, playerB, "Llanowar Elves", "Merfolk of the Pearl Trident");
setStopAt(3, PhaseStep.END_TURN);
execute();
assertLife(playerB, 20);
assertPermanentCount(playerA, "Merfolk of the Pearl Trident", 0);
assertPermanentCount(playerB, "Llanowar Elves", 0);
}
@Test
public void testTurnToFrogAndMurder() {
addCard(Zone.BATTLEFIELD, playerA, "Island", 2);
addCard(Zone.HAND, playerA, "Master of the Pearl Trident");
addCard(Zone.BATTLEFIELD, playerA, "Merfolk of the Pearl Trident");
addCard(Zone.BATTLEFIELD, playerB, "Island", 2);
addCard(Zone.BATTLEFIELD, playerB, "Swamp", 3);
addCard(Zone.BATTLEFIELD, playerB, "Llanowar Elves");
addCard(Zone.HAND, playerB, "Turn to Frog");
addCard(Zone.HAND, playerB, "Murder");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Master of the Pearl Trident");
castSpell(3, PhaseStep.BEGIN_COMBAT, playerB, "Turn to Frog", "Master of the Pearl Trident");
castSpell(3, PhaseStep.DECLARE_ATTACKERS, playerB, "Murder", "Master of the Pearl Trident");
attack(3, playerA, "Merfolk of the Pearl Trident");
block(3, playerB, "Llanowar Elves", "Merfolk of the Pearl Trident");
setStopAt(3, PhaseStep.END_TURN);
execute();
assertGraveyardCount(playerB, "Turn to Frog", 1);
assertGraveyardCount(playerB, "Murder", 1);
assertLife(playerB, 20);
assertPermanentCount(playerA, "Merfolk of the Pearl Trident", 0);
assertPermanentCount(playerB, "Llanowar Elves", 0);
}
/*
* Control of Master changes to player B in turn 2, after
*/
@Test
public void testLooseAndGainControl() {
addCard(Zone.BATTLEFIELD, playerA, "Island", 2);
addCard(Zone.BATTLEFIELD, playerA, "Master of the Pearl Trident");
addCard(Zone.HAND, playerA, "Merfolk of the Pearl Trident");
addCard(Zone.BATTLEFIELD, playerB, "Mountain", 5);
addCard(Zone.HAND, playerB, "Zealous Conscripts");
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Zealous Conscripts");
castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Merfolk of the Pearl Trident");
setStopAt(3, PhaseStep.POSTCOMBAT_MAIN);
execute();
assertLife(playerA, 20);
assertLife(playerB, 20);
assertPermanentCount(playerA, "Master of the Pearl Trident", 1);
assertPermanentCount(playerA, "Merfolk of the Pearl Trident", 1);
assertPowerToughness(playerA, "Merfolk of the Pearl Trident", 2, 2);
assertPermanentCount(playerB, "Zealous Conscripts", 1);
}
}