diff --git a/Mage.Sets/src/mage/cards/a/AxebaneGuardian.java b/Mage.Sets/src/mage/cards/a/AxebaneGuardian.java
index 1e8b0d3b91..38469e3dcd 100644
--- a/Mage.Sets/src/mage/cards/a/AxebaneGuardian.java
+++ b/Mage.Sets/src/mage/cards/a/AxebaneGuardian.java
@@ -65,8 +65,8 @@ public class AxebaneGuardian extends CardImpl {
this.addAbility(DefenderAbility.getInstance());
// {tap}: Add X mana in any combination of colors to your mana pool, where X is the number of creatures with defender you control.
- this.addAbility(new DynamicManaAbility(new Mana(0,0,0,0,0,0,1, 0), new PermanentsOnBattlefieldCount(filter), new TapSourceCost(),
- "Add X mana in any combination of colors to your mana pool, where X is the number of creatures with defender you control."));
+ this.addAbility(new DynamicManaAbility(new Mana(0,0,0,0,0,0,1, 0), new PermanentsOnBattlefieldCount(filter),
+ "Add X mana in any combination of colors to your mana pool, where X is the number of creatures with defender you control."));
}
public AxebaneGuardian(final AxebaneGuardian card) {
diff --git a/Mage.Sets/src/mage/cards/b/BasalThrull.java b/Mage.Sets/src/mage/cards/b/BasalThrull.java
index fbc9f91344..2af03ae819 100644
--- a/Mage.Sets/src/mage/cards/b/BasalThrull.java
+++ b/Mage.Sets/src/mage/cards/b/BasalThrull.java
@@ -33,7 +33,6 @@ import mage.Mana;
import mage.abilities.Ability;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.common.TapSourceCost;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -53,7 +52,7 @@ public class BasalThrull extends CardImpl {
this.toughness = new MageInt(2);
// {T}, Sacrifice Basal Thrull: Add {B}{B} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(new Mana(0, 0, 0, 0, 2, 0, 0, 0)), new TapSourceCost());
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(2), new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/b/BasaltMonolith.java b/Mage.Sets/src/mage/cards/b/BasaltMonolith.java
index c0352e347c..0d55b96e07 100644
--- a/Mage.Sets/src/mage/cards/b/BasaltMonolith.java
+++ b/Mage.Sets/src/mage/cards/b/BasaltMonolith.java
@@ -53,7 +53,7 @@ public class BasaltMonolith extends CardImpl {
// Basalt Monolith doesn't untap during your untap step.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect()));
// {tap}: Add {C}{C}{C} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 0, 0, 0, 3), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(3), new TapSourceCost()));
// {3}: Untap Basalt Monolith.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new GenericManaCost(3)));
}
diff --git a/Mage.Sets/src/mage/cards/b/BloodVassal.java b/Mage.Sets/src/mage/cards/b/BloodVassal.java
index 492ee056b6..ef16ea0e6d 100644
--- a/Mage.Sets/src/mage/cards/b/BloodVassal.java
+++ b/Mage.Sets/src/mage/cards/b/BloodVassal.java
@@ -33,7 +33,6 @@ import mage.constants.Zone;
import mage.MageInt;
import mage.Mana;
import mage.abilities.costs.common.SacrificeSourceCost;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -53,7 +52,7 @@ public class BloodVassal extends CardImpl {
this.toughness = new MageInt(2);
// Sacrifice Blood Vassal: Add {B}{B} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(Mana.BlackMana(2)), new SacrificeSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(2), new SacrificeSourceCost()));
}
public BloodVassal(final BloodVassal card) {
diff --git a/Mage.Sets/src/mage/cards/b/BogWitch.java b/Mage.Sets/src/mage/cards/b/BogWitch.java
index 2e3584e5f0..4d446b1d5b 100644
--- a/Mage.Sets/src/mage/cards/b/BogWitch.java
+++ b/Mage.Sets/src/mage/cards/b/BogWitch.java
@@ -34,7 +34,6 @@ import mage.abilities.Ability;
import mage.abilities.costs.common.DiscardCardCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -55,7 +54,7 @@ public class BogWitch extends CardImpl {
this.toughness = new MageInt(1);
// {B}, {tap}, Discard a card: Add {B}{B}{B} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(new Mana(0, 0, 0, 0, 3, 0, 0, 0)), new ManaCostsImpl("{B}"));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(3), new ManaCostsImpl("{B}"));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/b/BoseijuWhoSheltersAll.java b/Mage.Sets/src/mage/cards/b/BoseijuWhoSheltersAll.java
index f04dc8d2c5..1604850763 100644
--- a/Mage.Sets/src/mage/cards/b/BoseijuWhoSheltersAll.java
+++ b/Mage.Sets/src/mage/cards/b/BoseijuWhoSheltersAll.java
@@ -67,7 +67,7 @@ public class BoseijuWhoSheltersAll extends CardImpl {
this.addAbility(new EntersBattlefieldTappedAbility());
// {tap}, Pay 2 life: Add {C} to your mana pool. If that mana is spent on an instant or sorcery spell, that spell can't be countered by spells or abilities.
- Mana mana = new Mana(0, 0, 0, 0, 0, 0, 0, 1);
+ Mana mana = Mana.ColorlessMana(1);
mana.setFlag(true); // used to indicate this mana ability
SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, mana, new TapSourceCost());
ability.addCost(new PayLifeCost(2));
diff --git a/Mage.Sets/src/mage/cards/c/CabalRitual.java b/Mage.Sets/src/mage/cards/c/CabalRitual.java
index 41e5580d37..ce54456006 100644
--- a/Mage.Sets/src/mage/cards/c/CabalRitual.java
+++ b/Mage.Sets/src/mage/cards/c/CabalRitual.java
@@ -49,8 +49,8 @@ public class CabalRitual extends CardImpl {
// Add {B}{B}{B} to your mana pool.
// Threshold — Add {B}{B}{B}{B}{B} to your mana pool instead if seven or more cards are in your graveyard.
this.getSpellAbility().addEffect(new ConditionalManaEffect(
- new BasicManaEffect(new Mana(0, 0, 0, 0, 5, 0, 0, 0)),
- new BasicManaEffect(new Mana(0, 0, 0, 0, 3, 0, 0, 0)),
+ new BasicManaEffect(Mana.BlackMana(5)),
+ new BasicManaEffect(Mana.BlackMana(3)),
new CardsInControllerGraveCondition(7),
"Add {B}{B}{B} to your mana pool.
Threshold - Add {B}{B}{B}{B}{B} to your mana pool instead if seven or more cards are in your graveyard"));
}
diff --git a/Mage.Sets/src/mage/cards/c/Cathodion.java b/Mage.Sets/src/mage/cards/c/Cathodion.java
index 79db38278a..892804ee33 100644
--- a/Mage.Sets/src/mage/cards/c/Cathodion.java
+++ b/Mage.Sets/src/mage/cards/c/Cathodion.java
@@ -47,7 +47,7 @@ public class Cathodion extends CardImpl {
this.subtype.add("Construct");
this.power = new MageInt(3);
this.toughness = new MageInt(3);
- this.addAbility(new DiesTriggeredAbility(new BasicManaEffect(new Mana(0, 0, 0, 0, 0, 0, 0, 3)), false));
+ this.addAbility(new DiesTriggeredAbility(new BasicManaEffect(Mana.ColorlessMana(3)), false));
}
public Cathodion(final Cathodion card) {
diff --git a/Mage.Sets/src/mage/cards/c/CircleOfElders.java b/Mage.Sets/src/mage/cards/c/CircleOfElders.java
index f0191bb77b..79581325e7 100644
--- a/Mage.Sets/src/mage/cards/c/CircleOfElders.java
+++ b/Mage.Sets/src/mage/cards/c/CircleOfElders.java
@@ -61,7 +61,7 @@ public class CircleOfElders extends CardImpl {
// Formidable - {T}: Add {C}{C}{C} to your mana pool. Activate this only if creatures you control have total power 8 or greater.
Ability ability = new ActivateIfConditionManaAbility(
Zone.BATTLEFIELD,
- new BasicManaEffect(new Mana(0, 0, 0, 0, 0, 0, 0, 3)),
+ new BasicManaEffect(Mana.ColorlessMana(3)),
new TapSourceCost(),
FormidableCondition.getInstance());
ability.setAbilityWord(AbilityWord.FORMIDABLE);
diff --git a/Mage.Sets/src/mage/cards/c/CoalStoker.java b/Mage.Sets/src/mage/cards/c/CoalStoker.java
index 34e9262fa1..8692968bda 100644
--- a/Mage.Sets/src/mage/cards/c/CoalStoker.java
+++ b/Mage.Sets/src/mage/cards/c/CoalStoker.java
@@ -53,7 +53,7 @@ public class CoalStoker extends CardImpl {
// When Coal Stoker enters the battlefield, if you cast it from your hand, add {R}{R}{R} to your mana pool.
this.addAbility(new ConditionalTriggeredAbility(
- new EntersBattlefieldTriggeredAbility(new BasicManaEffect(new Mana(3, 0, 0, 0, 0, 0, 0, 0)), false),
+ new EntersBattlefieldTriggeredAbility(new BasicManaEffect(Mana.RedMana(3)), false),
new CastFromHandSourceCondition(),
"When {this} enters the battlefield, if you cast it from your hand, add {R}{R}{R} to your mana pool."),
new CastFromHandWatcher());
diff --git a/Mage.Sets/src/mage/cards/c/CoalitionRelic.java b/Mage.Sets/src/mage/cards/c/CoalitionRelic.java
index 5c8943206b..b9ae158113 100644
--- a/Mage.Sets/src/mage/cards/c/CoalitionRelic.java
+++ b/Mage.Sets/src/mage/cards/c/CoalitionRelic.java
@@ -107,17 +107,7 @@ class CoalitionRelicEffect extends OneShotEffect {
}
player.choose(outcome, choice, game);
}
- if (choice.getColor().isBlack()) {
- mana.increaseBlack();
- } else if (choice.getColor().isBlue()) {
- mana.increaseBlue();
- } else if (choice.getColor().isRed()) {
- mana.increaseRed();
- } else if (choice.getColor().isGreen()) {
- mana.increaseGreen();
- } else if (choice.getColor().isWhite()) {
- mana.increaseWhite();
- }
+ choice.increaseMana(mana);
choice.clearChoice();
}
player.getManaPool().addMana(mana, game, source);
diff --git a/Mage.Sets/src/mage/cards/c/CullingTheWeak.java b/Mage.Sets/src/mage/cards/c/CullingTheWeak.java
index e393f01b8f..4ba307f21c 100644
--- a/Mage.Sets/src/mage/cards/c/CullingTheWeak.java
+++ b/Mage.Sets/src/mage/cards/c/CullingTheWeak.java
@@ -51,7 +51,7 @@ public class CullingTheWeak extends CardImpl {
this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(new FilterControlledCreaturePermanent("a creature"))));
// Add {B}{B}{B}{B} to your mana pool.
- this.getSpellAbility().addEffect(new BasicManaEffect(new Mana(0, 0, 0, 0, 4, 0, 0, 0)));
+ this.getSpellAbility().addEffect(new BasicManaEffect(Mana.BlackMana(4)));
}
public CullingTheWeak(final CullingTheWeak card) {
diff --git a/Mage.Sets/src/mage/cards/d/DarkRitual.java b/Mage.Sets/src/mage/cards/d/DarkRitual.java
index 5471659d1d..3776d1e2e4 100644
--- a/Mage.Sets/src/mage/cards/d/DarkRitual.java
+++ b/Mage.Sets/src/mage/cards/d/DarkRitual.java
@@ -43,7 +43,7 @@ public class DarkRitual extends CardImpl {
public DarkRitual(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{B}");
- this.getSpellAbility().addEffect(new BasicManaEffect(new Mana(0, 0, 0, 0, 3, 0, 0, 0)));
+ this.getSpellAbility().addEffect(new BasicManaEffect(Mana.BlackMana(3)));
}
public DarkRitual(final DarkRitual card) {
diff --git a/Mage.Sets/src/mage/cards/d/DawnsReflection.java b/Mage.Sets/src/mage/cards/d/DawnsReflection.java
index be7ff51afd..17f7aef0b7 100644
--- a/Mage.Sets/src/mage/cards/d/DawnsReflection.java
+++ b/Mage.Sets/src/mage/cards/d/DawnsReflection.java
@@ -140,17 +140,7 @@ class DawnsReflectionManaEffect extends ManaEffect {
while (controller.canRespond() && !controller.choose(Outcome.Benefit, choiceColor, game)) {
}
- if (choiceColor.getColor().isBlack()) {
- mana.increaseBlack();
- } else if (choiceColor.getColor().isBlue()) {
- mana.increaseBlue();
- } else if (choiceColor.getColor().isRed()) {
- mana.increaseRed();
- } else if (choiceColor.getColor().isGreen()) {
- mana.increaseGreen();
- } else if (choiceColor.getColor().isWhite()) {
- mana.increaseWhite();
- }
+ choiceColor.increaseMana(mana);
}
controller.getManaPool().addMana(mana, game, source);
diff --git a/Mage.Sets/src/mage/cards/d/Deconstruct.java b/Mage.Sets/src/mage/cards/d/Deconstruct.java
index 3815b9f101..1edd68dd50 100644
--- a/Mage.Sets/src/mage/cards/d/Deconstruct.java
+++ b/Mage.Sets/src/mage/cards/d/Deconstruct.java
@@ -55,7 +55,7 @@ public class Deconstruct extends CardImpl {
this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetPermanent(filter));
- this.getSpellAbility().addEffect(new BasicManaEffect(new Mana(0, 3, 0, 0, 0, 0, 0, 0)));
+ this.getSpellAbility().addEffect(new BasicManaEffect(Mana.GreenMana(3)));
}
public Deconstruct(final Deconstruct card) {
diff --git a/Mage.Sets/src/mage/cards/d/DesperateRitual.java b/Mage.Sets/src/mage/cards/d/DesperateRitual.java
index 9bff33b198..71b9c94f7c 100644
--- a/Mage.Sets/src/mage/cards/d/DesperateRitual.java
+++ b/Mage.Sets/src/mage/cards/d/DesperateRitual.java
@@ -47,7 +47,7 @@ public class DesperateRitual extends CardImpl {
// Add {R}{R}{R} to your mana pool.
- this.getSpellAbility().addEffect(new BasicManaEffect(new Mana(3, 0, 0, 0, 0, 0, 0, 0)));
+ this.getSpellAbility().addEffect(new BasicManaEffect(Mana.RedMana(3)));
// Splice onto Arcane {1}{R}
this.addAbility(new SpliceOntoArcaneAbility("{1}{R}"));
}
diff --git a/Mage.Sets/src/mage/cards/d/DreamstoneHedron.java b/Mage.Sets/src/mage/cards/d/DreamstoneHedron.java
index 61bfcf1323..ad24e32f98 100644
--- a/Mage.Sets/src/mage/cards/d/DreamstoneHedron.java
+++ b/Mage.Sets/src/mage/cards/d/DreamstoneHedron.java
@@ -33,9 +33,8 @@ import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
-import mage.abilities.mana.BasicManaAbility;
+import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -50,7 +49,7 @@ public class DreamstoneHedron extends CardImpl {
public DreamstoneHedron(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{6}");
- this.addAbility(new DreamstoneHedronFirstManaAbility());
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(3), new TapSourceCost()));
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new DrawCardSourceControllerEffect(3),
new GenericManaCost(3));
@@ -68,20 +67,4 @@ public class DreamstoneHedron extends CardImpl {
return new DreamstoneHedron(this);
}
- class DreamstoneHedronFirstManaAbility extends BasicManaAbility {
-
- public DreamstoneHedronFirstManaAbility() {
- super(new BasicManaEffect(new Mana(0, 0, 0, 0, 0, 0, 0, 3)));
- this.netMana.add(new Mana(0, 0, 0, 0, 0, 0, 0, 3));
- }
-
- public DreamstoneHedronFirstManaAbility(final DreamstoneHedronFirstManaAbility ability) {
- super(ability);
- }
-
- @Override
- public DreamstoneHedronFirstManaAbility copy() {
- return new DreamstoneHedronFirstManaAbility(this);
- }
- }
}
diff --git a/Mage.Sets/src/mage/cards/d/DroidFoundry.java b/Mage.Sets/src/mage/cards/d/DroidFoundry.java
index d5ee50539f..4c26d322df 100644
--- a/Mage.Sets/src/mage/cards/d/DroidFoundry.java
+++ b/Mage.Sets/src/mage/cards/d/DroidFoundry.java
@@ -51,7 +51,7 @@ public class DroidFoundry extends CardImpl {
this.addAbility(new EntersBattlefieldTappedAbility());
// When Droid Foundry enters the battlefield , add {U} to your mana pool.
- this.addAbility(new EntersBattlefieldTriggeredAbility(new AddManaToManaPoolSourceControllerEffect(new Mana(0, 0, 1, 0, 0, 0, 0, 0))));
+ this.addAbility(new EntersBattlefieldTriggeredAbility(new AddManaToManaPoolSourceControllerEffect(Mana.BlueMana(1))));
// {T}: Add {W} or {B} to you mana pool.
this.addAbility(new WhiteManaAbility());
diff --git a/Mage.Sets/src/mage/cards/d/DwarvenRuins.java b/Mage.Sets/src/mage/cards/d/DwarvenRuins.java
index 28d589c6fc..92081e999c 100644
--- a/Mage.Sets/src/mage/cards/d/DwarvenRuins.java
+++ b/Mage.Sets/src/mage/cards/d/DwarvenRuins.java
@@ -33,7 +33,6 @@ import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTappedAbility;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.common.TapSourceCost;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.mana.RedManaAbility;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
@@ -55,7 +54,7 @@ public class DwarvenRuins extends CardImpl {
// {tap}: Add {R} to your mana pool.
this.addAbility(new RedManaAbility());
// {tap}, Sacrifice Dwarven Ruins: Add {R}{R} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(Mana.RedMana(2)), new TapSourceCost());
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.RedMana(2), new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/e/EbonStronghold.java b/Mage.Sets/src/mage/cards/e/EbonStronghold.java
index 683e607a35..a4cf39efea 100644
--- a/Mage.Sets/src/mage/cards/e/EbonStronghold.java
+++ b/Mage.Sets/src/mage/cards/e/EbonStronghold.java
@@ -33,7 +33,6 @@ import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTappedAbility;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.common.TapSourceCost;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.mana.BlackManaAbility;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
@@ -55,7 +54,7 @@ public class EbonStronghold extends CardImpl {
// {tap}: Add {B} to your mana pool.
this.addAbility(new BlackManaAbility());
// {tap}, Sacrifice Ebon Stronghold: Add {B}{B} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(Mana.BlackMana(2)), new TapSourceCost());
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(2), new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/e/ElvishSpiritGuide.java b/Mage.Sets/src/mage/cards/e/ElvishSpiritGuide.java
index 5febf56936..2ebf989319 100644
--- a/Mage.Sets/src/mage/cards/e/ElvishSpiritGuide.java
+++ b/Mage.Sets/src/mage/cards/e/ElvishSpiritGuide.java
@@ -33,7 +33,6 @@ import mage.Mana;
import mage.abilities.Ability;
import mage.abilities.costs.Cost;
import mage.abilities.costs.CostImpl;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.Card;
import mage.cards.CardImpl;
@@ -58,7 +57,7 @@ public class ElvishSpiritGuide extends CardImpl {
this.toughness = new MageInt(2);
// Exile Elvish Spirit Guide from your hand: Add {G} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.HAND, new BasicManaEffect(Mana.GreenMana(1)), new ExileSourceFromHandCost()));
+ this.addAbility(new SimpleManaAbility(Zone.HAND, Mana.GreenMana(1), new ExileSourceFromHandCost()));
}
public ElvishSpiritGuide(final ElvishSpiritGuide card) {
diff --git a/Mage.Sets/src/mage/cards/e/EwokVillage.java b/Mage.Sets/src/mage/cards/e/EwokVillage.java
index 3b102cb2cb..9b2c54729f 100644
--- a/Mage.Sets/src/mage/cards/e/EwokVillage.java
+++ b/Mage.Sets/src/mage/cards/e/EwokVillage.java
@@ -51,7 +51,7 @@ public class EwokVillage extends CardImpl {
this.addAbility(new EntersBattlefieldTappedAbility());
// When Ewok Village enters the battlefield , add {G} to your mana pool.
- this.addAbility(new EntersBattlefieldTriggeredAbility(new AddManaToManaPoolSourceControllerEffect(new Mana(0, 1, 0, 0, 0, 0, 0, 0))));
+ this.addAbility(new EntersBattlefieldTriggeredAbility(new AddManaToManaPoolSourceControllerEffect(Mana.GreenMana(1))));
// {T}: Add {R} or {W} to you mana pool.
this.addAbility(new RedManaAbility());
diff --git a/Mage.Sets/src/mage/cards/f/FarrelitePriest.java b/Mage.Sets/src/mage/cards/f/FarrelitePriest.java
index 25c2b46874..1c66774555 100644
--- a/Mage.Sets/src/mage/cards/f/FarrelitePriest.java
+++ b/Mage.Sets/src/mage/cards/f/FarrelitePriest.java
@@ -29,14 +29,13 @@ package mage.cards.f;
import java.util.UUID;
import mage.MageInt;
-import static mage.Mana.WhiteMana;
+import mage.Mana;
import mage.abilities.Ability;
import mage.abilities.ActivationInfo;
import mage.abilities.DelayedTriggeredAbility;
import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.OneShotEffect;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.effects.common.SacrificeSourceEffect;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
@@ -60,9 +59,7 @@ public class FarrelitePriest extends CardImpl {
this.toughness = new MageInt(3);
// {1}: Add {W} to your mana pool. If this ability has been activated four or more times this turn, sacrifice Farrelite Priest at the beginning of the next end step.
- SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD,
- new BasicManaEffect(WhiteMana(1)),
- new ManaCostsImpl("{1}"));
+ SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.WhiteMana(1), new ManaCostsImpl("{1}"));
ability.addEffect(new FarrelitePriestEffect());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/f/FoodChain.java b/Mage.Sets/src/mage/cards/f/FoodChain.java
index 9b51e2515e..3a001b430d 100644
--- a/Mage.Sets/src/mage/cards/f/FoodChain.java
+++ b/Mage.Sets/src/mage/cards/f/FoodChain.java
@@ -30,7 +30,6 @@ package mage.cards.f;
import java.util.UUID;
import mage.ConditionalMana;
import mage.Mana;
-import mage.ObjectColor;
import mage.abilities.Ability;
import mage.abilities.costs.Cost;
import mage.abilities.costs.common.ExileTargetCost;
@@ -116,22 +115,11 @@ class FoodChainManaEffect extends ManaEffect {
}
ChoiceColor choice = new ChoiceColor();
controller.choose(Outcome.PutManaInPool, choice, game);
- ObjectColor chosenColor = choice.getColor();
- if (chosenColor == null) {
+ if (choice.getColor() == null) {
return false;
}
- Mana mana = null;
- if (chosenColor.isBlack()) {
- mana = new FoodChainManaBuilder().setMana(Mana.BlackMana(manaCostExiled + 1), source, game).build();
- } else if (chosenColor.isBlue()) {
- mana = new FoodChainManaBuilder().setMana(Mana.BlueMana(manaCostExiled + 1), source, game).build();
- } else if (chosenColor.isRed()) {
- mana = new FoodChainManaBuilder().setMana(Mana.RedMana(manaCostExiled + 1), source, game).build();
- } else if (chosenColor.isGreen()) {
- mana = new FoodChainManaBuilder().setMana(Mana.GreenMana(manaCostExiled + 1), source, game).build();
- } else if (chosenColor.isWhite()) {
- mana = new FoodChainManaBuilder().setMana(Mana.WhiteMana(manaCostExiled + 1), source, game).build();
- }
+ Mana chosen = choice.getMana(manaCostExiled + 1);
+ Mana mana = new FoodChainManaBuilder().setMana(chosen, source, game).build();
if (mana != null) {
checkToFirePossibleEvents(mana, game, source);
controller.getManaPool().addMana(mana, game, source);
diff --git a/Mage.Sets/src/mage/cards/f/FrontierSiege.java b/Mage.Sets/src/mage/cards/f/FrontierSiege.java
index e66ba55e93..38e6ae50a5 100644
--- a/Mage.Sets/src/mage/cards/f/FrontierSiege.java
+++ b/Mage.Sets/src/mage/cards/f/FrontierSiege.java
@@ -107,7 +107,7 @@ public class FrontierSiege extends CardImpl {
class FrontierSiegeKhansTriggeredAbility extends TriggeredAbilityImpl {
public FrontierSiegeKhansTriggeredAbility() {
- super(Zone.BATTLEFIELD, new AddManaToManaPoolSourceControllerEffect(new Mana(0, 2, 0, 0, 0, 0, 0, 0)), false);
+ super(Zone.BATTLEFIELD, new AddManaToManaPoolSourceControllerEffect(Mana.GreenMana(2)), false);
}
diff --git a/Mage.Sets/src/mage/cards/f/FyndhornElder.java b/Mage.Sets/src/mage/cards/f/FyndhornElder.java
index 0e2c765651..1a55aa3f5b 100644
--- a/Mage.Sets/src/mage/cards/f/FyndhornElder.java
+++ b/Mage.Sets/src/mage/cards/f/FyndhornElder.java
@@ -53,7 +53,7 @@ public class FyndhornElder extends CardImpl {
this.toughness = new MageInt(1);
// {tap}: Add {G}{G} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 2, 0, 0, 0, 0, 0, 0), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.GreenMana(2), new TapSourceCost()));
}
public FyndhornElder(final FyndhornElder card) {
diff --git a/Mage.Sets/src/mage/cards/g/GeothermalCrevice.java b/Mage.Sets/src/mage/cards/g/GeothermalCrevice.java
index 1b3802a9f6..f9c80b4894 100644
--- a/Mage.Sets/src/mage/cards/g/GeothermalCrevice.java
+++ b/Mage.Sets/src/mage/cards/g/GeothermalCrevice.java
@@ -35,7 +35,6 @@ import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTappedAbility;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.common.TapSourceCost;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.mana.RedManaAbility;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
@@ -56,7 +55,7 @@ public class GeothermalCrevice extends CardImpl {
// {tap}: Add {R} to your mana pool.
this.addAbility(new RedManaAbility());
// {tap}, Sacrifice Geothermal Crevice: Add {B}{G} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(new Mana(0, 1, 0, 0, 1, 0, 0, 0)), new TapSourceCost());
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 0, 1, 0, 0, 0), new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GrandArchitect.java b/Mage.Sets/src/mage/cards/g/GrandArchitect.java
index f0e4911ee6..c9b1320838 100644
--- a/Mage.Sets/src/mage/cards/g/GrandArchitect.java
+++ b/Mage.Sets/src/mage/cards/g/GrandArchitect.java
@@ -145,7 +145,7 @@ class GrandArchitectManaAbility extends ManaAbility {
GrandArchitectManaAbility() {
super(Zone.BATTLEFIELD, new BasicManaEffect(new GrandArchitectConditionalMana()), new TapTargetCost(new TargetControlledCreaturePermanent(1, 1, filter, true)));
- this.netMana.add(new Mana(0, 0, 0, 0, 0, 0, 0, 2));
+ this.netMana.add(Mana.ColorlessMana(2));
}
GrandArchitectManaAbility(GrandArchitectManaAbility ability) {
diff --git a/Mage.Sets/src/mage/cards/g/GreenweaverDruid.java b/Mage.Sets/src/mage/cards/g/GreenweaverDruid.java
index 5279396d20..6f380f8cdf 100644
--- a/Mage.Sets/src/mage/cards/g/GreenweaverDruid.java
+++ b/Mage.Sets/src/mage/cards/g/GreenweaverDruid.java
@@ -33,7 +33,6 @@ import mage.constants.Zone;
import mage.MageInt;
import mage.Mana;
import mage.abilities.costs.common.TapSourceCost;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -53,7 +52,7 @@ public class GreenweaverDruid extends CardImpl {
this.toughness = new MageInt(1);
// {T}: Add {G}{G} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(Mana.GreenMana(2)), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.GreenMana(2), new TapSourceCost()));
}
public GreenweaverDruid(final GreenweaverDruid card) {
diff --git a/Mage.Sets/src/mage/cards/g/GroveOfTheGuardian.java b/Mage.Sets/src/mage/cards/g/GroveOfTheGuardian.java
index e71bc6745c..26834b1c1a 100644
--- a/Mage.Sets/src/mage/cards/g/GroveOfTheGuardian.java
+++ b/Mage.Sets/src/mage/cards/g/GroveOfTheGuardian.java
@@ -64,7 +64,7 @@ public class GroveOfTheGuardian extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
// {T}: Add {C} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 0, 0, 0, 1), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(1), new TapSourceCost()));
// {3}{G}{W}, {T}, Tap two untapped creatures you control, Sacrifice Grove of the Guardian: Create an 8/8 green and white Elemental creature token with vigilance.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new ElementalToken(), 1), new ManaCostsImpl("{3}{G}{W}"));
diff --git a/Mage.Sets/src/mage/cards/h/HavenwoodBattleground.java b/Mage.Sets/src/mage/cards/h/HavenwoodBattleground.java
index 27ed5093e0..146e5a972f 100644
--- a/Mage.Sets/src/mage/cards/h/HavenwoodBattleground.java
+++ b/Mage.Sets/src/mage/cards/h/HavenwoodBattleground.java
@@ -33,7 +33,6 @@ import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTappedAbility;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.common.TapSourceCost;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.mana.GreenManaAbility;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
@@ -55,7 +54,7 @@ public class HavenwoodBattleground extends CardImpl {
// {tap}: Add {G} to your mana pool.
this.addAbility(new GreenManaAbility());
// {tap}, Sacrifice Havenwood Battleground: Add {G}{G} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(Mana.GreenMana(2)), new TapSourceCost());
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.GreenMana(2), new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/HeritageDruid.java b/Mage.Sets/src/mage/cards/h/HeritageDruid.java
index aca16a09f3..53eba0da9a 100644
--- a/Mage.Sets/src/mage/cards/h/HeritageDruid.java
+++ b/Mage.Sets/src/mage/cards/h/HeritageDruid.java
@@ -63,7 +63,7 @@ public class HeritageDruid extends CardImpl {
this.toughness = new MageInt(1);
// Tap three untapped Elves you control: Add {G}{G}{G} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 3, 0, 0, 0, 0, 0, 0), new TapTargetCost(new TargetControlledCreaturePermanent(3, 3, filter, true))));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.GreenMana(3), new TapTargetCost(new TargetControlledCreaturePermanent(3, 3, filter, true))));
}
public HeritageDruid(final HeritageDruid card) {
diff --git a/Mage.Sets/src/mage/cards/h/HuttPalace.java b/Mage.Sets/src/mage/cards/h/HuttPalace.java
index 19afcbf688..e6898be37f 100644
--- a/Mage.Sets/src/mage/cards/h/HuttPalace.java
+++ b/Mage.Sets/src/mage/cards/h/HuttPalace.java
@@ -51,7 +51,7 @@ public class HuttPalace extends CardImpl {
this.addAbility(new EntersBattlefieldTappedAbility());
// When Hutt Palace enters the battlefield , add {R} to your mana pool.
- this.addAbility(new EntersBattlefieldTriggeredAbility(new AddManaToManaPoolSourceControllerEffect(new Mana(1, 0, 0, 0, 0, 0, 0, 0))));
+ this.addAbility(new EntersBattlefieldTriggeredAbility(new AddManaToManaPoolSourceControllerEffect(Mana.RedMana(1))));
// {T}: Add {B} or {G} to you mana pool.
this.addAbility(new BlackManaAbility());
diff --git a/Mage.Sets/src/mage/cards/i/InitiatesOfTheEbonHand.java b/Mage.Sets/src/mage/cards/i/InitiatesOfTheEbonHand.java
index 771e0ebaff..cc19a83bd6 100644
--- a/Mage.Sets/src/mage/cards/i/InitiatesOfTheEbonHand.java
+++ b/Mage.Sets/src/mage/cards/i/InitiatesOfTheEbonHand.java
@@ -36,7 +36,6 @@ import mage.abilities.DelayedTriggeredAbility;
import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.OneShotEffect;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.effects.common.SacrificeSourceEffect;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
@@ -59,9 +58,7 @@ public class InitiatesOfTheEbonHand extends CardImpl {
this.toughness = new MageInt(1);
// {1}: Add {B} to your mana pool. If this ability has been activated four or more times this turn, sacrifice Initiates of the Ebon Hand at the beginning of the next end step.
- SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD,
- new BasicManaEffect(BlackMana(1)),
- new ManaCostsImpl("{1}"));
+ SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, BlackMana(1), new ManaCostsImpl("{1}"));
ability.addEffect(new InitiatesOfTheEbonHandEffect());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/j/JediTemple.java b/Mage.Sets/src/mage/cards/j/JediTemple.java
index 33042ca688..c443353898 100644
--- a/Mage.Sets/src/mage/cards/j/JediTemple.java
+++ b/Mage.Sets/src/mage/cards/j/JediTemple.java
@@ -51,7 +51,7 @@ public class JediTemple extends CardImpl {
this.addAbility(new EntersBattlefieldTappedAbility());
// When Jedi Temple enters the battlefield , add {W} to your mana pool.
- this.addAbility(new EntersBattlefieldTriggeredAbility(new AddManaToManaPoolSourceControllerEffect(new Mana(0, 0, 0, 1, 0, 0, 0, 0))));
+ this.addAbility(new EntersBattlefieldTriggeredAbility(new AddManaToManaPoolSourceControllerEffect(Mana.WhiteMana(1))));
// {T}: Add {G} or {U} to you mana pool.
this.addAbility(new GreenManaAbility());
diff --git a/Mage.Sets/src/mage/cards/j/JoragaTreespeaker.java b/Mage.Sets/src/mage/cards/j/JoragaTreespeaker.java
index 0dabc2f191..198ecca2ba 100644
--- a/Mage.Sets/src/mage/cards/j/JoragaTreespeaker.java
+++ b/Mage.Sets/src/mage/cards/j/JoragaTreespeaker.java
@@ -40,7 +40,6 @@ import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.keyword.LevelUpAbility;
import mage.abilities.keyword.LevelerCardBuilder;
@@ -86,9 +85,7 @@ public class JoragaTreespeaker extends LevelerCard {
// Elves you control have "{T}: Add {G}{G} to your mana pool."
Abilities abilities2 = new AbilitiesImpl();
abilities2.add(new SimpleStaticAbility(Zone.BATTLEFIELD,
- new GainAbilityControlledEffect(new SimpleManaAbility(Zone.BATTLEFIELD,
- new BasicManaEffect(Mana.GreenMana(2)),
- new TapSourceCost()),
+ new GainAbilityControlledEffect(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.GreenMana(2), new TapSourceCost()),
Duration.WhileOnBattlefield, filter)));
this.addAbilities(LevelerCardBuilder.construct(
diff --git a/Mage.Sets/src/mage/cards/k/KnotvineMystic.java b/Mage.Sets/src/mage/cards/k/KnotvineMystic.java
index b68d401490..48aca24d50 100644
--- a/Mage.Sets/src/mage/cards/k/KnotvineMystic.java
+++ b/Mage.Sets/src/mage/cards/k/KnotvineMystic.java
@@ -32,12 +32,13 @@ import java.util.UUID;
import mage.MageInt;
import mage.Mana;
import mage.abilities.Ability;
+import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
-import mage.abilities.effects.common.BasicManaEffect;
-import mage.abilities.mana.BasicManaAbility;
+import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
+import mage.constants.Zone;
/**
*
@@ -55,7 +56,7 @@ public class KnotvineMystic extends CardImpl {
this.toughness = new MageInt(2);
// {1}, {T}: Add {R}{G}{W} to your mana pool.
- Ability ability = new KnotvineMysticManaAbility();
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 0, 1, 0, 0, 0, 0), new TapSourceCost());
ability.addManaCost(new GenericManaCost(1));
this.addAbility(ability);
}
@@ -70,20 +71,3 @@ public class KnotvineMystic extends CardImpl {
}
}
-
-class KnotvineMysticManaAbility extends BasicManaAbility {
-
- public KnotvineMysticManaAbility() {
- super(new BasicManaEffect(new Mana(1, 1, 0, 1, 0, 0, 0, 0)));
- this.netMana.add(new Mana(1, 1, 0, 1, 0, 0, 0, 0));
- }
-
- public KnotvineMysticManaAbility(final KnotvineMysticManaAbility ability) {
- super(ability);
- }
-
- @Override
- public KnotvineMysticManaAbility copy() {
- return new KnotvineMysticManaAbility(this);
- }
-}
diff --git a/Mage.Sets/src/mage/cards/l/LakeOfTheDead.java b/Mage.Sets/src/mage/cards/l/LakeOfTheDead.java
index d120540cd2..9c011ff95b 100644
--- a/Mage.Sets/src/mage/cards/l/LakeOfTheDead.java
+++ b/Mage.Sets/src/mage/cards/l/LakeOfTheDead.java
@@ -65,7 +65,7 @@ public class LakeOfTheDead extends CardImpl {
this.addAbility(new BlackManaAbility());
// {tap}, Sacrifice a Swamp: Add {B}{B}{B}{B} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 4, 0, 0, 0), new TapSourceCost());
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(4), new TapSourceCost());
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter)));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/l/LiturgyOfBlood.java b/Mage.Sets/src/mage/cards/l/LiturgyOfBlood.java
index 1e93da8366..6425518dc8 100644
--- a/Mage.Sets/src/mage/cards/l/LiturgyOfBlood.java
+++ b/Mage.Sets/src/mage/cards/l/LiturgyOfBlood.java
@@ -49,7 +49,7 @@ public class LiturgyOfBlood extends CardImpl {
// Destroy target creature. Add {B}{B}{B} to your mana pool.
this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
- this.getSpellAbility().addEffect(new BasicManaEffect(new Mana(0, 0, 0, 0, 3, 0, 0, 0)));
+ this.getSpellAbility().addEffect(new BasicManaEffect(Mana.BlackMana(3)));
}
public LiturgyOfBlood(final LiturgyOfBlood card) {
diff --git a/Mage.Sets/src/mage/cards/m/ManaDrain.java b/Mage.Sets/src/mage/cards/m/ManaDrain.java
index b1b9a75d8c..af7fae775d 100644
--- a/Mage.Sets/src/mage/cards/m/ManaDrain.java
+++ b/Mage.Sets/src/mage/cards/m/ManaDrain.java
@@ -92,7 +92,7 @@ class ManaDrainCounterEffect extends OneShotEffect {
game.getStack().counter(getTargetPointer().getFirst(game, source), source.getSourceId(), game);
// mana gets added also if counter is not successful
int cmc = spell.getConvertedManaCost();
- Effect effect = new AddManaToManaPoolTargetControllerEffect(new Mana(0, 0, 0, 0, 0, 0, 0, cmc), "your");
+ Effect effect = new AddManaToManaPoolTargetControllerEffect(Mana.ColorlessMana(cmc), "your");
effect.setTargetPointer(new FixedTarget(source.getControllerId()));
AtTheBeginOfMainPhaseDelayedTriggeredAbility delayedAbility
= new AtTheBeginOfMainPhaseDelayedTriggeredAbility(effect, false, TargetController.YOU, PhaseSelection.NEXT_MAIN);
diff --git a/Mage.Sets/src/mage/cards/m/ManaEchoes.java b/Mage.Sets/src/mage/cards/m/ManaEchoes.java
index 4d34b7fe44..bd90a651c7 100644
--- a/Mage.Sets/src/mage/cards/m/ManaEchoes.java
+++ b/Mage.Sets/src/mage/cards/m/ManaEchoes.java
@@ -96,7 +96,7 @@ class ManaEchoesEffect extends OneShotEffect {
}
}
if (foundCreatures > 0) {
- controller.getManaPool().addMana(new Mana(0, 0, 0, 0, 0, 0, 0, foundCreatures), game, source);
+ controller.getManaPool().addMana(Mana.ColorlessMana(foundCreatures), game, source);
}
return true;
}
diff --git a/Mage.Sets/src/mage/cards/m/MarkOfSakiko.java b/Mage.Sets/src/mage/cards/m/MarkOfSakiko.java
index 3552775edf..f54ca0d7f1 100644
--- a/Mage.Sets/src/mage/cards/m/MarkOfSakiko.java
+++ b/Mage.Sets/src/mage/cards/m/MarkOfSakiko.java
@@ -111,7 +111,7 @@ class MarkOfSakikoTriggeredAbility extends TriggeredAbilityImpl {
if (((DamagedEvent) event).isCombatDamage()) {
if (event.getSourceId().equals(getSourceId())) {
this.getEffects().clear();
- Effect effect = new AddManaToManaPoolTargetControllerEffect(new Mana(0,event.getAmount(),0,0,0,0,0, 0), "that player", true);
+ Effect effect = new AddManaToManaPoolTargetControllerEffect(Mana.GreenMana(event.getAmount()), "that player", true);
effect.setTargetPointer(new FixedTarget(getControllerId()));
effect.setText("add that much {G} to your mana pool. Until end of turn, this mana doesn't empty from your mana pool as steps and phases end");
this.addEffect(effect);
diff --git a/Mage.Sets/src/mage/cards/m/MarketFestival.java b/Mage.Sets/src/mage/cards/m/MarketFestival.java
index 2631f07870..8d4a7261ca 100644
--- a/Mage.Sets/src/mage/cards/m/MarketFestival.java
+++ b/Mage.Sets/src/mage/cards/m/MarketFestival.java
@@ -135,11 +135,11 @@ class MarketFestivalManaEffect extends ManaEffect {
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
MageObject sourceObject = game.getObject(source.getSourceId());
- if(controller != null && sourceObject != null){
- int x = 2;
+ if (controller != null && sourceObject != null) {
+ int x = 2;
Mana mana = new Mana();
- for(int i = 0; i < x; i++){
+ for (int i = 0; i < x; i++) {
ChoiceColor choiceColor = new ChoiceColor();
if (i == 0) {
choiceColor.setMessage("First mana color for " + sourceObject.getLogName());
@@ -152,22 +152,11 @@ class MarketFestivalManaEffect extends ManaEffect {
}
}
- if (choiceColor.getColor().isBlack()) {
- mana.increaseBlack();
- } else if (choiceColor.getColor().isBlue()) {
- mana.increaseBlue();
- } else if (choiceColor.getColor().isRed()) {
- mana.increaseRed();
- } else if (choiceColor.getColor().isGreen()) {
- mana.increaseGreen();
- } else if (choiceColor.getColor().isWhite()) {
- mana.increaseWhite();
- }
+ choiceColor.increaseMana(mana);
}
checkToFirePossibleEvents(mana, game, source);
controller.getManaPool().addMana(mana, game, source);
return true;
-
}
return false;
}
diff --git a/Mage.Sets/src/mage/cards/m/MoonscarredWerewolf.java b/Mage.Sets/src/mage/cards/m/MoonscarredWerewolf.java
index da19075963..a5ca7f270a 100644
--- a/Mage.Sets/src/mage/cards/m/MoonscarredWerewolf.java
+++ b/Mage.Sets/src/mage/cards/m/MoonscarredWerewolf.java
@@ -38,7 +38,6 @@ import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.condition.common.TwoOrMoreSpellsWereCastLastTurnCondition;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.decorator.ConditionalTriggeredAbility;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.effects.common.TransformSourceEffect;
import mage.abilities.keyword.TransformAbility;
import mage.abilities.keyword.VigilanceAbility;
@@ -66,7 +65,7 @@ public class MoonscarredWerewolf extends CardImpl {
this.addAbility(VigilanceAbility.getInstance());
// {tap}: Add {G}{G} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(Mana.GreenMana(2)), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.GreenMana(2), new TapSourceCost()));
// At the beginning of each upkeep, if a player cast two or more spells last turn, transform Moonscarred Werewolf.
TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new TransformSourceEffect(false), TargetController.ANY, false);
this.addAbility(new ConditionalTriggeredAbility(ability,
diff --git a/Mage.Sets/src/mage/cards/m/MyrMoonvessel.java b/Mage.Sets/src/mage/cards/m/MyrMoonvessel.java
index 9d0db42621..8f6fc8faae 100644
--- a/Mage.Sets/src/mage/cards/m/MyrMoonvessel.java
+++ b/Mage.Sets/src/mage/cards/m/MyrMoonvessel.java
@@ -46,7 +46,7 @@ public class MyrMoonvessel extends CardImpl {
this.subtype.add("Myr");
this.power = new MageInt(1);
this.toughness = new MageInt(1);
- this.addAbility(new DiesTriggeredAbility(new BasicManaEffect(new Mana(0, 0, 0, 0, 0, 0, 0, 1))));
+ this.addAbility(new DiesTriggeredAbility(new BasicManaEffect(Mana.ColorlessMana(1))));
}
public MyrMoonvessel(final MyrMoonvessel card) {
diff --git a/Mage.Sets/src/mage/cards/m/MyrReservoir.java b/Mage.Sets/src/mage/cards/m/MyrReservoir.java
index 9bda1db0c0..cee739e904 100644
--- a/Mage.Sets/src/mage/cards/m/MyrReservoir.java
+++ b/Mage.Sets/src/mage/cards/m/MyrReservoir.java
@@ -86,7 +86,7 @@ class MyrReservoirManaAbility extends BasicManaAbility {
MyrReservoirManaAbility() {
super(new BasicManaEffect(new MyrConditionalMana()));
- this.netMana.add(new Mana(0, 0, 0, 0, 0, 0, 0, 2));
+ this.netMana.add(Mana.ColorlessMana(2));
}
MyrReservoirManaAbility(MyrReservoirManaAbility ability) {
diff --git a/Mage.Sets/src/mage/cards/o/OvereagerApprentice.java b/Mage.Sets/src/mage/cards/o/OvereagerApprentice.java
index 39eb42bfff..46a537c2a2 100644
--- a/Mage.Sets/src/mage/cards/o/OvereagerApprentice.java
+++ b/Mage.Sets/src/mage/cards/o/OvereagerApprentice.java
@@ -33,7 +33,6 @@ import mage.Mana;
import mage.abilities.Ability;
import mage.abilities.costs.common.DiscardCardCost;
import mage.abilities.costs.common.SacrificeSourceCost;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -55,7 +54,7 @@ public class OvereagerApprentice extends CardImpl {
this.toughness = new MageInt(2);
// Discard a card, Sacrifice Overeager Apprentice: Add {B}{B}{B} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(new Mana(0, 0, 0, 0, 3, 0, 0, 0)), new DiscardCardCost());
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(3), new DiscardCardCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/o/Overgrowth.java b/Mage.Sets/src/mage/cards/o/Overgrowth.java
index 0295b81fa4..ef7b819c33 100644
--- a/Mage.Sets/src/mage/cards/o/Overgrowth.java
+++ b/Mage.Sets/src/mage/cards/o/Overgrowth.java
@@ -82,7 +82,7 @@ class OvergrowthTriggeredAbility extends TriggeredManaAbility {
public OvergrowthTriggeredAbility() {
- super(Zone.BATTLEFIELD, new AddManaToManaPoolTargetControllerEffect(new Mana(0,2,0,0,0,0,0, 0), "his or her"));
+ super(Zone.BATTLEFIELD, new AddManaToManaPoolTargetControllerEffect(Mana.GreenMana(2), "his or her"));
}
public OvergrowthTriggeredAbility(final OvergrowthTriggeredAbility ability) {
diff --git a/Mage.Sets/src/mage/cards/p/PalladiumMyr.java b/Mage.Sets/src/mage/cards/p/PalladiumMyr.java
index 71582697fc..992a1ff8dc 100644
--- a/Mage.Sets/src/mage/cards/p/PalladiumMyr.java
+++ b/Mage.Sets/src/mage/cards/p/PalladiumMyr.java
@@ -30,11 +30,12 @@ package mage.cards.p;
import java.util.UUID;
import mage.MageInt;
import mage.Mana;
-import mage.abilities.effects.common.BasicManaEffect;
-import mage.abilities.mana.BasicManaAbility;
+import mage.abilities.costs.common.TapSourceCost;
+import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
+import mage.constants.Zone;
/**
*
@@ -47,7 +48,7 @@ public class PalladiumMyr extends CardImpl {
this.subtype.add("Myr");
this.power = new MageInt(2);
this.toughness = new MageInt(2);
- this.addAbility(new PalladiumMyrAbility());
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(2), new TapSourceCost()));
}
public PalladiumMyr(final PalladiumMyr card) {
@@ -59,20 +60,3 @@ public class PalladiumMyr extends CardImpl {
return new PalladiumMyr(this);
}
}
-
-class PalladiumMyrAbility extends BasicManaAbility {
-
- public PalladiumMyrAbility() {
- super(new BasicManaEffect(Mana.ColorlessMana(2)));
- this.netMana.add(new Mana(0, 0, 0, 0, 0, 0, 0, 2));
- }
-
- public PalladiumMyrAbility(final PalladiumMyrAbility ability) {
- super(ability);
- }
-
- @Override
- public PalladiumMyrAbility copy() {
- return new PalladiumMyrAbility(this);
- }
-}
diff --git a/Mage.Sets/src/mage/cards/p/PlasmCapture.java b/Mage.Sets/src/mage/cards/p/PlasmCapture.java
index 4431c64c7c..99fa7e161b 100644
--- a/Mage.Sets/src/mage/cards/p/PlasmCapture.java
+++ b/Mage.Sets/src/mage/cards/p/PlasmCapture.java
@@ -134,17 +134,7 @@ class PlasmCaptureManaEffect extends ManaEffect {
}
}
- if (choiceColor.getColor().isBlack()) {
- mana.increaseBlack();
- } else if (choiceColor.getColor().isBlue()) {
- mana.increaseBlue();
- } else if (choiceColor.getColor().isRed()) {
- mana.increaseRed();
- } else if (choiceColor.getColor().isGreen()) {
- mana.increaseGreen();
- } else if (choiceColor.getColor().isWhite()) {
- mana.increaseWhite();
- }
+ choiceColor.increaseMana(mana);
}
player.getManaPool().addMana(mana, game, source);
diff --git a/Mage.Sets/src/mage/cards/p/PriestOfYawgmoth.java b/Mage.Sets/src/mage/cards/p/PriestOfYawgmoth.java
index aa7bb24f27..d1d142459f 100644
--- a/Mage.Sets/src/mage/cards/p/PriestOfYawgmoth.java
+++ b/Mage.Sets/src/mage/cards/p/PriestOfYawgmoth.java
@@ -56,7 +56,7 @@ public class PriestOfYawgmoth extends CardImpl {
// {T}, Sacrifice an artifact: Add to your mana pool an amount of {B} equal to the sacrificed artifact's converted mana cost.
Ability ability = new DynamicManaAbility(Mana.BlackMana(1), new SacrificeCostConvertedMana("artifact"),
- new TapSourceCost(), "add to your mana pool an amount of {B} equal to the sacrificed artifact's converted mana cost");
+ "add to your mana pool an amount of {B} equal to the sacrificed artifact's converted mana cost");
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(new FilterControlledArtifactPermanent())));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/r/RadhaHeirToKeld.java b/Mage.Sets/src/mage/cards/r/RadhaHeirToKeld.java
index 485b1e9130..420a843200 100644
--- a/Mage.Sets/src/mage/cards/r/RadhaHeirToKeld.java
+++ b/Mage.Sets/src/mage/cards/r/RadhaHeirToKeld.java
@@ -53,7 +53,7 @@ public class RadhaHeirToKeld extends CardImpl {
this.toughness = new MageInt(2);
// Whenever Radha, Heir to Keld attacks, you may add {R}{R} to your mana pool.
- Ability ability = new AttacksTriggeredAbility(new BasicManaEffect(new Mana(2,0,0,0,0,0,0, 0)), true);
+ Ability ability = new AttacksTriggeredAbility(new BasicManaEffect(Mana.RedMana(2)), true);
this.addAbility(ability);
// {tap}: Add {G} to your mana pool.
diff --git a/Mage.Sets/src/mage/cards/r/ReflectingPool.java b/Mage.Sets/src/mage/cards/r/ReflectingPool.java
index 26cdecf348..9c99a60b56 100644
--- a/Mage.Sets/src/mage/cards/r/ReflectingPool.java
+++ b/Mage.Sets/src/mage/cards/r/ReflectingPool.java
@@ -198,7 +198,7 @@ class ReflectingPoolEffect extends ManaEffect {
netManas.add(new Mana(ColoredManaSymbol.W));
}
if (types.getColorless() > 0) {
- netManas.add(new Mana(0, 0, 0, 0, 0, 0, 0, 1));
+ netManas.add(Mana.ColorlessMana(1));
}
return netManas;
}
diff --git a/Mage.Sets/src/mage/cards/r/RoguesPassage.java b/Mage.Sets/src/mage/cards/r/RoguesPassage.java
index 0787141ef1..72e164707f 100644
--- a/Mage.Sets/src/mage/cards/r/RoguesPassage.java
+++ b/Mage.Sets/src/mage/cards/r/RoguesPassage.java
@@ -50,7 +50,7 @@ public class RoguesPassage extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
// {T}: Add {C} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 0, 0, 0, 1), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(1), new TapSourceCost()));
// {4}, {T}: Target creature can't be blocked this turn.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBeBlockedTargetEffect(), new ManaCostsImpl("{4}"));
diff --git a/Mage.Sets/src/mage/cards/r/RosheenMeanderer.java b/Mage.Sets/src/mage/cards/r/RosheenMeanderer.java
index ca17a0b2ff..307d9a6667 100644
--- a/Mage.Sets/src/mage/cards/r/RosheenMeanderer.java
+++ b/Mage.Sets/src/mage/cards/r/RosheenMeanderer.java
@@ -75,7 +75,7 @@ class RosheenMeandererManaAbility extends BasicManaAbility {
RosheenMeandererManaAbility() {
super(new BasicManaEffect(new RosheenMeandererConditionalMana()));
- this.netMana.add(new Mana(0, 0, 0, 0, 0, 0, 0, 4));
+ this.netMana.add(Mana.ColorlessMana(4));
}
RosheenMeandererManaAbility(RosheenMeandererManaAbility ability) {
diff --git a/Mage.Sets/src/mage/cards/r/RuinsOfTrokair.java b/Mage.Sets/src/mage/cards/r/RuinsOfTrokair.java
index 1415d81e15..65eda5d15c 100644
--- a/Mage.Sets/src/mage/cards/r/RuinsOfTrokair.java
+++ b/Mage.Sets/src/mage/cards/r/RuinsOfTrokair.java
@@ -33,7 +33,6 @@ import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTappedAbility;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.common.TapSourceCost;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.mana.SimpleManaAbility;
import mage.abilities.mana.WhiteManaAbility;
import mage.cards.CardImpl;
@@ -55,7 +54,7 @@ public class RuinsOfTrokair extends CardImpl {
// {tap}: Add {W} to your mana pool.
this.addAbility(new WhiteManaAbility());
// {tap}, Sacrifice Ruins of Trokair: Add {W}{W} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(Mana.WhiteMana(2)), new TapSourceCost());
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.WhiteMana(2), new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/s/SachiDaughterOfSeshiro.java b/Mage.Sets/src/mage/cards/s/SachiDaughterOfSeshiro.java
index e32d9e5914..5c8da52f34 100644
--- a/Mage.Sets/src/mage/cards/s/SachiDaughterOfSeshiro.java
+++ b/Mage.Sets/src/mage/cards/s/SachiDaughterOfSeshiro.java
@@ -32,7 +32,6 @@ import mage.MageInt;
import mage.Mana;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.common.TapSourceCost;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.mana.SimpleManaAbility;
@@ -71,7 +70,7 @@ public class SachiDaughterOfSeshiro extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(0, 1, Duration.WhileOnBattlefield, snakeFilter, true)));
// Shamans you control have "{T}: Add {G}{G} to your mana pool."
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(
- new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(Mana.GreenMana(2)), new TapSourceCost()), Duration.WhileOnBattlefield, shamanFilter, false)));
+ new SimpleManaAbility(Zone.BATTLEFIELD, Mana.GreenMana(2), new TapSourceCost()), Duration.WhileOnBattlefield, shamanFilter, false)));
}
public SachiDaughterOfSeshiro(final SachiDaughterOfSeshiro card) {
diff --git a/Mage.Sets/src/mage/cards/s/SakikoMotherOfSummer.java b/Mage.Sets/src/mage/cards/s/SakikoMotherOfSummer.java
index 520b005cd6..f8fc912ea9 100644
--- a/Mage.Sets/src/mage/cards/s/SakikoMotherOfSummer.java
+++ b/Mage.Sets/src/mage/cards/s/SakikoMotherOfSummer.java
@@ -100,7 +100,7 @@ class SakikoMotherOfSummerTriggeredAbility extends TriggeredAbilityImpl {
Permanent creature = game.getPermanent(event.getSourceId());
if (creature != null && creature.getControllerId().equals(controllerId)) {
this.getEffects().clear();
- Effect effect = new AddManaToManaPoolTargetControllerEffect(new Mana(0,event.getAmount(),0,0,0,0,0, 0), "that player", true);
+ Effect effect = new AddManaToManaPoolTargetControllerEffect(Mana.GreenMana(event.getAmount()), "that player", true);
effect.setTargetPointer(new FixedTarget(creature.getControllerId()));
effect.setText("add that much {G} to your mana pool. Until end of turn, this mana doesn't empty from your mana pool as steps and phases end");
this.addEffect(effect);
diff --git a/Mage.Sets/src/mage/cards/s/SeaScryer.java b/Mage.Sets/src/mage/cards/s/SeaScryer.java
index 100440be2b..9de3d83533 100644
--- a/Mage.Sets/src/mage/cards/s/SeaScryer.java
+++ b/Mage.Sets/src/mage/cards/s/SeaScryer.java
@@ -33,7 +33,6 @@ import mage.Mana;
import mage.abilities.Ability;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.mana.ColorlessManaAbility;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
@@ -58,7 +57,7 @@ public class SeaScryer extends CardImpl {
// {tap}: Add {C} to your mana pool.
this.addAbility(new ColorlessManaAbility());
// {1}, {tap}: Add {U} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(Mana.BlueMana(1)), new GenericManaCost(1));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlueMana(1), new GenericManaCost(1));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/s/SeethingSong.java b/Mage.Sets/src/mage/cards/s/SeethingSong.java
index 6710381cb0..5bc9edb07b 100644
--- a/Mage.Sets/src/mage/cards/s/SeethingSong.java
+++ b/Mage.Sets/src/mage/cards/s/SeethingSong.java
@@ -43,7 +43,7 @@ public class SeethingSong extends CardImpl {
public SeethingSong(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{R}");
- this.getSpellAbility().addEffect(new BasicManaEffect(new Mana(5, 0, 0, 0, 0, 0, 0, 0)));
+ this.getSpellAbility().addEffect(new BasicManaEffect(Mana.RedMana(5)));
}
public SeethingSong(final SeethingSong card) {
diff --git a/Mage.Sets/src/mage/cards/s/SeismicSpike.java b/Mage.Sets/src/mage/cards/s/SeismicSpike.java
index cd17e3b71c..6575a40945 100644
--- a/Mage.Sets/src/mage/cards/s/SeismicSpike.java
+++ b/Mage.Sets/src/mage/cards/s/SeismicSpike.java
@@ -49,7 +49,7 @@ public class SeismicSpike extends CardImpl {
// Destroy target land. Add {R}{R} to your mana pool.
this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetLandPermanent());
- this.getSpellAbility().addEffect(new BasicManaEffect(new Mana(2, 0, 0, 0, 0, 0, 0, 0)));
+ this.getSpellAbility().addEffect(new BasicManaEffect(Mana.RedMana(2)));
}
public SeismicSpike(final SeismicSpike card) {
diff --git a/Mage.Sets/src/mage/cards/s/SetonKrosanProtector.java b/Mage.Sets/src/mage/cards/s/SetonKrosanProtector.java
index 3f25eb48c5..553101d52c 100644
--- a/Mage.Sets/src/mage/cards/s/SetonKrosanProtector.java
+++ b/Mage.Sets/src/mage/cards/s/SetonKrosanProtector.java
@@ -31,7 +31,6 @@ import java.util.UUID;
import mage.MageInt;
import mage.Mana;
import mage.abilities.costs.common.TapTargetCost;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -66,9 +65,8 @@ public class SetonKrosanProtector extends CardImpl {
this.toughness = new MageInt(2);
// Tap an untapped Druid you control: Add {G} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD,
- new BasicManaEffect(Mana.GreenMana(1)),
- new TapTargetCost(new TargetControlledCreaturePermanent(1, 1, filter, true))));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.GreenMana(1),
+ new TapTargetCost(new TargetControlledCreaturePermanent(1, 1, filter, true))));
}
public SetonKrosanProtector(final SetonKrosanProtector card) {
diff --git a/Mage.Sets/src/mage/cards/s/ShizukoCallerOfAutumn.java b/Mage.Sets/src/mage/cards/s/ShizukoCallerOfAutumn.java
index c1110b3b76..5e3adfe17d 100644
--- a/Mage.Sets/src/mage/cards/s/ShizukoCallerOfAutumn.java
+++ b/Mage.Sets/src/mage/cards/s/ShizukoCallerOfAutumn.java
@@ -55,7 +55,7 @@ public class ShizukoCallerOfAutumn extends CardImpl {
this.toughness = new MageInt(3);
// At the beginning of each player's upkeep, that player adds {G}{G}{G} to his or her mana pool. Until end of turn, this mana doesn't empty from that player's mana pool as steps and phases end.
- Effect effect = new AddManaToManaPoolTargetControllerEffect(new Mana(0,3,0,0,0,0,0, 0), "that player", true);
+ Effect effect = new AddManaToManaPoolTargetControllerEffect(Mana.GreenMana(3), "that player", true);
effect.setText("that player adds {G}{G}{G} to his or her mana pool. Until end of turn, this mana doesn't empty from that player's mana pool as steps and phases end");
this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.ANY, false));
diff --git a/Mage.Sets/src/mage/cards/s/SimianSpiritGuide.java b/Mage.Sets/src/mage/cards/s/SimianSpiritGuide.java
index 707aed2d88..c391ed6e99 100644
--- a/Mage.Sets/src/mage/cards/s/SimianSpiritGuide.java
+++ b/Mage.Sets/src/mage/cards/s/SimianSpiritGuide.java
@@ -35,7 +35,6 @@ import mage.Mana;
import mage.abilities.Ability;
import mage.abilities.costs.Cost;
import mage.abilities.costs.CostImpl;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.Card;
import mage.cards.CardImpl;
@@ -59,7 +58,7 @@ public class SimianSpiritGuide extends CardImpl {
this.toughness = new MageInt(2);
// Exile Simian Spirit Guide from your hand: Add {R} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.HAND, new BasicManaEffect(Mana.RedMana(1)), new ExileSourceFromHandCost()));
+ this.addAbility(new SimpleManaAbility(Zone.HAND, Mana.RedMana(1), new ExileSourceFromHandCost()));
}
public SimianSpiritGuide(final SimianSpiritGuide card) {
diff --git a/Mage.Sets/src/mage/cards/s/SisaysRing.java b/Mage.Sets/src/mage/cards/s/SisaysRing.java
index 9bbbd1316c..35742ac1e1 100644
--- a/Mage.Sets/src/mage/cards/s/SisaysRing.java
+++ b/Mage.Sets/src/mage/cards/s/SisaysRing.java
@@ -46,7 +46,7 @@ public class SisaysRing extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}");
// {tap}: Add {C}{C} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 0, 0, 0, 2), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(2), new TapSourceCost()));
}
public SisaysRing(final SisaysRing card) {
diff --git a/Mage.Sets/src/mage/cards/s/SithCitadel.java b/Mage.Sets/src/mage/cards/s/SithCitadel.java
index 41fa539159..5a95d43844 100644
--- a/Mage.Sets/src/mage/cards/s/SithCitadel.java
+++ b/Mage.Sets/src/mage/cards/s/SithCitadel.java
@@ -51,7 +51,7 @@ public class SithCitadel extends CardImpl {
this.addAbility(new EntersBattlefieldTappedAbility());
// When Sith Citadel enters the battlefield , add {B} to your mana pool.
- this.addAbility(new EntersBattlefieldTriggeredAbility(new AddManaToManaPoolSourceControllerEffect(new Mana(0, 0, 0, 0, 1, 0, 0, 0))));
+ this.addAbility(new EntersBattlefieldTriggeredAbility(new AddManaToManaPoolSourceControllerEffect(Mana.BlackMana(1))));
// {T}: Add {U} or {R} to you mana pool.
this.addAbility(new BlueManaAbility());
diff --git a/Mage.Sets/src/mage/cards/s/SolRing.java b/Mage.Sets/src/mage/cards/s/SolRing.java
index d0c7dcaccd..5d63c3c8db 100644
--- a/Mage.Sets/src/mage/cards/s/SolRing.java
+++ b/Mage.Sets/src/mage/cards/s/SolRing.java
@@ -29,11 +29,12 @@ package mage.cards.s;
import java.util.UUID;
import mage.Mana;
-import mage.abilities.effects.common.BasicManaEffect;
-import mage.abilities.mana.BasicManaAbility;
+import mage.abilities.costs.common.TapSourceCost;
+import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
+import mage.constants.Zone;
/**
*
@@ -43,7 +44,7 @@ public class SolRing extends CardImpl {
public SolRing(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{1}");
- this.addAbility(new SolRingAbility());
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(2), new TapSourceCost()));
}
public SolRing(final SolRing card) {
@@ -55,20 +56,3 @@ public class SolRing extends CardImpl {
return new SolRing(this);
}
}
-
-class SolRingAbility extends BasicManaAbility {
-
- public SolRingAbility() {
- super(new BasicManaEffect(Mana.ColorlessMana(2)));
- this.netMana.add(new Mana(0, 0, 0, 0, 0, 0, 0, 2));
- }
-
- public SolRingAbility(final SolRingAbility ability) {
- super(ability);
- }
-
- @Override
- public SolRingAbility copy() {
- return new SolRingAbility(this);
- }
-}
diff --git a/Mage.Sets/src/mage/cards/s/SoldeviAdnate.java b/Mage.Sets/src/mage/cards/s/SoldeviAdnate.java
index 36d1f2dc96..b4bf165e04 100644
--- a/Mage.Sets/src/mage/cards/s/SoldeviAdnate.java
+++ b/Mage.Sets/src/mage/cards/s/SoldeviAdnate.java
@@ -66,7 +66,7 @@ public class SoldeviAdnate extends CardImpl {
// {T}, Sacrifice a black or artifact creature: Add to your mana pool an amount of {B} equal to the sacrificed creature's converted mana cost.
Ability ability = new DynamicManaAbility(Mana.BlackMana(1), new SacrificeCostConvertedMana("creature"),
- new TapSourceCost(), "add to your mana pool an amount of {B} equal to the sacrificed creature's converted mana cost");
+ "add to your mana pool an amount of {B} equal to the sacrificed creature's converted mana cost");
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter)));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/s/SoulbrightFlamekin.java b/Mage.Sets/src/mage/cards/s/SoulbrightFlamekin.java
index dd710d5d5e..ac19daf9d8 100644
--- a/Mage.Sets/src/mage/cards/s/SoulbrightFlamekin.java
+++ b/Mage.Sets/src/mage/cards/s/SoulbrightFlamekin.java
@@ -121,7 +121,7 @@ class SoulbrightFlamekinEffect extends OneShotEffect {
}
info.activations++;
if (info.activations == 3) {
- controller.getManaPool().addMana(new Mana(8,0,0,0,0,0,0, 0), game, source);
+ controller.getManaPool().addMana(Mana.RedMana(8), game, source);
}
return true;
}
diff --git a/Mage.Sets/src/mage/cards/s/SquanderedResources.java b/Mage.Sets/src/mage/cards/s/SquanderedResources.java
index 018752ae6c..b22da82c57 100644
--- a/Mage.Sets/src/mage/cards/s/SquanderedResources.java
+++ b/Mage.Sets/src/mage/cards/s/SquanderedResources.java
@@ -184,7 +184,7 @@ class SquanderedResourcesEffect extends ManaEffect {
netManas.add(new Mana(ColoredManaSymbol.W));
}
if (types.getGeneric() > 0) {
- netManas.add(new Mana(0, 0, 0, 0, 0, 0, 0, 1));
+ netManas.add(Mana.ColorlessMana(1));
}
return netManas;
}
diff --git a/Mage.Sets/src/mage/cards/s/StarCompass.java b/Mage.Sets/src/mage/cards/s/StarCompass.java
index 6cdec31049..45d67fe05b 100644
--- a/Mage.Sets/src/mage/cards/s/StarCompass.java
+++ b/Mage.Sets/src/mage/cards/s/StarCompass.java
@@ -202,7 +202,7 @@ class StarCompassManaEffect extends ManaEffect {
netManas.add(new Mana(ColoredManaSymbol.W));
}
if (types.getGeneric() > 0) {
- netManas.add(new Mana(0, 0, 0, 0, 0, 0, 0, 1));
+ netManas.add(Mana.ColorlessMana(1));
}
return netManas;
}
diff --git a/Mage.Sets/src/mage/cards/s/SuChi.java b/Mage.Sets/src/mage/cards/s/SuChi.java
index f65828b926..4fa205c993 100644
--- a/Mage.Sets/src/mage/cards/s/SuChi.java
+++ b/Mage.Sets/src/mage/cards/s/SuChi.java
@@ -50,7 +50,7 @@ public class SuChi extends CardImpl {
this.toughness = new MageInt(4);
// When Su-Chi dies, add {C}{C}{C}{C} to your mana pool.
- this.addAbility(new DiesTriggeredAbility(new BasicManaEffect(new Mana(0, 0, 0, 0, 0, 0, 0, 4)), false));
+ this.addAbility(new DiesTriggeredAbility(new BasicManaEffect(Mana.ColorlessMana(4)), false));
}
public SuChi(final SuChi card) {
diff --git a/Mage.Sets/src/mage/cards/s/SvyeluniteTemple.java b/Mage.Sets/src/mage/cards/s/SvyeluniteTemple.java
index 504c3fb94d..573c425e28 100644
--- a/Mage.Sets/src/mage/cards/s/SvyeluniteTemple.java
+++ b/Mage.Sets/src/mage/cards/s/SvyeluniteTemple.java
@@ -33,7 +33,6 @@ import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTappedAbility;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.common.TapSourceCost;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.mana.BlueManaAbility;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
@@ -55,7 +54,7 @@ public class SvyeluniteTemple extends CardImpl {
// {tap}: Add {U} to your mana pool.
this.addAbility(new BlueManaAbility());
// {tap}, Sacrifice Svyelunite Temple: Add {U}{U} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(Mana.BlueMana(2)), new TapSourceCost());
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlueMana(2), new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/t/TeferisIsle.java b/Mage.Sets/src/mage/cards/t/TeferisIsle.java
index 16cb1401c3..3ba8b5ff9c 100644
--- a/Mage.Sets/src/mage/cards/t/TeferisIsle.java
+++ b/Mage.Sets/src/mage/cards/t/TeferisIsle.java
@@ -53,7 +53,7 @@ public class TeferisIsle extends CardImpl {
// Teferi's Isle enters the battlefield tapped.
this.addAbility(new EntersBattlefieldTappedAbility());
// {tap}: Add {U}{U} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 2, 0, 0, 0, 0, 0), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlueMana(2), new TapSourceCost()));
}
diff --git a/Mage.Sets/src/mage/cards/t/TinderWall.java b/Mage.Sets/src/mage/cards/t/TinderWall.java
index 19ab701ba0..cf708939fa 100644
--- a/Mage.Sets/src/mage/cards/t/TinderWall.java
+++ b/Mage.Sets/src/mage/cards/t/TinderWall.java
@@ -34,7 +34,6 @@ import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
-import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.keyword.DefenderAbility;
import mage.abilities.mana.SimpleManaAbility;
@@ -70,7 +69,7 @@ public class TinderWall extends CardImpl {
// Defender
this.addAbility(DefenderAbility.getInstance());
// Sacrifice Tinder Wall: Add {R}{R} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(Mana.RedMana(2)), new SacrificeSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.RedMana(2), new SacrificeSourceCost()));
// {R}, Sacrifice Tinder Wall: Tinder Wall deals 2 damage to target creature it's blocking.
FilterAttackingCreature filter = new FilterAttackingCreature("creature it's blocking");
filter.add(new BlockedByIdPredicate(this.getId()));
diff --git a/Mage.Sets/src/mage/cards/t/TurnToDust.java b/Mage.Sets/src/mage/cards/t/TurnToDust.java
index 7c9539b3ad..c977672433 100644
--- a/Mage.Sets/src/mage/cards/t/TurnToDust.java
+++ b/Mage.Sets/src/mage/cards/t/TurnToDust.java
@@ -55,7 +55,7 @@ public class TurnToDust extends CardImpl {
this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetPermanent(filter));
- this.getSpellAbility().addEffect(new BasicManaEffect(new Mana(0, 1, 0, 0, 0, 0, 0, 0)));
+ this.getSpellAbility().addEffect(new BasicManaEffect(Mana.GreenMana(1)));
}
public TurnToDust(final TurnToDust card) {
diff --git a/Mage.Sets/src/mage/cards/u/UrGolemsEye.java b/Mage.Sets/src/mage/cards/u/UrGolemsEye.java
index 9a6ee9640d..128afb7b5b 100644
--- a/Mage.Sets/src/mage/cards/u/UrGolemsEye.java
+++ b/Mage.Sets/src/mage/cards/u/UrGolemsEye.java
@@ -46,7 +46,7 @@ public class UrGolemsEye extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}");
// {tap}: Add {C}{C} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 0, 0, 0, 2), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(2), new TapSourceCost()));
}
public UrGolemsEye(final UrGolemsEye card) {
diff --git a/Mage.Sets/src/mage/cards/v/Valleymaker.java b/Mage.Sets/src/mage/cards/v/Valleymaker.java
index 47e5b71a35..53cda433c3 100644
--- a/Mage.Sets/src/mage/cards/v/Valleymaker.java
+++ b/Mage.Sets/src/mage/cards/v/Valleymaker.java
@@ -74,7 +74,7 @@ public class Valleymaker extends CardImpl {
this.addAbility(ability);
// {tap}, Sacrifice a Forest: Choose a player. That player adds {G}{G}{G} to his or her mana pool.
- Ability ability2 = new SimpleManaAbility(Zone.BATTLEFIELD, new AddManaToManaPoolTargetControllerEffect(new Mana(0,3,0,0,0,0,0, 0), "chosen player"), new TapSourceCost());
+ Ability ability2 = new SimpleManaAbility(Zone.BATTLEFIELD, new AddManaToManaPoolTargetControllerEffect(Mana.GreenMana(3), "chosen player"), new TapSourceCost());
ability2.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter2)));
ability2.addTarget(new TargetPlayer(1, 1, true));
this.addAbility(ability2);
diff --git a/Mage.Sets/src/mage/cards/v/VedalkenEngineer.java b/Mage.Sets/src/mage/cards/v/VedalkenEngineer.java
index 5f25dc340b..fa8b83edfa 100644
--- a/Mage.Sets/src/mage/cards/v/VedalkenEngineer.java
+++ b/Mage.Sets/src/mage/cards/v/VedalkenEngineer.java
@@ -156,24 +156,13 @@ class VedalkenEngineerEffect extends ManaEffect {
return false;
}
- Mana mana = new Mana();
ChoiceColor choiceColor = new ChoiceColor(true);
while (!controller.choose(Outcome.Benefit, choiceColor, game)) {
if (!controller.canRespond()) {
return false;
}
}
- if (choiceColor.getColor().isBlack()) {
- mana.setBlack(amount);
- } else if (choiceColor.getColor().isBlue()) {
- mana.setBlue(amount);
- } else if (choiceColor.getColor().isRed()) {
- mana.setRed(amount);
- } else if (choiceColor.getColor().isGreen()) {
- mana.setGreen(amount);
- } else if (choiceColor.getColor().isWhite()) {
- mana.setWhite(amount);
- }
+ Mana mana = choiceColor.getMana(amount);
Mana condMana = manaBuilder.setMana(mana, source, game).build();
checkToFirePossibleEvents(condMana, game, source);
controller.getManaPool().addMana(condMana, game, source);
diff --git a/Mage.Sets/src/mage/cards/w/WasteNot.java b/Mage.Sets/src/mage/cards/w/WasteNot.java
index 9b9b1b2e61..1abad34e09 100644
--- a/Mage.Sets/src/mage/cards/w/WasteNot.java
+++ b/Mage.Sets/src/mage/cards/w/WasteNot.java
@@ -112,7 +112,7 @@ class WasteNotCreatureTriggeredAbility extends TriggeredAbilityImpl {
class WasteNotLandTriggeredAbility extends TriggeredAbilityImpl {
WasteNotLandTriggeredAbility() {
- super(Zone.BATTLEFIELD, new BasicManaEffect(new Mana(0, 0, 0, 0, 2, 0, 0, 0)), false);
+ super(Zone.BATTLEFIELD, new BasicManaEffect(Mana.BlackMana(2)), false);
}
WasteNotLandTriggeredAbility(final WasteNotLandTriggeredAbility ability) {
diff --git a/Mage.Sets/src/mage/cards/w/WitchEngine.java b/Mage.Sets/src/mage/cards/w/WitchEngine.java
index 3c24b68755..0c7380cc44 100644
--- a/Mage.Sets/src/mage/cards/w/WitchEngine.java
+++ b/Mage.Sets/src/mage/cards/w/WitchEngine.java
@@ -64,7 +64,7 @@ public class WitchEngine extends CardImpl {
this.addAbility(new SwampwalkAbility());
// {tap}: Add {B}{B}{B}{B} to your mana pool. Target opponent gains control of Witch Engine.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BasicManaEffect(new Mana(0, 0, 0, 0, 4, 0, 0, 0)), new TapSourceCost());
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BasicManaEffect(Mana.BlackMana(4)), new TapSourceCost());
ability.addEffect(new WitchEngineEffect());
ability.addTarget(new TargetOpponent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/w/Workhorse.java b/Mage.Sets/src/mage/cards/w/Workhorse.java
index 1095d26356..7176f9ccd2 100644
--- a/Mage.Sets/src/mage/cards/w/Workhorse.java
+++ b/Mage.Sets/src/mage/cards/w/Workhorse.java
@@ -56,8 +56,7 @@ public class Workhorse extends CardImpl {
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(4)), "with four +1/+1 counters on it"));
// Remove a +1/+1 counter from Workhorse: Add {C} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD,
- new Mana(new Mana(0, 0, 0, 0, 0, 0, 0, 1)),
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(1),
new RemoveCountersSourceCost(CounterType.P1P1.createInstance())));
}
diff --git a/Mage.Sets/src/mage/cards/w/WornPowerstone.java b/Mage.Sets/src/mage/cards/w/WornPowerstone.java
index 4342511866..1ab85de914 100644
--- a/Mage.Sets/src/mage/cards/w/WornPowerstone.java
+++ b/Mage.Sets/src/mage/cards/w/WornPowerstone.java
@@ -30,11 +30,12 @@ package mage.cards.w;
import java.util.UUID;
import mage.Mana;
import mage.abilities.common.EntersBattlefieldTappedAbility;
-import mage.abilities.effects.common.BasicManaEffect;
-import mage.abilities.mana.BasicManaAbility;
+import mage.abilities.costs.common.TapSourceCost;
+import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
+import mage.constants.Zone;
/**
*
@@ -45,7 +46,7 @@ public class WornPowerstone extends CardImpl {
public WornPowerstone(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}");
this.addAbility(new EntersBattlefieldTappedAbility());
- this.addAbility(new WornPowerstoneAbility());
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(2), new TapSourceCost()));
}
public WornPowerstone(final WornPowerstone card) {
@@ -57,20 +58,3 @@ public class WornPowerstone extends CardImpl {
return new WornPowerstone(this);
}
}
-
-class WornPowerstoneAbility extends BasicManaAbility {
-
- public WornPowerstoneAbility() {
- super(new BasicManaEffect(Mana.ColorlessMana(2)));
- this.netMana.add(new Mana(0, 0, 0, 0, 0, 0, 0, 2));
- }
-
- public WornPowerstoneAbility(final WornPowerstoneAbility ability) {
- super(ability);
- }
-
- @Override
- public WornPowerstoneAbility copy() {
- return new WornPowerstoneAbility(this);
- }
-}
diff --git a/Mage/src/main/java/mage/abilities/decorator/ConditionalManaEffect.java b/Mage/src/main/java/mage/abilities/decorator/ConditionalManaEffect.java
index acac47195f..3f3ad49580 100644
--- a/Mage/src/main/java/mage/abilities/decorator/ConditionalManaEffect.java
+++ b/Mage/src/main/java/mage/abilities/decorator/ConditionalManaEffect.java
@@ -90,17 +90,7 @@ public class ConditionalManaEffect extends ManaEffect {
return false; // it happens, don't know how
}
- if (choice.getColor().isBlack()) {
- createdMana = Mana.BlackMana(amount);
- } else if (choice.getColor().isBlue()) {
- createdMana = Mana.BlueMana(amount);
- } else if (choice.getColor().isRed()) {
- createdMana = Mana.RedMana(amount);
- } else if (choice.getColor().isGreen()) {
- createdMana = Mana.GreenMana(amount);
- } else if (choice.getColor().isWhite()) {
- createdMana = Mana.WhiteMana(amount);
- }
+ createdMana = choice.getMana(amount);
}
mana = createdMana;
}
@@ -117,8 +107,7 @@ public class ConditionalManaEffect extends ManaEffect {
}
@Override
- public Mana getMana(Game game, Ability source
- ) {
+ public Mana getMana(Game game, Ability source) {
Mana mana = null;
if (condition.apply(game, source)) {
mana = effect.getMana();
diff --git a/Mage/src/main/java/mage/abilities/effects/common/AddConditionalColorlessManaEffect.java b/Mage/src/main/java/mage/abilities/effects/common/AddConditionalColorlessManaEffect.java
index 3bfd52a876..26aa0228f3 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/AddConditionalColorlessManaEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/AddConditionalColorlessManaEffect.java
@@ -56,6 +56,6 @@ public class AddConditionalColorlessManaEffect extends ManaEffect {
}
public Mana getMana() {
- return new Mana(0, 0, 0, 0, 0, 0, 0, amount);
+ return Mana.ColorlessMana(amount);
}
}
diff --git a/Mage/src/main/java/mage/abilities/effects/common/AddConditionalManaOfAnyColorEffect.java b/Mage/src/main/java/mage/abilities/effects/common/AddConditionalManaOfAnyColorEffect.java
index 8259edb065..2da6d5747f 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/AddConditionalManaOfAnyColorEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/AddConditionalManaOfAnyColorEffect.java
@@ -94,19 +94,10 @@ public class AddConditionalManaOfAnyColorEffect extends ManaEffect {
return false;
}
}
- Mana mana = null;
- if (choice.getColor().isBlack()) {
- mana = manaBuilder.setMana(Mana.BlackMana(1), source, game).build();
- } else if (choice.getColor().isBlue()) {
- mana = manaBuilder.setMana(Mana.BlueMana(1), source, game).build();
- } else if (choice.getColor().isRed()) {
- mana = manaBuilder.setMana(Mana.RedMana(1), source, game).build();
- } else if (choice.getColor().isGreen()) {
- mana = manaBuilder.setMana(Mana.GreenMana(1), source, game).build();
- } else if (choice.getColor().isWhite()) {
- mana = manaBuilder.setMana(Mana.WhiteMana(1), source, game).build();
+ Mana mana = choice.getMana(1);
+ if (mana != null) {
+ mana = manaBuilder.setMana(mana, source, game).build();
}
-
if (mana != null) {
checkToFirePossibleEvents(mana, game, source);
controller.getManaPool().addMana(mana, game, source);
diff --git a/Mage/src/main/java/mage/abilities/effects/common/AddManaAnyColorAttachedControllerEffect.java b/Mage/src/main/java/mage/abilities/effects/common/AddManaAnyColorAttachedControllerEffect.java
index a1d718350c..fa2847daee 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/AddManaAnyColorAttachedControllerEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/AddManaAnyColorAttachedControllerEffect.java
@@ -64,22 +64,10 @@ public class AddManaAnyColorAttachedControllerEffect extends ManaEffect {
return false;
}
}
- int amount = 1;
- Mana mana = null;
- if (choice.getColor().isBlack()) {
- mana = Mana.BlackMana(amount);
- } else if (choice.getColor().isBlue()) {
- mana = Mana.BlueMana(amount);
- } else if (choice.getColor().isRed()) {
- mana = Mana.RedMana(amount);
- } else if (choice.getColor().isGreen()) {
- mana = Mana.GreenMana(amount);
- } else if (choice.getColor().isWhite()) {
- mana = Mana.WhiteMana(amount);
- }
+ Mana mana = choice.getMana(1);
if (mana != null) {
checkToFirePossibleEvents(mana, game, source);
- player.getManaPool().addMana(mana, game, source);
+ player.getManaPool().addMana(mana, game, source);
return true;
}
}
diff --git a/Mage/src/main/java/mage/abilities/effects/common/AddManaOfAnyColorEffect.java b/Mage/src/main/java/mage/abilities/effects/common/AddManaOfAnyColorEffect.java
index a2c556ce82..4cf9e476c0 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/AddManaOfAnyColorEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/AddManaOfAnyColorEffect.java
@@ -46,7 +46,7 @@ public class AddManaOfAnyColorEffect extends BasicManaEffect {
}
public AddManaOfAnyColorEffect(final int amount) {
- super(new Mana(0,0,0,0,0,0, amount, 0));
+ super(new Mana(0, 0, 0, 0, 0, 0, amount, 0));
this.amount = amount;
this.staticText = new StringBuilder("add ")
.append(CardUtil.numberToText(amount))
@@ -75,18 +75,7 @@ public class AddManaOfAnyColorEffect extends BasicManaEffect {
if (choice.getColor() == null) {
return false; // it happens, don't know how
}
- Mana createdMana = null;
- if (choice.getColor().isBlack()) {
- createdMana = Mana.BlackMana(amount);
- } else if (choice.getColor().isBlue()) {
- createdMana = Mana.BlueMana(amount);
- } else if (choice.getColor().isRed()) {
- createdMana = Mana.RedMana(amount);
- } else if (choice.getColor().isGreen()) {
- createdMana = Mana.GreenMana(amount);
- } else if (choice.getColor().isWhite()) {
- createdMana = Mana.WhiteMana(amount);
- }
+ Mana createdMana = choice.getMana(amount);
if (createdMana != null) {
checkToFirePossibleEvents(createdMana, game, source);
controller.getManaPool().addMana(createdMana, game, source);
@@ -103,7 +92,7 @@ public class AddManaOfAnyColorEffect extends BasicManaEffect {
@Override
public Mana getMana() {
- return (new Mana(0,0,0,0,0,0,amount, 0));
+ return new Mana(0, 0, 0, 0, 0, 0, amount, 0);
}
}
diff --git a/Mage/src/main/java/mage/abilities/effects/common/DynamicManaEffect.java b/Mage/src/main/java/mage/abilities/effects/common/DynamicManaEffect.java
index 7cfb211811..1c510e7d04 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/DynamicManaEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/DynamicManaEffect.java
@@ -42,7 +42,6 @@ import mage.players.Player;
*/
public class DynamicManaEffect extends BasicManaEffect {
- private final Mana computedMana;
private final DynamicValue amount;
private final DynamicValue netAmount;
private String text = null;
@@ -73,7 +72,6 @@ public class DynamicManaEffect extends BasicManaEffect {
public DynamicManaEffect(Mana mana, DynamicValue amount, String text, boolean oneChoice, DynamicValue netAmount) {
super(mana);
this.amount = amount;
- computedMana = new Mana();
this.text = text;
this.oneChoice = oneChoice;
this.netAmount = netAmount;
@@ -81,7 +79,6 @@ public class DynamicManaEffect extends BasicManaEffect {
public DynamicManaEffect(final DynamicManaEffect effect) {
super(effect);
- this.computedMana = effect.computedMana.copy();
this.amount = effect.amount.copy();
this.text = effect.text;
this.oneChoice = effect.oneChoice;
@@ -99,7 +96,7 @@ public class DynamicManaEffect extends BasicManaEffect {
@Override
public boolean apply(Game game, Ability source) {
- computeMana(false, game, source);
+ Mana computedMana = computeMana(false, game, source);
checkToFirePossibleEvents(computedMana, game, source);
game.getPlayer(source.getControllerId()).getManaPool().addMana(computedMana, game, source);
return true;
@@ -119,7 +116,7 @@ public class DynamicManaEffect extends BasicManaEffect {
}
public Mana computeMana(boolean netMana, Game game, Ability source) {
- this.computedMana.clear();
+ Mana computedMana = new Mana();
int count;
if (netMana && netAmount != null) {
// calculate the maximum available mana
@@ -155,17 +152,7 @@ public class DynamicManaEffect extends BasicManaEffect {
}
}
}
- if (choiceColor.getColor().isBlack()) {
- computedMana.increaseBlack();
- } else if (choiceColor.getColor().isBlue()) {
- computedMana.increaseBlue();
- } else if (choiceColor.getColor().isRed()) {
- computedMana.increaseRed();
- } else if (choiceColor.getColor().isGreen()) {
- computedMana.increaseGreen();
- } else if (choiceColor.getColor().isWhite()) {
- computedMana.increaseWhite();
- }
+ choiceColor.increaseMana(computedMana);
if (!oneChoice) {
choiceColor.clearChoice();
}
diff --git a/Mage/src/main/java/mage/abilities/mana/AnyColorLandsProduceManaAbility.java b/Mage/src/main/java/mage/abilities/mana/AnyColorLandsProduceManaAbility.java
index cf5f1d2e94..488ab25a73 100644
--- a/Mage/src/main/java/mage/abilities/mana/AnyColorLandsProduceManaAbility.java
+++ b/Mage/src/main/java/mage/abilities/mana/AnyColorLandsProduceManaAbility.java
@@ -188,7 +188,7 @@ class AnyColorLandsProduceManaEffect extends ManaEffect {
netManas.add(new Mana(ColoredManaSymbol.W));
}
if (types.getColorless() > 0) {
- netManas.add(new Mana(0, 0, 0, 0, 0, 0, 0, 1));
+ netManas.add(Mana.ColorlessMana(1));
}
return netManas;
}
diff --git a/Mage/src/main/java/mage/abilities/mana/ColorlessManaAbility.java b/Mage/src/main/java/mage/abilities/mana/ColorlessManaAbility.java
index 629d640e10..b58d43e139 100644
--- a/Mage/src/main/java/mage/abilities/mana/ColorlessManaAbility.java
+++ b/Mage/src/main/java/mage/abilities/mana/ColorlessManaAbility.java
@@ -38,7 +38,7 @@ public class ColorlessManaAbility extends BasicManaAbility {
public ColorlessManaAbility() {
super(new BasicManaEffect(Mana.ColorlessMana(1)));
- this.netMana.add(new Mana(0, 0, 0, 0, 0, 0, 0, 1));
+ this.netMana.add(Mana.ColorlessMana(1));
}
public ColorlessManaAbility(ColorlessManaAbility ability) {
diff --git a/Mage/src/main/java/mage/abilities/mana/ConditionalColorlessManaAbility.java b/Mage/src/main/java/mage/abilities/mana/ConditionalColorlessManaAbility.java
index 6c604f3998..d341e0143b 100644
--- a/Mage/src/main/java/mage/abilities/mana/ConditionalColorlessManaAbility.java
+++ b/Mage/src/main/java/mage/abilities/mana/ConditionalColorlessManaAbility.java
@@ -24,7 +24,7 @@ public class ConditionalColorlessManaAbility extends ManaAbility {
public ConditionalColorlessManaAbility(Cost cost, int amount, ConditionalManaBuilder manaBuilder) {
super(Zone.BATTLEFIELD, new AddConditionalColorlessManaEffect(amount, manaBuilder), cost);
- this.netMana.add(new Mana(0, 0, 0, 0, 0, 0, 0, amount));
+ this.netMana.add(Mana.ColorlessMana(amount));
}
public ConditionalColorlessManaAbility(final ConditionalColorlessManaAbility ability) {
diff --git a/Mage/src/main/java/mage/abilities/mana/ManaOptions.java b/Mage/src/main/java/mage/abilities/mana/ManaOptions.java
index 56b416f212..4c09adacad 100644
--- a/Mage/src/main/java/mage/abilities/mana/ManaOptions.java
+++ b/Mage/src/main/java/mage/abilities/mana/ManaOptions.java
@@ -317,7 +317,7 @@ public class ManaOptions extends ArrayList {
}
}
} else {
- payCombinations.add(new Mana(0, 0, 0, 0, 0, 0, 0, number));
+ payCombinations.add(Mana.ColorlessMana(number));
}
return payCombinations;
}
diff --git a/Mage/src/main/java/mage/choices/ChoiceColor.java b/Mage/src/main/java/mage/choices/ChoiceColor.java
index 35a1f3ba01..30208b8b7e 100644
--- a/Mage/src/main/java/mage/choices/ChoiceColor.java
+++ b/Mage/src/main/java/mage/choices/ChoiceColor.java
@@ -29,6 +29,8 @@
package mage.choices;
import java.util.ArrayList;
+
+import mage.Mana;
import mage.ObjectColor;
/**
@@ -90,4 +92,33 @@ public class ChoiceColor extends ChoiceImpl {
return color;
}
+ public Mana getMana(int amount) {
+ Mana mana = null;
+ if (getColor().isBlack()) {
+ mana = Mana.BlackMana(amount);
+ } else if (getColor().isBlue()) {
+ mana = Mana.BlueMana(amount);
+ } else if (getColor().isRed()) {
+ mana = Mana.RedMana(amount);
+ } else if (getColor().isGreen()) {
+ mana = Mana.GreenMana(amount);
+ } else if (getColor().isWhite()) {
+ mana = Mana.WhiteMana(amount);
+ }
+ return mana;
+ }
+
+ public void increaseMana(Mana mana) {
+ if (getColor().isBlack()) {
+ mana.increaseBlack();
+ } else if (getColor().isBlue()) {
+ mana.increaseBlue();
+ } else if (getColor().isRed()) {
+ mana.increaseRed();
+ } else if (getColor().isGreen()) {
+ mana.increaseGreen();
+ } else if (getColor().isWhite()) {
+ mana.increaseWhite();
+ }
+ }
}