mirror of
https://github.com/correl/mage.git
synced 2024-11-25 11:09:53 +00:00
* Yorvo, Lord of Garenbrig - fixed that it doesn't add +1 counter is green creature dies before resolve;
This commit is contained in:
parent
92eba9861d
commit
e768c375dc
2 changed files with 84 additions and 1 deletions
|
@ -17,6 +17,7 @@ import mage.filter.predicate.mageobject.ColorPredicate;
|
||||||
import mage.filter.predicate.permanent.AnotherPredicate;
|
import mage.filter.predicate.permanent.AnotherPredicate;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
|
import mage.target.targetpointer.FixedTarget;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@ -88,7 +89,7 @@ class YorvoLordOfGarenbrigEffect extends OneShotEffect {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
sourcePerm.addCounters(CounterType.P1P1.createInstance(), source, game);
|
sourcePerm.addCounters(CounterType.P1P1.createInstance(), source, game);
|
||||||
Permanent permanent = game.getPermanentOrLKIBattlefield(targetPointer.getFirst(game, source));
|
Permanent permanent = ((FixedTarget) targetPointer).getTargetedPermanentOrLKIBattlefield(game);
|
||||||
if (permanent == null) {
|
if (permanent == null) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,82 @@
|
||||||
|
package org.mage.test.commander.duel;
|
||||||
|
|
||||||
|
import mage.constants.PhaseStep;
|
||||||
|
import mage.constants.Zone;
|
||||||
|
import mage.counters.CounterType;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.mage.test.serverside.base.CardTestCommanderDuelBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author JayDi85
|
||||||
|
*/
|
||||||
|
public class YorvoLordOfGarenbrigOnCommandersTest extends CardTestCommanderDuelBase {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_TriggerOnSimpleCommander() {
|
||||||
|
// Yorvo, Lord of Garenbrig enters the battlefield with four +1/+1 counters on it.
|
||||||
|
// Whenever another green creature enters the battlefield under your control, put a +1/+1 counter on Yorvo. Then if that creature’s power is greater than Yorvo’s power, put another +1/+1 counter on Yorvo.
|
||||||
|
addCard(Zone.HAND, playerA, "Yorvo, Lord of Garenbrig", 5); // {G}{G}{G}
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Forest", 3);
|
||||||
|
//
|
||||||
|
addCard(Zone.COMMAND, playerA, "Aggressive Mammoth"); // {3}{G}{G}{G}
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Forest", 6);
|
||||||
|
|
||||||
|
// prepare yorvo
|
||||||
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Yorvo, Lord of Garenbrig");
|
||||||
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
|
|
||||||
|
// cast commander
|
||||||
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Aggressive Mammoth");
|
||||||
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
|
checkPermanentCounters("must get +2", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Yorvo, Lord of Garenbrig", CounterType.P1P1, 4 + 2);
|
||||||
|
checkPermanentCount("must play commander", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Aggressive Mammoth", 1);
|
||||||
|
|
||||||
|
setStrictChooseMode(true);
|
||||||
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
|
execute();
|
||||||
|
assertAllCommandsUsed();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_TriggerOnUroTitalOfNaturesWrath() {
|
||||||
|
// Yorvo, Lord of Garenbrig enters the battlefield with four +1/+1 counters on it.
|
||||||
|
// Whenever another green creature enters the battlefield under your control, put a +1/+1 counter on Yorvo. Then if that creature’s power is greater than Yorvo’s power, put another +1/+1 counter on Yorvo.
|
||||||
|
addCard(Zone.HAND, playerA, "Yorvo, Lord of Garenbrig", 5); // {G}{G}{G}
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Forest", 3);
|
||||||
|
//
|
||||||
|
// When Uro enters the battlefield, sacrifice it unless it escaped.
|
||||||
|
// Whenever Uro enters the battlefield or attacks, you gain 3 life and draw a card, then you may put a land card from your hand onto the battlefield.
|
||||||
|
// Escape-{G}{G}{U}{U}, Exile five other cards from your graveyard. (You may cast this card from your graveyard for its escape cost.)
|
||||||
|
addCard(Zone.COMMAND, playerA, "Uro, Titan of Nature's Wrath"); // {1}{G}{U}
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Forest", 2);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Island", 1);
|
||||||
|
|
||||||
|
// prepare yorvo
|
||||||
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Yorvo, Lord of Garenbrig");
|
||||||
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
|
|
||||||
|
// cast commander
|
||||||
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Uro, Titan of Nature's Wrath");
|
||||||
|
|
||||||
|
// If the entering green creature dies before Yorvo’s triggered ability resolves, use its power as it last
|
||||||
|
// existed on the battlefield to determine whether Yorvo gets a second +1/+1 counter.
|
||||||
|
// (2019-10-04)
|
||||||
|
|
||||||
|
// order triggers to remove commander first
|
||||||
|
setChoice(playerA, "Whenever {this} enters the battlefield or attacks"); // draw trigger
|
||||||
|
setChoice(playerA, "Whenever another green creature enters the battlefield"); // get counters trigger
|
||||||
|
//setChoice(playerA, "When {this} enters the battlefield, sacrifice it"); // sacrifice trigger must be on top
|
||||||
|
|
||||||
|
setChoice(playerA, "Yes"); // return commander to command zone
|
||||||
|
setChoice(playerA, "No"); // do not put land to battlefield
|
||||||
|
|
||||||
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
|
checkPermanentCounters("must get +2", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Yorvo, Lord of Garenbrig", CounterType.P1P1, 4 + 2);
|
||||||
|
checkCommandCardCount("return commander", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Uro, Titan of Nature's Wrath", 1);
|
||||||
|
|
||||||
|
setStrictChooseMode(true);
|
||||||
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
|
execute();
|
||||||
|
assertAllCommandsUsed();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue