mirror of
https://github.com/correl/mage.git
synced 2024-12-25 11:11:16 +00:00
* Reyhan, Last of the Abzan - Fixed that dies triggered ability was not reset correctly if it triggered multiple times.
This commit is contained in:
parent
034ef22468
commit
ada17b1690
3 changed files with 65 additions and 0 deletions
|
@ -112,6 +112,7 @@ class ReyhanLastOfTheAbzanTriggeredAbility extends TriggeredAbilityImpl {
|
|||
if (permanent.getControllerId().equals(this.getControllerId()) && permanent.getCardType().contains(CardType.CREATURE)) {
|
||||
int countersOn = permanent.getCounters(game).getCount(CounterType.P1P1);
|
||||
if (countersOn > 0) {
|
||||
this.getEffects().clear();
|
||||
this.addEffect(new AddCountersTargetEffect(CounterType.P1P1.createInstance(countersOn)));
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -59,4 +59,35 @@ public class SepulchralPrimordialTest extends CardTestPlayerBase {
|
|||
assertLife(playerB, 20);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Sepulchral Primordial's "enter the battlefield" effect works correctly on
|
||||
* cast, but does not trigger if he is returned to the battlefield by other
|
||||
* means (e.g. summoned from the graveyard). I've encountered this in
|
||||
* 4-player commander games with other humans.
|
||||
*/
|
||||
@Test
|
||||
public void testETBFromGraveyardEffect() {
|
||||
// Return target creature card from your graveyard to the battlefield. Put a +1/+1 counter on it.
|
||||
addCard(Zone.HAND, playerA, "Miraculous Recovery", 1); // Instant {4}{W}
|
||||
// When Sepulchral Primordial enters the battlefield, for each opponent, you may put up to one
|
||||
// target creature card from that player's graveyard onto the battlefield under your control.
|
||||
addCard(Zone.GRAVEYARD, playerA, "Sepulchral Primordial", 1); // Creature 5/4
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Plains", 5);
|
||||
|
||||
addCard(Zone.GRAVEYARD, playerB, "Silvercoat Lion", 1);
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Miraculous Recovery", "Sepulchral Primordial");
|
||||
addTarget(playerA, "Silvercoat Lion"); // target for ETB Sepulchral Primordial
|
||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||
execute();
|
||||
|
||||
assertGraveyardCount(playerA, "Miraculous Recovery", 1);
|
||||
assertPowerToughness(playerA, "Sepulchral Primordial", 6, 5);
|
||||
assertPermanentCount(playerA, "Silvercoat Lion", 1);
|
||||
|
||||
assertLife(playerA, 20);
|
||||
assertLife(playerB, 20);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -67,6 +67,39 @@ public class PrimordialTest extends CardTestMultiPlayerBase {
|
|||
assertGraveyardCount(playerD, "Pillarfield Ox", 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sepulchral Primordial's "enter the battlefield" effect works correctly on
|
||||
* cast, but does not trigger if he is returned to the battlefield by other
|
||||
* means (e.g. summoned from the graveyard). I've encountered this in
|
||||
* 4-player commander games with other humans.
|
||||
*/
|
||||
@Test
|
||||
public void SepulchralPrimordialFromGraveyardTest() {
|
||||
// Return target creature card from your graveyard to the battlefield. Put a +1/+1 counter on it.
|
||||
addCard(Zone.HAND, playerA, "Miraculous Recovery", 1); // Instant {4}{W}
|
||||
// When Sepulchral Primordial enters the battlefield, for each opponent, you may put up to one
|
||||
// target creature card from that player's graveyard onto the battlefield under your control.
|
||||
addCard(Zone.GRAVEYARD, playerA, "Sepulchral Primordial");
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Plains", 5);
|
||||
|
||||
// Player order: A -> D -> C -> B
|
||||
addCard(Zone.GRAVEYARD, playerB, "Silvercoat Lion");
|
||||
addCard(Zone.GRAVEYARD, playerC, "Walking Corpse");
|
||||
addCard(Zone.GRAVEYARD, playerD, "Pillarfield Ox");
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Miraculous Recovery", "Sepulchral Primordial");
|
||||
|
||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||
execute();
|
||||
|
||||
assertPermanentCount(playerA, "Sepulchral Primordial", 1);
|
||||
assertPermanentCount(playerA, "Silvercoat Lion", 1);
|
||||
assertPermanentCount(playerA, "Walking Corpse", 0);
|
||||
assertPermanentCount(playerA, "Pillarfield Ox", 1);
|
||||
assertGraveyardCount(playerC, "Walking Corpse", 1);
|
||||
assertGraveyardCount(playerD, "Pillarfield Ox", 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Diluvian Primordial ETB trigger never happened in a 3 player FFA
|
||||
* commander game. He just resolved, no ETB trigger occurred.
|
||||
|
|
Loading…
Reference in a new issue