diff --git a/Mage.Sets/src/mage/cards/r/ReflectingPool.java b/Mage.Sets/src/mage/cards/r/ReflectingPool.java index f71b08aee0..1b770ae3d7 100644 --- a/Mage.Sets/src/mage/cards/r/ReflectingPool.java +++ b/Mage.Sets/src/mage/cards/r/ReflectingPool.java @@ -206,13 +206,17 @@ class ReflectingPoolEffect extends ManaEffect { } private Mana getManaTypes(Game game, Ability source) { - List<Permanent> lands = game.getBattlefield().getActivePermanents(filter, source.getControllerId(), game); Mana types = new Mana(); + if (game == null || game.getPhase() == null) { + return types; + } + List<Permanent> lands = game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game); for (Permanent land : lands) { Abilities<Ability> manaAbilities = land.getAbilities().getManaAbilities(Zone.BATTLEFIELD); for (Ability basicAbility : manaAbilities) { ManaAbility ability = (ManaAbility) basicAbility; - if (!ability.equals(source) && ability.definesMana(game)) { + if (!(ability instanceof ReflectingPoolManaAbility) // can't get types from own ability class + && ability.definesMana(game)) { for (Mana netMana : ability.getNetMana(game)) { types.add(netMana); if (netMana.getAny() > 0) { 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 f7f8cf2f87..32c01d519a 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 @@ -126,7 +126,7 @@ public class ReflectingPoolTest extends CardTestPlayerBase { execute(); ManaOptions options = playerA.getAvailableManaTest(currentGame); - Assert.assertEquals("Player should be able to create 2 red mana", "{R}{R}{R}", options.get(0).toString()); + Assert.assertEquals("Player should be able to create 3 red mana", "{R}{R}{R}", options.get(0).toString()); } diff --git a/Mage/src/main/java/mage/abilities/mana/AnyColorLandsProduceManaAbility.java b/Mage/src/main/java/mage/abilities/mana/AnyColorLandsProduceManaAbility.java index fa9127144e..2337711eeb 100644 --- a/Mage/src/main/java/mage/abilities/mana/AnyColorLandsProduceManaAbility.java +++ b/Mage/src/main/java/mage/abilities/mana/AnyColorLandsProduceManaAbility.java @@ -29,8 +29,6 @@ package mage.abilities.mana; import java.util.ArrayList; import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; import mage.Mana; import mage.abilities.Abilities; import mage.abilities.Ability; @@ -163,7 +161,7 @@ class AnyColorLandsProduceManaEffect extends ManaEffect { } private Mana getManaTypes(Game game, Ability source) { - Logger.getLogger(this.getClass().getName()).log(Level.WARNING, "needed to identify endless loop causing cards: {0}", source.getSourceObject(game).getName()); + // Logger.getLogger(this.getClass().getName()).log(Level.WARNING, "needed to identify endless loop causing cards: {0}", source.getSourceObject(game).getName()); List<Permanent> lands = game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game); Mana types = new Mana(); for (Permanent land : lands) { diff --git a/Mage/src/main/java/mage/game/permanent/PermanentCard.java b/Mage/src/main/java/mage/game/permanent/PermanentCard.java index ee81057b95..038f4869ea 100644 --- a/Mage/src/main/java/mage/game/permanent/PermanentCard.java +++ b/Mage/src/main/java/mage/game/permanent/PermanentCard.java @@ -116,7 +116,7 @@ public class PermanentCard extends PermanentImpl { this.cardType.clear(); this.cardType.addAll(card.getCardType()); this.color = card.getColor(null).copy(); - this.frameColor = card.getFrameColor(null).copy(); + this.frameColor = card.getFrameColor(game).copy(); this.frameStyle = card.getFrameStyle(); this.manaCost = card.getManaCost().copy(); if (card instanceof PermanentCard) {