diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/KeigaTheTideStar.java b/Mage.Sets/src/mage/sets/championsofkamigawa/KeigaTheTideStar.java index 3bd38c46c9b..da3e2a2fb10 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/KeigaTheTideStar.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/KeigaTheTideStar.java @@ -55,7 +55,11 @@ public class KeigaTheTideStar extends CardImpl { this.color.setBlue(true); this.power = new MageInt(5); this.toughness = new MageInt(5); + + // Flying this.addAbility(FlyingAbility.getInstance()); + + // When Keiga, the Tide Star dies, gain control of target creature. Ability ability = new DiesTriggeredAbility(new GainControlTargetEffect(Duration.Custom)); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/control/GainControlDiedCastAgainTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/control/GainControlDiedCastAgainTest.java new file mode 100644 index 00000000000..38ed4278700 --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/cards/control/GainControlDiedCastAgainTest.java @@ -0,0 +1,134 @@ +package org.mage.test.cards.control; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * Tests that if a creature was controlled by opponent and died and was + * cast again by owner, that continuous effects of this creature work + * with controller for the owner + * + * @author LevelX2 + */ + +public class GainControlDiedCastAgainTest extends CardTestPlayerBase { + + @Test + public void testBoostEffectsWorksForControllerOfElesh() { + + addCard(Zone.BATTLEFIELD, playerB, "Plains", 4); + addCard(Zone.BATTLEFIELD, playerB, "Swamp", 3); + /** + * Volrath's Stronghold + * Legendary Land + * {t}: Add {1} to your mana pool. + * {1}{B}, {tap}: Put target creature card from your graveyard on top of your library. + */ + addCard(Zone.BATTLEFIELD, playerB, "Volrath's Stronghold"); + /** + * Elesh Norn, Grand Cenobite {5}{W}{W} + * Legendary Creature — Praetor 4/7 + * Vigilance + * Other creatures you control get +2/+2. + * Creatures your opponents control get -2/-2. + */ + addCard(Zone.BATTLEFIELD, playerB, "Elesh Norn, Grand Cenobite"); + addCard(Zone.BATTLEFIELD, playerB, "Kalonian Tusker"); // simple 3/3 + + /** + * Keiga, the Tide Star + * Legendary Dragon Spirit + * When Keiga, the Tide Star dies, gain control of target creature + */ + addCard(Zone.BATTLEFIELD, playerA, "Keiga, the Tide Star"); + addCard(Zone.BATTLEFIELD, playerA, "Kalonian Tusker"); + + attack(2, playerB, "Elesh Norn, Grand Cenobite"); + block(2, playerA, "Keiga, the Tide Star", "Elesh Norn, Grand Cenobite"); + addTarget(playerB, "Elesh Norn, Grand Cenobite"); + + setStopAt(2, PhaseStep.POSTCOMBAT_MAIN); + execute(); + + assertLife(playerA, 20); + assertLife(playerB, 20); + + assertPermanentCount(playerA, "Elesh Norn, Grand Cenobite", 1); + + assertPowerToughness(playerA, "Kalonian Tusker", 5,5); + assertPowerToughness(playerB, "Kalonian Tusker", 1,1); + } + + @Test + public void testBoostEffectsWorkForController() { + addCard(Zone.BATTLEFIELD, playerB, "Plains", 6); + addCard(Zone.BATTLEFIELD, playerB, "Swamp", 6); + /** + * Akroma's Vengeance {4}{W}{W} + * Sorcery + * Destroy all artifacts, creatures, and enchantments. + */ + addCard(Zone.HAND, playerB, "Akroma's Vengeance"); + /** + * Volrath's Stronghold + * Legendary Land + * {t}: Add {1} to your mana pool. + * {1}{B}, {tap}: Put target creature card from your graveyard on top of your library. + */ + addCard(Zone.BATTLEFIELD, playerB, "Volrath's Stronghold"); + /** + * Elesh Norn, Grand Cenobite {5}{W}{W} + * Legendary Creature — Praetor + * Vigilance + * Other creatures you control get +2/+2. + * Creatures your opponents control get -2/-2. + */ + addCard(Zone.HAND, playerB, "Elesh Norn, Grand Cenobite"); + + addCard(Zone.BATTLEFIELD, playerB, "Darksteel Gargoyle"); // indestructible 3/3 + + addCard(Zone.BATTLEFIELD, playerA, "Island", 6); + /** + * Keiga, the Tide Star {5}{U} + * Legendary Dragon Spirit 5/5 + * When Keiga, the Tide Star dies, gain control of target creature + */ + addCard(Zone.HAND, playerA, "Keiga, the Tide Star"); + addCard(Zone.BATTLEFIELD, playerA, "Darksteel Gargoyle"); + + castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Elesh Norn, Grand Cenobite"); + + castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Keiga, the Tide Star"); + + attack(4, playerB, "Elesh Norn, Grand Cenobite"); + block(4, playerA, "Keiga, the Tide Star", "Elesh Norn, Grand Cenobite"); + addTarget(playerA, "Elesh Norn, Grand Cenobite"); + + // Destroy all creatures, enchantments and artifacts + castSpell(4, PhaseStep.POSTCOMBAT_MAIN, playerB, "Akroma's Vengeance"); + // Put Elesh Norn back on library + activateAbility(5, PhaseStep.END_TURN, playerB, "{1}{B},{T}: Put target creature card from your graveyard on top of it's owner's library.", "Elesh Norn, Grand Cenobite"); + + castSpell(6, PhaseStep.PRECOMBAT_MAIN, playerB, "Elesh Norn, Grand Cenobite"); + setStopAt(6, PhaseStep.BEGIN_COMBAT); + execute(); + + assertLife(playerA, 20); + assertLife(playerB, 20); + + assertPermanentCount(playerA, "Keiga, the Tide Star", 0); + assertGraveyardCount(playerA, "Keiga, the Tide Star", 1); + + assertPermanentCount(playerB, "Elesh Norn, Grand Cenobite", 1); + assertGraveyardCount(playerB, "Elesh Norn, Grand Cenobite", 0); + assertGraveyardCount(playerB, "Akroma's Vengeance", 1); + + assertPermanentCount(playerA, "Darksteel Gargoyle", 1); + assertPermanentCount(playerB, "Darksteel Gargoyle", 1); + + assertPowerToughness(playerA, "Darksteel Gargoyle", 1,1); + assertPowerToughness(playerB, "Darksteel Gargoyle", 5,5); + } +}