diff --git a/Mage.Sets/src/mage/cards/a/AcademyRuins.java b/Mage.Sets/src/mage/cards/a/AcademyRuins.java index 6c3f06bd42..fc58483d3a 100644 --- a/Mage.Sets/src/mage/cards/a/AcademyRuins.java +++ b/Mage.Sets/src/mage/cards/a/AcademyRuins.java @@ -26,9 +26,9 @@ public final class AcademyRuins extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); addSuperType(SuperType.LEGENDARY); - // {tap}: Add {C}. + // {T}: Add {C}. this.addAbility(new ColorlessManaAbility()); - // {1}{U}, {tap}: Put target artifact card from your graveyard on top of your library. + // {1}{U}, {T}: Put target artifact card from your graveyard on top of your library. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(true), new ManaCostsImpl("{1}{U}")); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetCardInYourGraveyard(new FilterArtifactCard("artifact card from your graveyard"))); 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 c1b6021bc3..6778a29a28 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 @@ -248,7 +248,7 @@ public class ReflectingPoolTest extends CardTestPlayerBase { public void testReflectingPoolAnyManaTapped() { // any mana source with tapped must allow use any too addCard(Zone.BATTLEFIELD, playerA, "Plains", 1); - addCard(Zone.BATTLEFIELD, playerA, "City of Brass", 1); + addCard(Zone.BATTLEFIELD, playerA, "City of Brass", 1); addCard(Zone.BATTLEFIELD, playerA, "Reflecting Pool", 1); addCard(Zone.BATTLEFIELD, playerA, "Upwelling", 1); @@ -266,4 +266,30 @@ public class ReflectingPoolTest extends CardTestPlayerBase { assertTapped("Reflecting Pool", false); Assert.assertEquals(1, playerA.getManaPool().get(ManaType.BLACK)); } + + /** + * I only control 3 lands, a Triome, a Reflecting Pool, and a Mana + * Confluence. The Reflecting Pool is able to tap for colorless, but it + * should not be able to. + * + * https://blogs.magicjudges.org/rulestips/2012/09/you-have-to-name-a-color-when-you-add-one-mana-of-any-color-to-your-mana-pool/ + */ + @Test + public void testWithTriomeAndManaConfluence() { + // {T}: Add {C}. + // {1}{U}, {T}: Put target artifact card from your graveyard on top of your library. + addCard(Zone.BATTLEFIELD, playerA, "Academy Ruins", 1); + // {T}, Pay 1 life: Add one mana of any color. + addCard(Zone.BATTLEFIELD, playerA, "Mana Confluence", 1); + // {T}: Add one mana of any type that a land you control could produce. + addCard(Zone.BATTLEFIELD, playerA, "Reflecting Pool", 1); + + setStopAt(1, PhaseStep.PRECOMBAT_MAIN); + execute(); + + ManaOptions options = playerA.getAvailableManaTest(currentGame); + Assert.assertEquals("Player A should be able to create only 3 different mana options", 2, options.size()); + assertManaOptions("{C}{C}{Any}", options); + assertManaOptions("{C}{Any}{Any}", options); + } } diff --git a/Mage/src/main/java/mage/abilities/mana/AnyColorLandsProduceManaAbility.java b/Mage/src/main/java/mage/abilities/mana/AnyColorLandsProduceManaAbility.java index 3df21cd459..981e5ac83d 100644 --- a/Mage/src/main/java/mage/abilities/mana/AnyColorLandsProduceManaAbility.java +++ b/Mage/src/main/java/mage/abilities/mana/AnyColorLandsProduceManaAbility.java @@ -140,16 +140,12 @@ class AnyColorLandsProduceManaEffect extends ManaEffect { if (!onlyColors && types.getColorless() > 0) { choice.getChoices().add("Colorless"); } - if (types.getAny() > 0) { + if (types.getAny() > 0) { // Only any Color choice.getChoices().add("Black"); choice.getChoices().add("Red"); choice.getChoices().add("Blue"); choice.getChoices().add("Green"); choice.getChoices().add("White"); - if (!onlyColors) { - choice.getChoices().add("Colorless"); - } - } if (!choice.getChoices().isEmpty()) { Player player = game.getPlayer(source.getControllerId()); @@ -199,7 +195,7 @@ class AnyColorLandsProduceManaEffect extends ManaEffect { for (Permanent land : lands) { Abilities mana = land.getAbilities().getActivatedManaAbilities(Zone.BATTLEFIELD); for (ActivatedManaAbilityImpl ability : mana) { - if (!ability.equals(source) && ability.definesMana(game)) { + if (!ability.getSourceId().equals(source.getSourceId()) && ability.definesMana(game)) { for (Mana netMana : ability.getNetMana(game)) { types.add(netMana); }