From 8d6d8d25e57300fd70554ca2d064c833beefa131 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Fri, 16 Dec 2016 18:38:40 +0100 Subject: [PATCH] * Reflecting Pool - Fixed that mana from dynamic mana abilities were not taken into account (e.g. Gaea's Cradle or Serra's Sanctum). --- Mage.Sets/src/mage/cards/g/GaeasCradle.java | 15 ++++++------- .../test/cards/mana/ReflectingPoolTest.java | 21 +++++++++++++++++++ .../abilities/mana/DynamicManaAbility.java | 5 +++++ 3 files changed, 34 insertions(+), 7 deletions(-) diff --git a/Mage.Sets/src/mage/cards/g/GaeasCradle.java b/Mage.Sets/src/mage/cards/g/GaeasCradle.java index 076afb7897f..f5251cee50a 100644 --- a/Mage.Sets/src/mage/cards/g/GaeasCradle.java +++ b/Mage.Sets/src/mage/cards/g/GaeasCradle.java @@ -24,17 +24,16 @@ * The views and conclusions contained in the software and documentation are those of the * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. -*/ - + */ package mage.cards.g; import java.util.UUID; -import mage.constants.CardType; import mage.Mana; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.mana.DynamicManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -42,19 +41,21 @@ import mage.filter.predicate.mageobject.CardTypePredicate; * * @author Backfir3 */ - public class GaeasCradle extends CardImpl { - private static final FilterControlledPermanent filter = new FilterControlledPermanent("creature you control");; + private static final FilterControlledPermanent filter = new FilterControlledPermanent("creature you control"); + + ; static { filter.add(new CardTypePredicate(CardType.CREATURE)); } public GaeasCradle(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.LAND},""); + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); this.supertype.add("Legendary"); + // {T}: Add {G} to your mana pool for each creature you control. DynamicManaAbility ability = new DynamicManaAbility(Mana.GreenMana(1), new PermanentsOnBattlefieldCount(filter)); this.addAbility(ability); } @@ -67,4 +68,4 @@ public class GaeasCradle extends CardImpl { public GaeasCradle copy() { return new GaeasCradle(this); } -} \ No newline at end of file +} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/mana/ReflectingPoolTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/mana/ReflectingPoolTest.java index b55de2a10f7..1d7ed576148 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/mana/ReflectingPoolTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/mana/ReflectingPoolTest.java @@ -89,4 +89,25 @@ public class ReflectingPoolTest extends CardTestPlayerBase { Assert.assertEquals("Player should be able to create 2 red mana", "{R}{R}", options.get(0).toString()); } + + /** + * Reflecting Pool does not see Gaea's Cradle or Serra's Sanctum as + * producing mana + */ + @Test + public void testWithGaeasCradle() { + addCard(Zone.BATTLEFIELD, playerA, "Silvercoat Lion", 1); + + // {T}: Add to your mana pool one mana of any type that a land you control could produce. + addCard(Zone.BATTLEFIELD, playerA, "Reflecting Pool", 1); + // {T}: Add {G} to your mana pool for each creature you control. + addCard(Zone.BATTLEFIELD, playerA, "Gaea's Cradle", 1); + + setStopAt(1, PhaseStep.PRECOMBAT_MAIN); + execute(); + + ManaOptions options = playerA.getAvailableManaTest(currentGame); + Assert.assertEquals("Player should be able to create 2 red mana", "{G}{G}", options.get(0).toString()); + + } } diff --git a/Mage/src/main/java/mage/abilities/mana/DynamicManaAbility.java b/Mage/src/main/java/mage/abilities/mana/DynamicManaAbility.java index 0412828a298..cb353555a8d 100644 --- a/Mage/src/main/java/mage/abilities/mana/DynamicManaAbility.java +++ b/Mage/src/main/java/mage/abilities/mana/DynamicManaAbility.java @@ -115,4 +115,9 @@ public class DynamicManaAbility extends ActivatedManaAbilityImpl { } return newNetMana; } + + @Override + public boolean definesMana() { + return true; + } }