From 0534b941cd2880936f3662d59b0143699b0a6aff Mon Sep 17 00:00:00 2001 From: Jared Hall Date: Wed, 6 Apr 2016 06:42:32 -0400 Subject: [PATCH] Fixes #1696 --- .../ErdwalIlluminator.java | 5 +- .../single/soi/ErdwalIlluminatorTest.java | 78 +++++++++++++++++++ 2 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 Mage.Tests/src/test/java/org/mage/test/cards/single/soi/ErdwalIlluminatorTest.java diff --git a/Mage.Sets/src/mage/sets/shadowsoverinnistrad/ErdwalIlluminator.java b/Mage.Sets/src/mage/sets/shadowsoverinnistrad/ErdwalIlluminator.java index 8f8c13bd45c..4f944f756fb 100644 --- a/Mage.Sets/src/mage/sets/shadowsoverinnistrad/ErdwalIlluminator.java +++ b/Mage.Sets/src/mage/sets/shadowsoverinnistrad/ErdwalIlluminator.java @@ -77,6 +77,7 @@ class ErdwalIlluminatorTriggeredAbility extends TriggeredAbilityImpl { public ErdwalIlluminatorTriggeredAbility() { super(Zone.BATTLEFIELD, new InvestigateEffect(), false); + addWatcher(new InvestigatedWatcher()); } public ErdwalIlluminatorTriggeredAbility(final ErdwalIlluminatorTriggeredAbility ability) { @@ -126,9 +127,9 @@ class InvestigatedWatcher extends Watcher { public void watch(GameEvent event, Game game) { if (EventType.INVESTIGATED.equals(event.getType())) { if (!timesInvestigated.containsKey(event.getPlayerId())) { - timesInvestigated.put(event.getPlayerId(), timesInvestigated.get(event.getPlayerId()) + 1); - } else { timesInvestigated.put(event.getPlayerId(), 1); + } else { + timesInvestigated.put(event.getPlayerId(), timesInvestigated.get(event.getPlayerId()) + 1); } } } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/soi/ErdwalIlluminatorTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/soi/ErdwalIlluminatorTest.java new file mode 100644 index 00000000000..de915c58289 --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/soi/ErdwalIlluminatorTest.java @@ -0,0 +1,78 @@ + +package org.mage.test.cards.single.soi; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * + * @author halljared + */ +public class ErdwalIlluminatorTest extends CardTestPlayerBase { + /** + * Whenever you investigate for the first time each turn, investigate an additional time. + */ + @Test + public void investigateFirstTimeTriggers() { + + addCard(Zone.HAND, playerA, "Thraben Inspector", 1); + addCard(Zone.BATTLEFIELD, playerA, "Erdwal Illuminator", 1); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 2); + addCard(Zone.BATTLEFIELD, playerA, "Island", 2); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Thraben Inspector"); + setStopAt(2, PhaseStep.POSTCOMBAT_MAIN); + execute(); + + assertPermanentCount(playerA, "Clue", 2); + } + + @Test + public void ignoresOpponentInvestigateTriggers() { + + addCard(Zone.HAND, playerB, "Thraben Inspector", 1); + addCard(Zone.BATTLEFIELD, playerA, "Erdwal Illuminator", 1); + addCard(Zone.BATTLEFIELD, playerB, "Plains", 2); + addCard(Zone.BATTLEFIELD, playerB, "Island", 2); + + castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Thraben Inspector"); + setStopAt(3, PhaseStep.POSTCOMBAT_MAIN); + execute(); + + assertPermanentCount(playerB, "Clue", 1); + } + + @Test + public void ignoresSecondInvestigateTriggers() { + + addCard(Zone.HAND, playerA, "Thraben Inspector", 2); + addCard(Zone.BATTLEFIELD, playerA, "Erdwal Illuminator", 1); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 2); + addCard(Zone.BATTLEFIELD, playerA, "Island", 2); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Thraben Inspector"); + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Thraben Inspector"); + setStopAt(2, PhaseStep.POSTCOMBAT_MAIN); + execute(); + + assertPermanentCount(playerA, "Clue", 3); + } + + @Test + public void separateTurnsInvestigateTriggers() { + + addCard(Zone.HAND, playerA, "Thraben Inspector", 2); + addCard(Zone.BATTLEFIELD, playerA, "Erdwal Illuminator", 1); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 2); + addCard(Zone.BATTLEFIELD, playerA, "Island", 2); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Thraben Inspector"); + castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Thraben Inspector"); + setStopAt(4, PhaseStep.POSTCOMBAT_MAIN); + execute(); + + assertPermanentCount(playerA, "Clue", 4); + } +}