package org.mage.test.cards.copy; import mage.constants.PhaseStep; import mage.constants.Zone; import org.junit.Test; import org.mage.test.serverside.base.CardTestPlayerBase; /** * Mana cost: 1UU * Type: Creature — Shapeshifter * Effect of card: At the beginning of your upkeep, you may have Cryptoplasm become a copy of another target creature. If you do, Cryptoplasm gains this ability. * Power/Toughness: 2/2 */ public class CryptoplasmTest extends CardTestPlayerBase { @Test public void testTransform() { addCard(Zone.BATTLEFIELD, playerA, "Cryptoplasm", 1); addCard(Zone.BATTLEFIELD, playerA, "Craw Wurm", 1); setStopAt(2, PhaseStep.END_TURN); execute(); assertLife(playerA, 20); assertLife(playerB, 20); assertPermanentCount(playerA, "Craw Wurm", 2); } /** * I have a Cryptoplasm in play, currently copying a Sigiled Paladin, and I * enchant it with a Followed Footsteps. Next turn the aura triggers (the * Crypto is still copying the same creature) and places a token on the * battlefield, except the token is an untransformed Cryptoplasm, when it * should be a Sigiled Paladin with Cryptoplasm's ability (as per rule * 706.3), since that's what the enchanted creature currently is. * * 6/1/2011 If another creature becomes a copy of Cryptoplasm, it will * become a copy of whatever Cryptoplasm is currently copying (if anything), * plus it will have Cryptoplasm's triggered ability. */ @Test public void testFollowedFootsteps() { // First strike // Exalted (Whenever a creature you control attacks alone, that creature gets +1/+1 until end of turn.) addCard(Zone.BATTLEFIELD, playerA, "Sigiled Paladin", 1); // {W}{W} addCard(Zone.BATTLEFIELD, playerB, "Island", 5); // Enchant creature // At the beginning of your upkeep, put a token that's a copy of enchanted creature onto the battlefield. addCard(Zone.HAND, playerB, "Followed Footsteps", 1); // {3}{U}{U} // At the beginning of your upkeep, you may have Cryptoplasm become a copy of another target creature. If you do, Cryptoplasm gains this ability. addCard(Zone.BATTLEFIELD, playerB, "Cryptoplasm", 1); // {1}{U}{U} castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Followed Footsteps"); addTarget(playerB, "Sigiled Paladin[only copy]"); setStopAt(4, PhaseStep.END_TURN); execute(); assertPermanentCount(playerB, "Followed Footsteps", 1); assertPermanentCount(playerB, "Cryptoplasm", 0); assertPermanentCount(playerB, "Sigiled Paladin", 2); } /** * I'm at 8 life, opponent (AI) is at 21. I have a Cryptoplasm currently * copying my opponent's Divinity of Pride, the Crypto also has my Followed * Footsteps attached to it. Additionally, I have another Cryptoplasm on the * battlefield also copying the same Divinity, and a Clever Impersonator * that ETB copying the first Cryptoplasm and is currently also a copy of * the Divinity. * * Opponent attacks with his only Divinity of Pride (4/4) and a Serra * Avenger (3/3). I block the Divinity with two of my Divinity copies (the * Clever Impersonator and unenchanted Cryptoplasm) and the Avenger with the * enchanted Divinity (originally a Cryptoplasm). My opponent's Divinity * kills my two copies and dies, and then his Avenger dies and kills the * Divinity blocking it, also sending my Followed Footsteps down with it. * * How does any of that add up? Not only should his Divinity only kill one * of mine since it was a 4/4 and only becomes an 8/8 after dealing its * damage (at which point it should be too late to go back and say the 4 * damage are now 8, since it was that exact damage that put him at 25 * life), but even more confusing is how the Serra Avenger, which is a 3/3, * somehow kills my 4/4 that had suffered no other damage that turn. * * No other permanents in play at that moment had any influence in this * either, they were only basic lands and a couple of creatures with no * relevant abilities. * * I won't put aside me completely missing something here, but I really * can't see any other explanation to this other than a game bug. */ @Test public void testDamageLifelink() { setLife(playerA, 21); setLife(playerB, 8); // First strike // Exalted (Whenever a creature you control attacks alone, that creature gets +1/+1 until end of turn.) addCard(Zone.BATTLEFIELD, playerA, "Divinity of Pride", 1); // {W}{W} addCard(Zone.BATTLEFIELD, playerB, "Island", 5); // At the beginning of your upkeep, you may have Cryptoplasm become a copy of another target creature. If you do, Cryptoplasm gains this ability. addCard(Zone.BATTLEFIELD, playerB, "Cryptoplasm", 2); // {1}{U}{U} addTarget(playerB, "Divinity of Pride"); addTarget(playerB, "Divinity of Pride"); attack(3, playerA, "Divinity of Pride"); block(3, playerB, "Divinity of Pride:0", "Divinity of Pride"); block(3, playerB, "Divinity of Pride:1", "Divinity of Pride"); setStopAt(3, PhaseStep.POSTCOMBAT_MAIN); execute(); assertPermanentCount(playerB, "Cryptoplasm", 0); assertPermanentCount(playerA, "Divinity of Pride", 0); assertPermanentCount(playerB, "Divinity of Pride", 1); assertLife(playerB, 16); assertLife(playerA, 25); } @Test public void testTransformMultipleTime() { // At the beginning of your upkeep, you may have Cryptoplasm become a copy of another target creature. If you do, Cryptoplasm gains this ability. addCard(Zone.BATTLEFIELD, playerA, "Cryptoplasm", 1); addCard(Zone.BATTLEFIELD, playerA, "Island", 3); addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion", 1); // 6/4 addCard(Zone.BATTLEFIELD, playerB, "Craw Wurm", 1); // 6/4 castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cryptoplasm"); addTarget(playerA, "Silvercoat Lion"); addTarget(playerA, "Craw Wurm"); setStopAt(5, PhaseStep.PRECOMBAT_MAIN); execute(); assertLife(playerA, 20); assertLife(playerB, 20); assertPermanentCount(playerA, "Silvercoat Lion", 0); assertPermanentCount(playerA, "Craw Wurm", 1); } }