diff --git a/Mage.Sets/src/mage/sets/avacynrestored/CavernOfSouls.java b/Mage.Sets/src/mage/sets/avacynrestored/CavernOfSouls.java index 859098b82fa..bb147a16330 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/CavernOfSouls.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/CavernOfSouls.java @@ -34,7 +34,6 @@ import mage.ConditionalMana; import mage.MageObject; import mage.Mana; import mage.abilities.Ability; -import mage.abilities.SpellAbility; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.common.TapSourceCost; diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/EldraziTemple.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/EldraziTemple.java index 2e689706b11..d677a7c819f 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/EldraziTemple.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/EldraziTemple.java @@ -36,9 +36,10 @@ import mage.MageObject; import mage.Mana; import mage.abilities.Ability; import mage.abilities.condition.Condition; -import mage.abilities.effects.common.BasicManaEffect; -import mage.abilities.mana.BasicManaAbility; +import mage.abilities.costs.common.TapSourceCost; import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.ConditionalColorlessManaAbility; +import mage.abilities.mana.builder.ConditionalManaBuilder; import mage.cards.CardImpl; import mage.game.Game; @@ -52,8 +53,11 @@ public class EldraziTemple extends CardImpl { super(ownerId, 227, "Eldrazi Temple", Rarity.RARE, new CardType[]{ CardType.LAND }, null); this.expansionSetCode = "ROE"; + // {T}: Add {1} to your mana pool. this.addAbility(new ColorlessManaAbility()); - this.addAbility(new EldraziTempleManaAbility()); + + // {T}: Add {2} to your mana pool. Spend this mana only to cast colorless Eldrazi spells or activate abilities of colorless Eldrazi. + this.addAbility(new ConditionalColorlessManaAbility(new TapSourceCost(), 2, new EldraziTempleManaBuilder())); } public EldraziTemple(final EldraziTemple card) { @@ -66,39 +70,32 @@ public class EldraziTemple extends CardImpl { } } -class EldraziTempleManaAbility extends BasicManaAbility { +class EldraziTempleManaBuilder extends ConditionalManaBuilder { - EldraziTempleManaAbility ( ) { - super(new BasicManaEffect(new EldraziConditionalMana())); - this.netMana.add(new Mana(0,0,0,0,0,2,0)); - } - - EldraziTempleManaAbility ( EldraziTempleManaAbility ability ) { - super(ability); + @Override + public ConditionalMana build(Object... options) { + return new EldraziTempleConditionalMana(this.mana); } @Override - public EldraziTempleManaAbility copy ( ) { - return new EldraziTempleManaAbility(this); + public String getRule() { + return "Spend this mana only to cast colorless Eldrazi spells or activate abilities of colorless Eldrazi"; } } -class EldraziConditionalMana extends ConditionalMana { +class EldraziTempleConditionalMana extends ConditionalMana { - public EldraziConditionalMana() { - super(Mana.ColorlessMana(2)); - staticText = "Spend this mana only to cast colorless Eldrazi spells or activate abilities of colorless Eldrazi"; - addCondition(new EldraziManaCondition()); + public EldraziTempleConditionalMana(Mana mana) { + super(mana); + addCondition(new EldraziTempleCondition()); } } -class EldraziManaCondition implements Condition { +class EldraziTempleCondition implements Condition { + @Override public boolean apply(Game game, Ability source) { MageObject object = game.getObject(source.getSourceId()); - if (object != null && object.hasSubtype("Eldrazi") && !object.getColor().hasColor()) { - return true; - } - return false; + return object != null && object.hasSubtype("Eldrazi") && object.getColor().isColorless(); } } diff --git a/Mage.Tests/src/test/java/org/mage/test/utils/ManaOptionsTest.java b/Mage.Tests/src/test/java/org/mage/test/utils/ManaOptionsTest.java index eaf0af7d8b2..b1e78318af3 100644 --- a/Mage.Tests/src/test/java/org/mage/test/utils/ManaOptionsTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/utils/ManaOptionsTest.java @@ -35,7 +35,8 @@ import org.junit.Test; import org.mage.test.serverside.base.CardTestPlayerBase; /** - * + * This test checks if the calculated possible mana options are correct related to the given mana sources available. + * * @author LevelX2 */ public class ManaOptionsTest extends CardTestPlayerBase { diff --git a/Mage.Tests/src/test/java/org/mage/test/utils/ManaUtilTest.java b/Mage.Tests/src/test/java/org/mage/test/utils/ManaUtilTest.java index af2eac6e4af..07bc006edf3 100644 --- a/Mage.Tests/src/test/java/org/mage/test/utils/ManaUtilTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/utils/ManaUtilTest.java @@ -46,6 +46,8 @@ public class ManaUtilTest extends CardTestPlayerBase { testManaToPayVsLand("{1}{R}", "Cavern of Souls", 2, 2); // can't auto choose to pay testManaToPayVsLand("{2}", "Cavern of Souls", 2, 2); // can't auto choose to pay + testManaToPayVsLand("{2}", "Eldrazi Temple", 2, 2); // can't auto choose to pay + // hybrid mana testManaToPayVsLand("{W/R}{W/R}{W/R}", "Sacred Foundry", 2, 1); // auto choose for hybrid mana: choose any testManaToPayVsLand("{R}{W/R}", "Sacred Foundry", 2, RedManaAbility.class); // auto choose for hybrid mana: we should choose {R} @@ -122,7 +124,7 @@ public class ManaUtilTest extends CardTestPlayerBase { * @return */ private HashMap getManaAbilities(Card card) { - HashMap useableAbilities = new LinkedHashMap(); + HashMap useableAbilities = new LinkedHashMap<>(); for (Ability ability: card.getAbilities()) { if (ability instanceof ManaAbility) { ability.newId(); // we need to assign id manually as we are not in game diff --git a/Mage/src/mage/abilities/effects/common/AddConditionalColorlessManaEffect.java b/Mage/src/mage/abilities/effects/common/AddConditionalColorlessManaEffect.java index 42d9acb1b85..495d234b7a5 100644 --- a/Mage/src/mage/abilities/effects/common/AddConditionalColorlessManaEffect.java +++ b/Mage/src/mage/abilities/effects/common/AddConditionalColorlessManaEffect.java @@ -26,7 +26,7 @@ public class AddConditionalColorlessManaEffect extends ManaEffect { super(); this.amount = amount; this.manaBuilder = manaBuilder; - staticText = "Add " + amount + " to your mana pool. " + manaBuilder.getRule(); + staticText = "Add {" + amount + "} to your mana pool. " + manaBuilder.getRule(); } public AddConditionalColorlessManaEffect(final AddConditionalColorlessManaEffect effect) {