package org.mage.test.cards.abilities.enters;
import mage.constants.PhaseStep;
import mage.constants.Zone;
import org.junit.Test;
import org.mage.test.serverside.base.CardTestPlayerBase;
/**
*
* @author LevelX2
*/
public class MasterBiomancerTest extends CardTestPlayerBase {
/* Master Biomancer {2}{G}{U}
* Creature - Elf Wizard
* 2/4
* Each other creature you control enters the battlefield with a number of additional +1/+1 counters
* on it equal to Master Biomancer's power and as a Mutant in addition to its other types.
*
*/
@Test
public void testCreatureGetsCounters() {
// a creature enters the battlefield and gets a counter for each point of power of Master Biomancer
addCard(Zone.BATTLEFIELD, playerA, "Island", 5);
addCard(Zone.BATTLEFIELD, playerA, "Master Biomancer", 1);
addCard(Zone.HAND, playerA, "Mindeye Drake");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Mindeye Drake");
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
assertLife(playerA, 20);
assertLife(playerB, 20);
assertPermanentCount(playerA, "Master Biomancer", 1);
assertPermanentCount(playerA, "Mindeye Drake", 1);
assertPowerToughness(playerA, "Master Biomancer", 2, 4);
// P/T = 2/5 + (2 * +1/+1) = 4 / 7
assertPowerToughness(playerA, "Mindeye Drake", 4, 7);
}
@Test
public void testCreatureGetsDoubleCountersFromCorpsejackMenace() {
// a creature enters the battlefield and gets a counter for each point of power of Master Biomancer
// doubled by Corpsejack Menace (when he ist cast, his own ability will not apply)
// http://blogs.magicjudges.org/rulestips/2013/03/corpsejack-menace-and-master-biomancer/
addCard(Zone.BATTLEFIELD, playerA, "Island", 2);
addCard(Zone.BATTLEFIELD, playerA, "Forest", 2);
addCard(Zone.BATTLEFIELD, playerA, "Swamp", 1);
addCard(Zone.BATTLEFIELD, playerA, "Master Biomancer", 1);
// If one or more +1/+1 counters would be placed on a creature you control, twice that many +1/+1 counters are placed on it instead.
addCard(Zone.HAND, playerA, "Corpsejack Menace");
addCard(Zone.HAND, playerA, "Mindeye Drake");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Corpsejack Menace");
castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Mindeye Drake");
setStopAt(3, PhaseStep.BEGIN_COMBAT);
execute();
assertLife(playerA, 20);
assertLife(playerB, 20);
assertPermanentCount(playerA, "Master Biomancer", 1);
assertPermanentCount(playerA, "Corpsejack Menace", 1);
assertPermanentCount(playerA, "Mindeye Drake", 1);
assertPowerToughness(playerA, "Master Biomancer", 2, 4);
// P/T = 4/4 + (2 * +1/+1) = 6 / 6 (own doubling not active yet)
assertPowerToughness(playerA, "Corpsejack Menace", 6, 6);
// P/T = 2/5 + 2* (2 * +1/+1) = 6 / 9
assertPowerToughness(playerA, "Mindeye Drake", 6, 9);
}
/**
* Progenitor Mimic Creature - Shapeshifter 0/0 You may have Progenitor
* Mimic enter the battlefield as a copy of any creature on the battlefield
* except it gains "At the beginning of your upkeep, if this creature isn't
* a token, put a token onto the battlefield that's a copy of this
* creature."
*
* If Progenitor Mimic comes into play, it gets two +1/+1 counters from the
* Master Biomancer already in play. It copies the Master Biomancer and is
* therfore a 4/6 creature. The Token generated next round from Progenitor
* Mimic has to get 2 + 4 counters and is therefore a 8/10 creature.
*/
@Test
public void testWithProgenitorMimic() {
// a creature enters the battlefield and gets a counter for each point of power of Master Biomancer
addCard(Zone.BATTLEFIELD, playerA, "Island", 3);
addCard(Zone.BATTLEFIELD, playerA, "Forest", 3);
addCard(Zone.BATTLEFIELD, playerA, "Master Biomancer", 1);
// You may have Progenitor Mimic enter the battlefield as a copy of any creature on the battlefield
// except it gains "At the beginning of your upkeep, if this creature isn't a token,
// put a token onto the battlefield that's a copy of this creature."
addCard(Zone.HAND, playerA, "Progenitor Mimic");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Progenitor Mimic");
playerA.addTarget("Master Biomancer");
setStopAt(3, PhaseStep.PRECOMBAT_MAIN);
execute();
assertLife(playerA, 20);
assertLife(playerB, 20);
assertPermanentCount(playerA, "Master Biomancer", 3);
// the original Master Biomancer
assertPowerToughness(playerA, "Master Biomancer", 2, 4);
// the Progenitor Mimic copying the Master Biomancer
assertPowerToughness(playerA, "Master Biomancer", 4, 6);
// the first token created by the Progenitor Mimic copying the Master Biomancer
assertPowerToughness(playerA, "Master Biomancer", 8, 10);
}
}