mirror of
https://github.com/correl/mage.git
synced 2024-12-26 03:00:11 +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)) {
|
if (permanent.getControllerId().equals(this.getControllerId()) && permanent.getCardType().contains(CardType.CREATURE)) {
|
||||||
int countersOn = permanent.getCounters(game).getCount(CounterType.P1P1);
|
int countersOn = permanent.getCounters(game).getCount(CounterType.P1P1);
|
||||||
if (countersOn > 0) {
|
if (countersOn > 0) {
|
||||||
|
this.getEffects().clear();
|
||||||
this.addEffect(new AddCountersTargetEffect(CounterType.P1P1.createInstance(countersOn)));
|
this.addEffect(new AddCountersTargetEffect(CounterType.P1P1.createInstance(countersOn)));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -59,4 +59,35 @@ public class SepulchralPrimordialTest extends CardTestPlayerBase {
|
||||||
assertLife(playerB, 20);
|
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);
|
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
|
* Diluvian Primordial ETB trigger never happened in a 3 player FFA
|
||||||
* commander game. He just resolved, no ETB trigger occurred.
|
* commander game. He just resolved, no ETB trigger occurred.
|
||||||
|
|
Loading…
Reference in a new issue