mirror of
https://github.com/correl/mage.git
synced 2024-11-15 03:00:16 +00:00
* Archelos, Lagoon Mystic - fixed broken ETB effect (#7283);
This commit is contained in:
parent
64e948e4b3
commit
6f34d514f9
3 changed files with 59 additions and 2 deletions
|
@ -78,7 +78,18 @@ class ArchelosLagoonMysticEffect extends ReplacementEffectImpl {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean applies(GameEvent event, Ability source, Game game) {
|
public boolean applies(GameEvent event, Ability source, Game game) {
|
||||||
return !source.getSourceId().equals(((EntersTheBattlefieldEvent) event).getTarget().getId());
|
Permanent sourceObject = game.getPermanent(source.getSourceId());
|
||||||
|
if (sourceObject == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Permanent targetObject = ((EntersTheBattlefieldEvent) event).getTarget();
|
||||||
|
if (targetObject == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return !sourceObject.getId().equals(targetObject.getId())
|
||||||
|
&& sourceObject.isTapped() == this.tapped;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
package org.mage.test.cards.single.cmr;
|
||||||
|
|
||||||
|
import mage.constants.PhaseStep;
|
||||||
|
import mage.constants.Zone;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author JayDi85
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class ArchelosLagoonMysticTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_Playable() {
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Forest", 2 + 2); // add lands before Archelos, Lagoon Mystic to ignore ETB effects
|
||||||
|
|
||||||
|
// As long as Archelos, Lagoon Mystic is tapped, other permanents enter the battlefield tapped.
|
||||||
|
// As long as Archelos, Lagoon Mystic is untapped, other permanents enter the battlefield untapped.
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Archelos, Lagoon Mystic", 1);
|
||||||
|
//
|
||||||
|
addCard(Zone.HAND, playerA, "Grizzly Bears", 1); // {1}{G}
|
||||||
|
addCard(Zone.HAND, playerA, "Deranged Outcast", 1); // {1}{G}
|
||||||
|
|
||||||
|
// first - untapped
|
||||||
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Grizzly Bears");
|
||||||
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
|
checkPermanentTapped("untapped", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Archelos, Lagoon Mystic", false, 1);
|
||||||
|
checkPermanentTapped("untapped", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Grizzly Bears", false, 1);
|
||||||
|
|
||||||
|
// prepare tapped mystic
|
||||||
|
attack(1, playerA, "Archelos, Lagoon Mystic", playerB);
|
||||||
|
checkPermanentTapped("tapped", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Archelos, Lagoon Mystic", true, 1);
|
||||||
|
|
||||||
|
// second - tapped
|
||||||
|
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Deranged Outcast");
|
||||||
|
waitStackResolved(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||||
|
checkPermanentTapped("tapped", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Archelos, Lagoon Mystic", true, 1);
|
||||||
|
checkPermanentTapped("tapped", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Deranged Outcast", true, 1);
|
||||||
|
|
||||||
|
setStrictChooseMode(true);
|
||||||
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
|
execute();
|
||||||
|
assertAllCommandsUsed();
|
||||||
|
}
|
||||||
|
}
|
|
@ -1956,7 +1956,7 @@ public class TestPlayer implements Player {
|
||||||
int index = 0;
|
int index = 0;
|
||||||
for (Map.Entry<String, String> entry : rEffects.entrySet()) {
|
for (Map.Entry<String, String> entry : rEffects.entrySet()) {
|
||||||
if (entry.getValue().startsWith(choice)) {
|
if (entry.getValue().startsWith(choice)) {
|
||||||
choices.remove(choice);
|
choices.remove(0);
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
index++;
|
index++;
|
||||||
|
|
Loading…
Reference in a new issue