From 2ecadbc30b64dc79fec928a2ab707d94f9ec5982 Mon Sep 17 00:00:00 2001 From: drmDev Date: Fri, 15 Jul 2016 21:15:04 -0400 Subject: [PATCH] Tamiyo fixes #2078 --- .../eldritchmoon/TamiyoFieldResearcher.java | 18 ++++++++---- .../test/cards/planeswalker/TamiyoTest.java | 29 ++++++++++++++----- 2 files changed, 35 insertions(+), 12 deletions(-) diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/TamiyoFieldResearcher.java b/Mage.Sets/src/mage/sets/eldritchmoon/TamiyoFieldResearcher.java index c79567d3a14..3926d0c00a4 100644 --- a/Mage.Sets/src/mage/sets/eldritchmoon/TamiyoFieldResearcher.java +++ b/Mage.Sets/src/mage/sets/eldritchmoon/TamiyoFieldResearcher.java @@ -143,7 +143,7 @@ class TamiyoFieldResearcherEffect1 extends OneShotEffect { creatures.add(new MageObjectReference(uuid, game)); } if (!creatures.isEmpty()) { - DelayedTriggeredAbility delayedAbility = new TamiyoFieldResearcherDelayedTriggeredAbility(creatures); + DelayedTriggeredAbility delayedAbility = new TamiyoFieldResearcherDelayedTriggeredAbility(creatures, game.getTurnNum()); game.addDelayedTriggeredAbility(delayedAbility, source); } return true; @@ -153,17 +153,20 @@ class TamiyoFieldResearcherEffect1 extends OneShotEffect { } class TamiyoFieldResearcherDelayedTriggeredAbility extends DelayedTriggeredAbility { - + + private int startingTurn; private List creatures; - public TamiyoFieldResearcherDelayedTriggeredAbility(List creatures) { - super(new DrawCardSourceControllerEffect(1), Duration.UntilYourNextTurn, false); + public TamiyoFieldResearcherDelayedTriggeredAbility(List creatures, int startingTurn) { + super(new DrawCardSourceControllerEffect(1), Duration.Custom, false); this.creatures = creatures; - } + this.startingTurn = startingTurn; + } public TamiyoFieldResearcherDelayedTriggeredAbility(final TamiyoFieldResearcherDelayedTriggeredAbility ability) { super(ability); this.creatures = ability.creatures; + this.startingTurn = ability.startingTurn; } @Override @@ -181,6 +184,11 @@ class TamiyoFieldResearcherDelayedTriggeredAbility extends DelayedTriggeredAbili } return false; } + + @Override + public boolean isInactive(Game game) { + return game.getActivePlayerId().equals(getControllerId()) && game.getTurnNum() != startingTurn; + } @Override public TamiyoFieldResearcherDelayedTriggeredAbility copy() { diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/planeswalker/TamiyoTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/planeswalker/TamiyoTest.java index 4317f8ed8f3..40ca4036d38 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/planeswalker/TamiyoTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/planeswalker/TamiyoTest.java @@ -89,9 +89,14 @@ public class TamiyoTest extends CardTestPlayerBase { // Tamiyo, Field Researcher {1}{G}{W}{U} - 4 loyalty // +1: Choose up to two target creatures. Until your next turn, // whenever either of those creatures deals combat damage, you draw a card. - addCard(Zone.BATTLEFIELD, playerA, "Tamiyo, Field Researcher", 1); - + addCard(Zone.HAND, playerA, "Tamiyo, Field Researcher", 1); + addCard(Zone.BATTLEFIELD, playerA, "Forest", 1); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 1); + addCard(Zone.BATTLEFIELD, playerA, "Island", 2); addCard(Zone.BATTLEFIELD, playerA, "Bronze Sable", 1); // 2/1 + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Tamiyo, Field Researcher"); + activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "+1: Choose up to two"); addTarget(playerA, "Bronze Sable"); @@ -113,10 +118,15 @@ public class TamiyoTest extends CardTestPlayerBase { // Tamiyo, Field Researcher {1}{G}{W}{U} - 4 loyalty // +1: Choose up to two target creatures. Until your next turn, // whenever either of those creatures deals combat damage, you draw a card. - addCard(Zone.BATTLEFIELD, playerA, "Tamiyo, Field Researcher", 1); - + addCard(Zone.HAND, playerA, "Tamiyo, Field Researcher", 1); + addCard(Zone.BATTLEFIELD, playerA, "Forest", 1); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 1); + addCard(Zone.BATTLEFIELD, playerA, "Island", 2); addCard(Zone.BATTLEFIELD, playerA, "Bronze Sable", 1); // 2/1 addCard(Zone.BATTLEFIELD, playerA, "Sylvan Advocate", 1); // 2/3 + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Tamiyo, Field Researcher"); + activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "+1: Choose up to two"); addTarget(playerA, "Bronze Sable^Sylvan Advocate"); @@ -139,10 +149,15 @@ public class TamiyoTest extends CardTestPlayerBase { // Tamiyo, Field Researcher {1}{G}{W}{U} - 4 loyalty // +1: Choose up to two target creatures. Until your next turn, // whenever either of those creatures deals combat damage, you draw a card. - addCard(Zone.BATTLEFIELD, playerA, "Tamiyo, Field Researcher", 1); - + addCard(Zone.HAND, playerA, "Tamiyo, Field Researcher", 1); + addCard(Zone.BATTLEFIELD, playerA, "Forest", 1); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 1); + addCard(Zone.BATTLEFIELD, playerA, "Island", 2); addCard(Zone.BATTLEFIELD, playerA, "Sylvan Advocate", 1); // 2/3 addCard(Zone.BATTLEFIELD, playerB, "Memnite", 1); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Tamiyo, Field Researcher"); + activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "+1: Choose up to two"); addTarget(playerA, "Sylvan Advocate"); @@ -172,7 +187,7 @@ public class TamiyoTest extends CardTestPlayerBase { addCard(Zone.HAND, playerA, "Tamiyo, Field Researcher", 1); addCard(Zone.BATTLEFIELD, playerA, "Forest", 1); addCard(Zone.BATTLEFIELD, playerA, "Plains", 1); - addCard(Zone.BATTLEFIELD, playerA, "Island", 2); + addCard(Zone.BATTLEFIELD, playerA, "Island", 2); addCard(Zone.BATTLEFIELD, playerA, "Sylvan Advocate", 1); // 2/3 addCard(Zone.HAND, playerB, "Hero's Downfall", 1);