mirror of
https://github.com/correl/mage.git
synced 2025-03-12 17:00:08 -09:00
* Added test for control change.
This commit is contained in:
parent
5c1c8ec244
commit
a9d08ef724
2 changed files with 138 additions and 0 deletions
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue