diff --git a/Mage.Common/src/mage/view/ManaPoolView.java b/Mage.Common/src/mage/view/ManaPoolView.java
index b4871f66a64..746b87d8b94 100644
--- a/Mage.Common/src/mage/view/ManaPoolView.java
+++ b/Mage.Common/src/mage/view/ManaPoolView.java
@@ -1,43 +1,42 @@
/*
-* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without modification, are
-* permitted provided that the following conditions are met:
-*
-* 1. Redistributions of source code must retain the above copyright notice, this list of
-* conditions and the following disclaimer.
-*
-* 2. Redistributions in binary form must reproduce the above copyright notice, this list
-* of conditions and the following disclaimer in the documentation and/or other materials
-* provided with the distribution.
-*
-* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
-* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
-* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*
-* The views and conclusions contained in the software and documentation are those of the
-* authors and should not be interpreted as representing official policies, either expressed
-* or implied, of BetaSteward_at_googlemail.com.
-*/
-
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
package mage.view;
+import java.io.Serializable;
import mage.ConditionalMana;
import mage.players.ManaPool;
-import java.io.Serializable;
-
/**
*
* @author BetaSteward_at_googlemail.com
*/
public class ManaPoolView implements Serializable {
+
private static final long serialVersionUID = 1L;
private int red;
diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java
index 6e2acbb8fa9..c80e52560b9 100644
--- a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java
+++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java
@@ -56,6 +56,7 @@ import mage.abilities.SpellAbility;
import mage.abilities.TriggeredAbility;
import mage.abilities.costs.VariableCost;
import mage.abilities.costs.mana.ColoredManaCost;
+import mage.abilities.costs.mana.ColorlessManaCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.costs.mana.HybridManaCost;
import mage.abilities.costs.mana.ManaCost;
@@ -1007,7 +1008,7 @@ public class ComputerPlayer extends PlayerImpl implements Player {
if (card.getManaCost().getVariableCosts().size() > 0) {
//don't use variable mana costs unless there is at least 3 extra mana for X
for (Mana option : options) {
- option.add(Mana.ColorlessMana(3));
+ option.add(Mana.GenericMana(3));
}
}
for (Mana mana : options) {
@@ -1041,7 +1042,7 @@ public class ComputerPlayer extends PlayerImpl implements Player {
if (ability.getManaCosts().getVariableCosts().size() > 0) {
//don't use variable mana costs unless there is at least 3 extra mana for X
for (Mana option : abilityOptions) {
- option.add(Mana.ColorlessMana(3));
+ option.add(Mana.GenericMana(3));
}
}
if (abilityOptions.size() == 0) {
@@ -1167,6 +1168,18 @@ public class ComputerPlayer extends PlayerImpl implements Player {
}
}
}
+ // pay colorless
+ for (ManaAbility manaAbility : perm.getAbilities().getAvailableManaAbilities(Zone.BATTLEFIELD, game)) {
+ if (cost instanceof ColorlessManaCost) {
+ for (Mana netMana : manaAbility.getNetMana(game)) {
+ if (cost.testPay(netMana) || spendAnyMana) {
+ if (activateAbility(manaAbility, game)) {
+ return true;
+ }
+ }
+ }
+ }
+ }
// finally pay generic
for (ManaAbility manaAbility : perm.getAbilities().getAvailableManaAbilities(Zone.BATTLEFIELD, game)) {
if (cost instanceof GenericManaCost) {
diff --git a/Mage.Sets/src/mage/sets/alliances/BalduvianTradingPost.java b/Mage.Sets/src/mage/sets/alliances/BalduvianTradingPost.java
index cbd7c330895..2e52191c1f2 100644
--- a/Mage.Sets/src/mage/sets/alliances/BalduvianTradingPost.java
+++ b/Mage.Sets/src/mage/sets/alliances/BalduvianTradingPost.java
@@ -30,7 +30,6 @@ package mage.sets.alliances;
import java.util.UUID;
import mage.Mana;
import mage.abilities.Ability;
-import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.common.SacrificeTargetCost;
@@ -71,7 +70,7 @@ public class BalduvianTradingPost extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.ALL, new EnterBattlefieldPayCostOrPutGraveyardEffect(new SacrificeTargetCost(new TargetControlledPermanent(filter)))));
// {tap}: Add {C}{R} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 0, 1,0 ), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 0, 0, 0, 1), new TapSourceCost()));
// {1}, {tap}: Balduvian Trading Post deals 1 damage to target attacking creature.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new GenericManaCost(1));
diff --git a/Mage.Sets/src/mage/sets/alliances/SoldeviExcavations.java b/Mage.Sets/src/mage/sets/alliances/SoldeviExcavations.java
index 204b0e70da3..300ebf9cc32 100644
--- a/Mage.Sets/src/mage/sets/alliances/SoldeviExcavations.java
+++ b/Mage.Sets/src/mage/sets/alliances/SoldeviExcavations.java
@@ -69,7 +69,7 @@ public class SoldeviExcavations extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.ALL, new EnterBattlefieldPayCostOrPutGraveyardEffect(new SacrificeTargetCost(new TargetControlledPermanent(filter)))));
// {tap}: Add {C}{U} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 0, 0, 1, 0), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 0, 0, 0, 0, 1), new TapSourceCost()));
// {1}, {tap}: Scry 1.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1), new GenericManaCost(1));
diff --git a/Mage.Sets/src/mage/sets/antiquities/PowerArtifact.java b/Mage.Sets/src/mage/sets/antiquities/PowerArtifact.java
index b36596b5cbe..b0088262c77 100644
--- a/Mage.Sets/src/mage/sets/antiquities/PowerArtifact.java
+++ b/Mage.Sets/src/mage/sets/antiquities/PowerArtifact.java
@@ -78,8 +78,8 @@ class PowerArtifactCostModificationEffect extends CostModificationEffectImpl {
Player controller = game.getPlayer(abilityToModify.getControllerId());
if (controller != null) {
Mana mana = abilityToModify.getManaCostsToPay().getMana();
- int reduce = mana.getColorless();
- if (reduce > 0 && mana.count() == mana.getColorless()) {
+ int reduce = mana.getGeneric();
+ if (reduce > 0 && mana.count() == mana.getGeneric()) {
reduce--;
}
if (reduce > 2) {
diff --git a/Mage.Sets/src/mage/sets/archenemy/AvatarOfWoe.java b/Mage.Sets/src/mage/sets/archenemy/AvatarOfWoe.java
index f5863fcf5ba..2a29baf45c0 100644
--- a/Mage.Sets/src/mage/sets/archenemy/AvatarOfWoe.java
+++ b/Mage.Sets/src/mage/sets/archenemy/AvatarOfWoe.java
@@ -100,12 +100,12 @@ class AvatarOfWoeCostReductionEffect extends CostModificationEffectImpl {
public boolean apply(Game game, Ability source, Ability abilityToModify) {
SpellAbility spellAbility = (SpellAbility) abilityToModify;
Mana mana = spellAbility.getManaCostsToPay().getMana();
- if (mana.getColorless() > 0) {
- int newCount = mana.getColorless() - 6;
+ if (mana.getGeneric() > 0) {
+ int newCount = mana.getGeneric() - 6;
if (newCount < 0) {
newCount = 0;
}
- mana.setColorless(newCount);
+ mana.setGeneric(newCount);
spellAbility.getManaCostsToPay().load(mana.toString());
return true;
}
diff --git a/Mage.Sets/src/mage/sets/betrayersofkamigawa/MarkOfSakiko.java b/Mage.Sets/src/mage/sets/betrayersofkamigawa/MarkOfSakiko.java
index 98dbfb2c5b4..3a996c6e835 100644
--- a/Mage.Sets/src/mage/sets/betrayersofkamigawa/MarkOfSakiko.java
+++ b/Mage.Sets/src/mage/sets/betrayersofkamigawa/MarkOfSakiko.java
@@ -112,7 +112,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), "that player", true);
+ Effect effect = new AddManaToManaPoolTargetControllerEffect(new Mana(0,event.getAmount(),0,0,0,0,0, 0), "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/sets/betrayersofkamigawa/PetalmaneBaku.java b/Mage.Sets/src/mage/sets/betrayersofkamigawa/PetalmaneBaku.java
index d31abe9b9c1..1bd98974269 100644
--- a/Mage.Sets/src/mage/sets/betrayersofkamigawa/PetalmaneBaku.java
+++ b/Mage.Sets/src/mage/sets/betrayersofkamigawa/PetalmaneBaku.java
@@ -70,7 +70,7 @@ public class PetalmaneBaku extends CardImpl {
// {1}, Remove X ki counters from Petalmane Baku: Add X mana of any one color to your mana pool.
Ability ability = new DynamicManaAbility(
- new Mana(0, 0, 0, 0, 0, 0, 1),
+ new Mana(0, 0, 0, 0, 0, 0, 1, 0),
new RemovedCountersForCostValue(),
new ManaCostsImpl<>("{1}"),
"Add X mana of any one color to your mana pool",
@@ -130,19 +130,19 @@ public class PetalmaneBaku extends CardImpl {
}
}
if (choice.getColor().isBlack()) {
- player.getManaPool().addMana(new Mana(0, 0, 0, 0, numberOfMana, 0, 0), game, source);
+ player.getManaPool().addMana(new Mana(0, 0, 0, 0, numberOfMana, 0, 0, 0), game, source);
return true;
} else if (choice.getColor().isBlue()) {
- player.getManaPool().addMana(new Mana(0, 0, numberOfMana, 0, 0, 0, 0), game, source);
+ player.getManaPool().addMana(new Mana(0, 0, numberOfMana, 0, 0, 0, 0, 0), game, source);
return true;
} else if (choice.getColor().isRed()) {
- player.getManaPool().addMana(new Mana(numberOfMana, 0, 0, 0, 0, 0, 0), game, source);
+ player.getManaPool().addMana(new Mana(numberOfMana, 0, 0, 0, 0, 0, 0, 0), game, source);
return true;
} else if (choice.getColor().isGreen()) {
- player.getManaPool().addMana(new Mana(0, numberOfMana, 0, 0, 0, 0, 0), game, source);
+ player.getManaPool().addMana(new Mana(0, numberOfMana, 0, 0, 0, 0, 0, 0), game, source);
return true;
} else if (choice.getColor().isWhite()) {
- player.getManaPool().addMana(new Mana(0, 0, 0, numberOfMana, 0, 0, 0), game, source);
+ player.getManaPool().addMana(new Mana(0, 0, 0, numberOfMana, 0, 0, 0, 0), game, source);
return true;
}
}
diff --git a/Mage.Sets/src/mage/sets/betrayersofkamigawa/SakikoMotherOfSummer.java b/Mage.Sets/src/mage/sets/betrayersofkamigawa/SakikoMotherOfSummer.java
index fe8a3787c2f..c8a8159ea10 100644
--- a/Mage.Sets/src/mage/sets/betrayersofkamigawa/SakikoMotherOfSummer.java
+++ b/Mage.Sets/src/mage/sets/betrayersofkamigawa/SakikoMotherOfSummer.java
@@ -101,7 +101,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), "that player", true);
+ Effect effect = new AddManaToManaPoolTargetControllerEffect(new Mana(0,event.getAmount(),0,0,0,0,0, 0), "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/sets/betrayersofkamigawa/ShizukoCallerOfAutumn.java b/Mage.Sets/src/mage/sets/betrayersofkamigawa/ShizukoCallerOfAutumn.java
index 078ac1c3e44..fc611e580d9 100644
--- a/Mage.Sets/src/mage/sets/betrayersofkamigawa/ShizukoCallerOfAutumn.java
+++ b/Mage.Sets/src/mage/sets/betrayersofkamigawa/ShizukoCallerOfAutumn.java
@@ -56,7 +56,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), "that player", true);
+ Effect effect = new AddManaToManaPoolTargetControllerEffect(new Mana(0,3,0,0,0,0,0, 0), "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/sets/bornofthegods/AstralCornucopia.java b/Mage.Sets/src/mage/sets/bornofthegods/AstralCornucopia.java
index 6d57185c284..de9013abcf2 100644
--- a/Mage.Sets/src/mage/sets/bornofthegods/AstralCornucopia.java
+++ b/Mage.Sets/src/mage/sets/bornofthegods/AstralCornucopia.java
@@ -95,7 +95,7 @@ class AstralCornucopiaManaAbility extends ManaAbility {
if (sourcePermanent != null) {
int counters = sourcePermanent.getCounters().getCount(CounterType.CHARGE.getName());
if (counters > 0) {
- netMana.add(new Mana(0, 0, 0, 0, 0, 0, counters));
+ netMana.add(new Mana(0, 0, 0, 0, 0, 0, counters, 0));
}
}
return netMana;
diff --git a/Mage.Sets/src/mage/sets/bornofthegods/MarshmistTitan.java b/Mage.Sets/src/mage/sets/bornofthegods/MarshmistTitan.java
index 1cc6f0f2df9..cda9024f4a0 100644
--- a/Mage.Sets/src/mage/sets/bornofthegods/MarshmistTitan.java
+++ b/Mage.Sets/src/mage/sets/bornofthegods/MarshmistTitan.java
@@ -88,13 +88,13 @@ class MarshmistTitanCostReductionEffect extends CostModificationEffectImpl {
public boolean apply(Game game, Ability source, Ability abilityToModify) {
SpellAbility spellAbility = (SpellAbility)abilityToModify;
Mana mana = spellAbility.getManaCostsToPay().getMana();
- if (mana.getColorless() > 0) {
+ if (mana.getGeneric() > 0) {
int count = new DevotionCount(ColoredManaSymbol.B).calculate(game, source, this);
- int newCount = mana.getColorless() - count;
+ int newCount = mana.getGeneric() - count;
if (newCount < 0) {
newCount = 0;
}
- mana.setColorless(newCount);
+ mana.setGeneric(newCount);
spellAbility.getManaCostsToPay().load(mana.toString());
return true;
}
diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/BoseijuWhoSheltersAll.java b/Mage.Sets/src/mage/sets/championsofkamigawa/BoseijuWhoSheltersAll.java
index 2e42ccfa63b..a303d567d89 100644
--- a/Mage.Sets/src/mage/sets/championsofkamigawa/BoseijuWhoSheltersAll.java
+++ b/Mage.Sets/src/mage/sets/championsofkamigawa/BoseijuWhoSheltersAll.java
@@ -66,15 +66,15 @@ public class BoseijuWhoSheltersAll extends CardImpl {
// Boseiju, Who Shelters All enters the battlefield tapped.
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, 1, 0);
+ Mana mana = new Mana(0, 0, 0, 0, 0, 0, 0, 1);
mana.setFlag(true); // used to indicate this mana ability
SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, mana, new TapSourceCost());
ability.addCost(new PayLifeCost(2));
ability.getEffects().get(0).setText("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");
this.addAbility(ability);
-
+
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoseijuWhoSheltersAllCantCounterEffect()), new BoseijuWhoSheltersAllWatcher());
}
@@ -126,7 +126,7 @@ class BoseijuWhoSheltersAllWatcher extends Watcher {
class BoseijuWhoSheltersAllCantCounterEffect extends ContinuousRuleModifyingEffectImpl {
private static final FilterCard filter = new FilterInstantOrSorceryCard();
-
+
public BoseijuWhoSheltersAllCantCounterEffect() {
super(Duration.WhileOnBattlefield, Outcome.Benefit);
staticText = null;
@@ -154,12 +154,12 @@ class BoseijuWhoSheltersAllCantCounterEffect extends ContinuousRuleModifyingEffe
}
return null;
}
-
+
@Override
public boolean checksEventType(GameEvent event, Game game) {
return event.getType() == GameEvent.EventType.COUNTER;
}
-
+
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
BoseijuWhoSheltersAllWatcher watcher = (BoseijuWhoSheltersAllWatcher) game.getState().getWatchers().get("ManaPaidFromBoseijuWhoSheltersAllWatcher");
diff --git a/Mage.Sets/src/mage/sets/commander/ScatteringStroke.java b/Mage.Sets/src/mage/sets/commander/ScatteringStroke.java
index 7f7cdd7bccc..56d44f1a935 100644
--- a/Mage.Sets/src/mage/sets/commander/ScatteringStroke.java
+++ b/Mage.Sets/src/mage/sets/commander/ScatteringStroke.java
@@ -55,7 +55,6 @@ public class ScatteringStroke extends CardImpl {
super(ownerId, 60, "Scattering Stroke", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{2}{U}{U}");
this.expansionSetCode = "CMD";
-
// Counter target spell. Clash with an opponent. If you win, at the beginning of your next main phase, you may add {X} to your mana pool, where X is that spell's converted mana cost.
this.getSpellAbility().addEffect(new ScatteringStrokeEffect());
this.getSpellAbility().addTarget(new TargetSpell());
@@ -71,7 +70,6 @@ public class ScatteringStroke extends CardImpl {
}
}
-
class ScatteringStrokeEffect extends OneShotEffect {
public ScatteringStrokeEffect() {
@@ -95,9 +93,9 @@ class ScatteringStrokeEffect extends OneShotEffect {
if (controller != null && spell != null) {
game.getStack().counter(spell.getId(), source.getSourceId(), game);
if (ClashEffect.getInstance().apply(game, source)) {
- Effect effect = new AddManaToManaPoolSourceControllerEffect(new Mana(0,0,0,0,0,spell.getConvertedManaCost(),0));
- AtTheBeginOfMainPhaseDelayedTriggeredAbility delayedAbility =
- new AtTheBeginOfMainPhaseDelayedTriggeredAbility(effect, true, TargetController.YOU, AtTheBeginOfMainPhaseDelayedTriggeredAbility.PhaseSelection.NEXT_MAIN);
+ Effect effect = new AddManaToManaPoolSourceControllerEffect(new Mana(0, 0, 0, 0, 0, 0, 0, spell.getConvertedManaCost()));
+ AtTheBeginOfMainPhaseDelayedTriggeredAbility delayedAbility
+ = new AtTheBeginOfMainPhaseDelayedTriggeredAbility(effect, true, TargetController.YOU, AtTheBeginOfMainPhaseDelayedTriggeredAbility.PhaseSelection.NEXT_MAIN);
delayedAbility.setSourceId(source.getSourceId());
delayedAbility.setControllerId(source.getControllerId());
delayedAbility.setSourceObject(source.getSourceObject(game), game);
@@ -107,4 +105,4 @@ class ScatteringStrokeEffect extends OneShotEffect {
}
return false;
}
-}
\ No newline at end of file
+}
diff --git a/Mage.Sets/src/mage/sets/commander2013/SpringjackPasture.java b/Mage.Sets/src/mage/sets/commander2013/SpringjackPasture.java
index dd13a0d9b80..7d443677289 100644
--- a/Mage.Sets/src/mage/sets/commander2013/SpringjackPasture.java
+++ b/Mage.Sets/src/mage/sets/commander2013/SpringjackPasture.java
@@ -115,15 +115,15 @@ class SpringjackPastureEffect extends OneShotEffect {
if (you != null && choice != null) {
int count = new GetXValue().calculate(game, source, this);
if (choice.getColor().isBlack()) {
- you.getManaPool().addMana(new Mana(0, 0, 0, 0, count, 0, 0), game, source);
+ you.getManaPool().addMana(new Mana(0, 0, 0, 0, count, 0, 0, 0), game, source);
} else if (choice.getColor().isBlue()) {
- you.getManaPool().addMana(new Mana(0, 0, count, 0, 0, 0, 0), game, source);
+ you.getManaPool().addMana(new Mana(0, 0, count, 0, 0, 0, 0, 0), game, source);
} else if (choice.getColor().isRed()) {
- you.getManaPool().addMana(new Mana(count, 0, 0, 0, 0, 0, 0), game, source);
+ you.getManaPool().addMana(new Mana(count, 0, 0, 0, 0, 0, 0, 0), game, source);
} else if (choice.getColor().isGreen()) {
- you.getManaPool().addMana(new Mana(0, count, 0, 0, 0, 0, 0), game, source);
+ you.getManaPool().addMana(new Mana(0, count, 0, 0, 0, 0, 0, 0), game, source);
} else if (choice.getColor().isWhite()) {
- you.getManaPool().addMana(new Mana(0, 0, 0, count, 0, 0, 0), game, source);
+ you.getManaPool().addMana(new Mana(0, 0, 0, count, 0, 0, 0, 0), game, source);
}
return true;
diff --git a/Mage.Sets/src/mage/sets/commander2014/CoralAtoll.java b/Mage.Sets/src/mage/sets/commander2014/CoralAtoll.java
index 6d16e8d86f3..64ce9d767bf 100644
--- a/Mage.Sets/src/mage/sets/commander2014/CoralAtoll.java
+++ b/Mage.Sets/src/mage/sets/commander2014/CoralAtoll.java
@@ -53,12 +53,11 @@ public class CoralAtoll extends CardImpl {
private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("an untapped Island");
- static{
+ static {
filter.add(new SubtypePredicate("Island"));
filter.add(Predicates.not(new TappedPredicate()));
}
-
public CoralAtoll(UUID ownerId) {
super(ownerId, 287, "Coral Atoll", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, "");
this.expansionSetCode = "C14";
@@ -68,9 +67,8 @@ public class CoralAtoll extends CardImpl {
// When Coral Atoll enters the battlefield, sacrifice it unless you return an untapped Island you control to its owner's hand.
this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(filter)))));
// {tap}: Add {C}{U} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 0, 0, 1,0 ), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 0, 0, 0, 0, 1), new TapSourceCost()));
-
}
public CoralAtoll(final CoralAtoll card) {
diff --git a/Mage.Sets/src/mage/sets/commander2014/DormantVolcano.java b/Mage.Sets/src/mage/sets/commander2014/DormantVolcano.java
index 67d9a874e6c..7302e4d58d8 100644
--- a/Mage.Sets/src/mage/sets/commander2014/DormantVolcano.java
+++ b/Mage.Sets/src/mage/sets/commander2014/DormantVolcano.java
@@ -53,7 +53,7 @@ public class DormantVolcano extends CardImpl {
private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("an untapped Mountain");
- static{
+ static {
filter.add(new SubtypePredicate("Mountain"));
filter.add(Predicates.not(new TappedPredicate()));
}
@@ -69,7 +69,7 @@ public class DormantVolcano extends CardImpl {
this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(filter)))));
// {tap}: Add {C}{R} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 0, 1,0 ), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 0, 0, 0, 1), new TapSourceCost()));
}
diff --git a/Mage.Sets/src/mage/sets/commander2014/Everglades.java b/Mage.Sets/src/mage/sets/commander2014/Everglades.java
index f85a283357a..57054b36d58 100644
--- a/Mage.Sets/src/mage/sets/commander2014/Everglades.java
+++ b/Mage.Sets/src/mage/sets/commander2014/Everglades.java
@@ -69,7 +69,7 @@ public class Everglades extends CardImpl {
this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(1, 1, filter, true)))));
// {tap}: Add {C}{B} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 1, 1, 0), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 0, 1, 0, 1), new TapSourceCost()));
}
diff --git a/Mage.Sets/src/mage/sets/commander2014/JungleBasin.java b/Mage.Sets/src/mage/sets/commander2014/JungleBasin.java
index b64f47cee8b..21e1b907010 100644
--- a/Mage.Sets/src/mage/sets/commander2014/JungleBasin.java
+++ b/Mage.Sets/src/mage/sets/commander2014/JungleBasin.java
@@ -53,7 +53,7 @@ public class JungleBasin extends CardImpl {
private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("an untapped Forest");
- static{
+ static {
filter.add(new SubtypePredicate("Forest"));
filter.add(Predicates.not(new TappedPredicate()));
}
@@ -69,8 +69,8 @@ public class JungleBasin extends CardImpl {
this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(filter)))));
// {tap}: Add {C}{G} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 0, 0, 1,0 ), new TapSourceCost()));
-
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 0, 0, 0, 0, 1), new TapSourceCost()));
+
}
public JungleBasin(final JungleBasin card) {
diff --git a/Mage.Sets/src/mage/sets/commander2014/Karoo.java b/Mage.Sets/src/mage/sets/commander2014/Karoo.java
index 319a92cb888..bf5581edc3b 100644
--- a/Mage.Sets/src/mage/sets/commander2014/Karoo.java
+++ b/Mage.Sets/src/mage/sets/commander2014/Karoo.java
@@ -53,7 +53,7 @@ public class Karoo extends CardImpl {
private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("an untapped Plains");
- static{
+ static {
filter.add(new SubtypePredicate("Plains"));
filter.add(Predicates.not(new TappedPredicate()));
}
@@ -69,7 +69,7 @@ public class Karoo extends CardImpl {
this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(filter)))));
// {tap}: Add {C}{W} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 1, 0, 1,0 ), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 1, 0, 0, 0, 1), new TapSourceCost()));
}
diff --git a/Mage.Sets/src/mage/sets/conflux/Kaleidostone.java b/Mage.Sets/src/mage/sets/conflux/Kaleidostone.java
index b7936a0fa5a..0f16d54f870 100644
--- a/Mage.Sets/src/mage/sets/conflux/Kaleidostone.java
+++ b/Mage.Sets/src/mage/sets/conflux/Kaleidostone.java
@@ -54,7 +54,7 @@ public class Kaleidostone extends CardImpl {
// When Kaleidostone enters the battlefield, draw a card.
this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1)));
// {5}, {tap}, Sacrifice Kaleidostone: Add {W}{U}{B}{R}{G} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 1, 1, 1, 0, 0), new GenericManaCost(5));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 1, 1, 1, 0, 0, 0), new GenericManaCost(5));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/sets/conflux/KnotvineMystic.java b/Mage.Sets/src/mage/sets/conflux/KnotvineMystic.java
index afe5461a9fa..8e45fa0aa23 100644
--- a/Mage.Sets/src/mage/sets/conflux/KnotvineMystic.java
+++ b/Mage.Sets/src/mage/sets/conflux/KnotvineMystic.java
@@ -75,8 +75,8 @@ public class KnotvineMystic extends CardImpl{
class KnotvineMysticManaAbility extends BasicManaAbility {
public KnotvineMysticManaAbility() {
- super(new BasicManaEffect(new Mana(1, 1, 0, 1, 0, 0, 0)));
- this.netMana.add(new Mana(1, 1, 0, 1, 0, 0, 0));
+ 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) {
diff --git a/Mage.Sets/src/mage/sets/darksteel/MyrMoonvessel.java b/Mage.Sets/src/mage/sets/darksteel/MyrMoonvessel.java
index d57eeb8560b..cb314e1bc3c 100644
--- a/Mage.Sets/src/mage/sets/darksteel/MyrMoonvessel.java
+++ b/Mage.Sets/src/mage/sets/darksteel/MyrMoonvessel.java
@@ -25,18 +25,16 @@
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
-
package mage.sets.darksteel;
import java.util.UUID;
-
-import mage.constants.CardType;
-import mage.constants.Rarity;
import mage.MageInt;
import mage.Mana;
import mage.abilities.common.DiesTriggeredAbility;
import mage.abilities.effects.common.BasicManaEffect;
import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
/**
* @author Loki
@@ -49,7 +47,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, 1, 0))));
+ this.addAbility(new DiesTriggeredAbility(new BasicManaEffect(new Mana(0, 0, 0, 0, 0, 0, 0, 1))));
}
public MyrMoonvessel(final MyrMoonvessel card) {
diff --git a/Mage.Sets/src/mage/sets/darksteel/UrGolemsEye.java b/Mage.Sets/src/mage/sets/darksteel/UrGolemsEye.java
index c5599a8d824..55137d9643b 100644
--- a/Mage.Sets/src/mage/sets/darksteel/UrGolemsEye.java
+++ b/Mage.Sets/src/mage/sets/darksteel/UrGolemsEye.java
@@ -25,17 +25,15 @@
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
-
package mage.sets.darksteel;
import java.util.UUID;
-
-import mage.constants.CardType;
-import mage.constants.Rarity;
import mage.Mana;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
import mage.constants.Zone;
/**
@@ -44,15 +42,15 @@ import mage.constants.Zone;
*/
public class UrGolemsEye extends CardImpl {
- public UrGolemsEye (UUID ownerId) {
+ public UrGolemsEye(UUID ownerId) {
super(ownerId, 155, "Ur-Golem's Eye", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{4}");
this.expansionSetCode = "DST";
-
+
// {tap}: Add {C}{C} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0,0,0,0,0,2,0), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 0, 0, 0, 2), new TapSourceCost()));
}
- public UrGolemsEye (final UrGolemsEye card) {
+ public UrGolemsEye(final UrGolemsEye card) {
super(card);
}
@@ -62,4 +60,3 @@ public class UrGolemsEye extends CardImpl {
}
}
-
diff --git a/Mage.Sets/src/mage/sets/dissension/AzoriusChancery.java b/Mage.Sets/src/mage/sets/dissension/AzoriusChancery.java
index b7df79e90d1..acadac38666 100644
--- a/Mage.Sets/src/mage/sets/dissension/AzoriusChancery.java
+++ b/Mage.Sets/src/mage/sets/dissension/AzoriusChancery.java
@@ -58,7 +58,7 @@ public class AzoriusChancery extends CardImpl {
// When Azorius Chancery enters the battlefield, return a land you control to its owner's hand.
this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(filter), false));
// {tap}: Add {W}{U} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 1, 0, 0, 0), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 1, 0, 0, 0, 0), new TapSourceCost()));
}
public AzoriusChancery(final AzoriusChancery card) {
diff --git a/Mage.Sets/src/mage/sets/dissension/AzoriusSignet.java b/Mage.Sets/src/mage/sets/dissension/AzoriusSignet.java
index 514c19fdad5..d970c8302f0 100644
--- a/Mage.Sets/src/mage/sets/dissension/AzoriusSignet.java
+++ b/Mage.Sets/src/mage/sets/dissension/AzoriusSignet.java
@@ -50,7 +50,7 @@ public class AzoriusSignet extends CardImpl {
this.expansionSetCode = "DIS";
// {1}, {tap}: Add {W}{U} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 1, 0, 0, 0), new GenericManaCost(1));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 1, 0, 0, 0, 0), new GenericManaCost(1));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/dissension/RakdosCarnarium.java b/Mage.Sets/src/mage/sets/dissension/RakdosCarnarium.java
index 12530374921..a76be1d3bb7 100644
--- a/Mage.Sets/src/mage/sets/dissension/RakdosCarnarium.java
+++ b/Mage.Sets/src/mage/sets/dissension/RakdosCarnarium.java
@@ -61,7 +61,7 @@ public class RakdosCarnarium extends CardImpl {
// When Rakdos Carnarium enters the battlefield, return a land you control to its owner's hand.
this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(filter), false));
// {tap}: Add {B}{R} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 1, 0, 0), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 1, 0, 0, 0), new TapSourceCost()));
}
public RakdosCarnarium(final RakdosCarnarium card) {
diff --git a/Mage.Sets/src/mage/sets/dissension/RakdosSignet.java b/Mage.Sets/src/mage/sets/dissension/RakdosSignet.java
index f7371aa3d16..d98733450c7 100644
--- a/Mage.Sets/src/mage/sets/dissension/RakdosSignet.java
+++ b/Mage.Sets/src/mage/sets/dissension/RakdosSignet.java
@@ -50,7 +50,7 @@ public class RakdosSignet extends CardImpl {
this.expansionSetCode = "DIS";
// {1}, {tap}: Add {B}{R} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 1, 0, 0), new GenericManaCost(1));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 1, 0, 0, 0), new GenericManaCost(1));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/dissension/SimicGrowthChamber.java b/Mage.Sets/src/mage/sets/dissension/SimicGrowthChamber.java
index 74e7dd1c3fa..f2d877e10fd 100644
--- a/Mage.Sets/src/mage/sets/dissension/SimicGrowthChamber.java
+++ b/Mage.Sets/src/mage/sets/dissension/SimicGrowthChamber.java
@@ -58,7 +58,7 @@ public class SimicGrowthChamber extends CardImpl {
// When Simic Growth Chamber enters the battlefield, return a land you control to its owner's hand.
this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(filter), false));
// {tap}: Add {G}{U} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 1, 0, 0, 0, 0), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 1, 0, 0, 0, 0, 0), new TapSourceCost()));
}
public SimicGrowthChamber(final SimicGrowthChamber card) {
diff --git a/Mage.Sets/src/mage/sets/dissension/SimicSignet.java b/Mage.Sets/src/mage/sets/dissension/SimicSignet.java
index 9f241798ffa..c4dc7b90400 100644
--- a/Mage.Sets/src/mage/sets/dissension/SimicSignet.java
+++ b/Mage.Sets/src/mage/sets/dissension/SimicSignet.java
@@ -50,7 +50,7 @@ public class SimicSignet extends CardImpl {
this.expansionSetCode = "DIS";
// {1}, {tap}: Add {G}{U} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 1, 0, 0, 0, 0), new GenericManaCost(1));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 1, 0, 0, 0, 0, 0), new GenericManaCost(1));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/CircleOfElders.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/CircleOfElders.java
index 5b9929053b8..3f698ec14ab 100644
--- a/Mage.Sets/src/mage/sets/dragonsoftarkir/CircleOfElders.java
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/CircleOfElders.java
@@ -62,7 +62,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,3,0)),
+ new BasicManaEffect(new Mana(0, 0, 0, 0, 0, 0, 0, 3)),
new TapSourceCost(),
FormidableCondition.getInstance());
ability.setAbilityWord(AbilityWord.FORMIDABLE);
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/SavageVentmaw.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/SavageVentmaw.java
index fec5afbe04f..d6138c64ec8 100644
--- a/Mage.Sets/src/mage/sets/dragonsoftarkir/SavageVentmaw.java
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/SavageVentmaw.java
@@ -58,7 +58,7 @@ public class SavageVentmaw extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// Whenever Savage Ventmaw attacks, add {R}{R}{R}{G}{G}{G} to your mana pool. Until end of turn, this mana doesn't empty from your mana pool as steps and phases end.
- Effect effect = new SavageVentmawManaEffect(new Mana(3, 3, 0, 0, 0, 0, 0), "your", true);
+ Effect effect = new SavageVentmawManaEffect(new Mana(3, 3, 0, 0, 0, 0, 0, 0), "your", true);
effect.setText("add {R}{R}{R}{G}{G}{G} to your mana pool. Until end of turn, this mana doesn't empty from your mana pool as steps and phases end");
this.addAbility(new AttacksTriggeredAbility(effect, false));
diff --git a/Mage.Sets/src/mage/sets/eighthedition/StarCompass.java b/Mage.Sets/src/mage/sets/eighthedition/StarCompass.java
index dad4627b46a..4c2e4dd2102 100644
--- a/Mage.Sets/src/mage/sets/eighthedition/StarCompass.java
+++ b/Mage.Sets/src/mage/sets/eighthedition/StarCompass.java
@@ -80,7 +80,7 @@ public class StarCompass extends CardImpl {
class StarCompassManaAbility extends ManaAbility {
public StarCompassManaAbility() {
- super(Zone.BATTLEFIELD, new StarCompassManaEffect(),new TapSourceCost());
+ super(Zone.BATTLEFIELD, new StarCompassManaEffect(), new TapSourceCost());
}
public StarCompassManaAbility(final StarCompassManaAbility ability) {
@@ -94,14 +94,14 @@ class StarCompassManaAbility extends ManaAbility {
@Override
public List getNetMana(Game game) {
- return ((StarCompassManaEffect)getEffects().get(0)).getNetMana(game, this);
+ return ((StarCompassManaEffect) getEffects().get(0)).getNetMana(game, this);
}
}
class StarCompassManaEffect extends ManaEffect {
private static final FilterControlledPermanent filter = new FilterControlledLandPermanent();
-
+
static {
filter.add(new SupertypePredicate("Basic"));
}
@@ -135,7 +135,7 @@ class StarCompassManaEffect extends ManaEffect {
if (types.getWhite() > 0) {
choice.getChoices().add("White");
}
- if (types.getColorless() > 0) {
+ if (types.getGeneric() > 0) {
choice.getChoices().add("Colorless");
}
if (types.getAny() > 0) {
@@ -172,7 +172,7 @@ class StarCompassManaEffect extends ManaEffect {
mana.setWhite(1);
break;
case "Colorless":
- mana.setColorless(1);
+ mana.setGeneric(1);
break;
}
checkToFirePossibleEvents(mana, game, source);
@@ -184,7 +184,7 @@ class StarCompassManaEffect extends ManaEffect {
return true;
}
- public List getNetMana(Game game, Ability source) {
+ public List getNetMana(Game game, Ability source) {
List netManas = new ArrayList<>();
Mana types = getManaTypes(game, source);
if (types.getBlack() > 0) {
@@ -202,8 +202,8 @@ class StarCompassManaEffect extends ManaEffect {
if (types.getWhite() > 0) {
netManas.add(new Mana(ColoredManaSymbol.W));
}
- if (types.getColorless() > 0) {
- netManas.add(new Mana(0,0,0,0,0,1,0));
+ if (types.getGeneric() > 0) {
+ netManas.add(new Mana(0, 0, 0, 0, 0, 0, 0, 1));
}
return netManas;
}
@@ -215,7 +215,7 @@ class StarCompassManaEffect extends ManaEffect {
Abilities manaAbilities = land.getAbilities().getManaAbilities(Zone.BATTLEFIELD);
for (ManaAbility ability : manaAbilities) {
if (!ability.equals(source) && ability.definesMana()) {
- for (Mana netMana: ability.getNetMana(game)) {
+ for (Mana netMana : ability.getNetMana(game)) {
types.add(netMana);
}
}
@@ -233,4 +233,4 @@ class StarCompassManaEffect extends ManaEffect {
public StarCompassManaEffect copy() {
return new StarCompassManaEffect(this);
}
-}
\ No newline at end of file
+}
diff --git a/Mage.Sets/src/mage/sets/eventide/CascadeBluffs.java b/Mage.Sets/src/mage/sets/eventide/CascadeBluffs.java
index deda0137e10..eb57785692c 100644
--- a/Mage.Sets/src/mage/sets/eventide/CascadeBluffs.java
+++ b/Mage.Sets/src/mage/sets/eventide/CascadeBluffs.java
@@ -57,7 +57,7 @@ public class CascadeBluffs extends CardImpl {
ability.addCost(new TapSourceCost());
this.addAbility(ability);
- ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 1, 0, 0, 0, 0), new ManaCostsImpl("{U/R}"));
+ ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 1, 0, 0, 0, 0, 0), new ManaCostsImpl("{U/R}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/sets/eventide/FetidHeath.java b/Mage.Sets/src/mage/sets/eventide/FetidHeath.java
index 17b91c2a6a6..22c527249c6 100644
--- a/Mage.Sets/src/mage/sets/eventide/FetidHeath.java
+++ b/Mage.Sets/src/mage/sets/eventide/FetidHeath.java
@@ -59,7 +59,7 @@ public class FetidHeath extends CardImpl {
ability.addCost(new TapSourceCost());
this.addAbility(ability);
- ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 1, 1, 0, 0), new ManaCostsImpl("{W/B}"));
+ ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 1, 1, 0, 0, 0), new ManaCostsImpl("{W/B}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/sets/eventide/FloodedGrove.java b/Mage.Sets/src/mage/sets/eventide/FloodedGrove.java
index 8179e60230f..bc2965aed77 100644
--- a/Mage.Sets/src/mage/sets/eventide/FloodedGrove.java
+++ b/Mage.Sets/src/mage/sets/eventide/FloodedGrove.java
@@ -57,7 +57,7 @@ public class FloodedGrove extends CardImpl {
ability.addCost(new TapSourceCost());
this.addAbility(ability);
- ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 1, 0, 0, 0, 0), new ManaCostsImpl("{G/U}"));
+ ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 1, 0, 0, 0, 0, 0), new ManaCostsImpl("{G/U}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/sets/eventide/RuggedPrairie.java b/Mage.Sets/src/mage/sets/eventide/RuggedPrairie.java
index 1a0c6f0c1dd..2af353c465a 100644
--- a/Mage.Sets/src/mage/sets/eventide/RuggedPrairie.java
+++ b/Mage.Sets/src/mage/sets/eventide/RuggedPrairie.java
@@ -56,7 +56,7 @@ public class RuggedPrairie extends CardImpl {
ability.addCost(new TapSourceCost());
this.addAbility(ability);
- ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 1, 0, 0, 0), new ManaCostsImpl("{R/W}"));
+ ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 1, 0, 0, 0, 0), new ManaCostsImpl("{R/W}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/sets/eventide/TwilightMire.java b/Mage.Sets/src/mage/sets/eventide/TwilightMire.java
index df41bac3c7d..8113376b38a 100644
--- a/Mage.Sets/src/mage/sets/eventide/TwilightMire.java
+++ b/Mage.Sets/src/mage/sets/eventide/TwilightMire.java
@@ -57,7 +57,7 @@ public class TwilightMire extends CardImpl {
ability.addCost(new TapSourceCost());
this.addAbility(ability);
- ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 0, 1, 0, 0), new ManaCostsImpl("{B/G}"));
+ ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 0, 1, 0, 0, 0), new ManaCostsImpl("{B/G}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/sets/exodus/CullingTheWeak.java b/Mage.Sets/src/mage/sets/exodus/CullingTheWeak.java
index 80bb18a0270..8fbae381f78 100644
--- a/Mage.Sets/src/mage/sets/exodus/CullingTheWeak.java
+++ b/Mage.Sets/src/mage/sets/exodus/CullingTheWeak.java
@@ -52,7 +52,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)));
+ this.getSpellAbility().addEffect(new BasicManaEffect(new Mana(0, 0, 0, 0, 4, 0, 0, 0)));
}
public CullingTheWeak(final CullingTheWeak card) {
diff --git a/Mage.Sets/src/mage/sets/exodus/Workhorse.java b/Mage.Sets/src/mage/sets/exodus/Workhorse.java
index ac3c4701a3c..5dca1b48425 100644
--- a/Mage.Sets/src/mage/sets/exodus/Workhorse.java
+++ b/Mage.Sets/src/mage/sets/exodus/Workhorse.java
@@ -55,10 +55,10 @@ public class Workhorse extends CardImpl {
// Workhorse enters the battlefield with four +1/+1 counters on it.
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, 1, 0)),
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD,
+ new Mana(new Mana(0, 0, 0, 0, 0, 0, 0, 1)),
new RemoveCountersSourceCost(CounterType.P1P1.createInstance())));
}
diff --git a/Mage.Sets/src/mage/sets/fallenempires/BasalThrull1.java b/Mage.Sets/src/mage/sets/fallenempires/BasalThrull1.java
index efef91c76aa..211f991881c 100644
--- a/Mage.Sets/src/mage/sets/fallenempires/BasalThrull1.java
+++ b/Mage.Sets/src/mage/sets/fallenempires/BasalThrull1.java
@@ -54,7 +54,7 @@ public class BasalThrull1 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)), new TapSourceCost());
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(new Mana(0, 0, 0, 0, 2, 0, 0, 0)), new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/fatereforged/FrontierSiege.java b/Mage.Sets/src/mage/sets/fatereforged/FrontierSiege.java
index 1a98c5c215c..5c5d1c62d01 100644
--- a/Mage.Sets/src/mage/sets/fatereforged/FrontierSiege.java
+++ b/Mage.Sets/src/mage/sets/fatereforged/FrontierSiege.java
@@ -108,7 +108,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)), false);
+ super(Zone.BATTLEFIELD, new AddManaToManaPoolSourceControllerEffect(new Mana(0, 2, 0, 0, 0, 0, 0, 0)), false);
}
diff --git a/Mage.Sets/src/mage/sets/fifthdawn/ChannelTheSuns.java b/Mage.Sets/src/mage/sets/fifthdawn/ChannelTheSuns.java
index 099b9cb6203..5d126de1ae5 100644
--- a/Mage.Sets/src/mage/sets/fifthdawn/ChannelTheSuns.java
+++ b/Mage.Sets/src/mage/sets/fifthdawn/ChannelTheSuns.java
@@ -48,7 +48,7 @@ public class ChannelTheSuns extends CardImpl {
// Add {W}{U}{B}{R}{G} to your mana pool.
- Effect effect = new AddManaToManaPoolSourceControllerEffect(new Mana(1, 1, 1, 1, 1, 0, 0));
+ Effect effect = new AddManaToManaPoolSourceControllerEffect(new Mana(1, 1, 1, 1, 1, 0, 0, 0));
this.getSpellAbility().addEffect(effect);
}
diff --git a/Mage.Sets/src/mage/sets/gatecrash/BurningTreeEmissary.java b/Mage.Sets/src/mage/sets/gatecrash/BurningTreeEmissary.java
index 5f3cb1626fe..43a304130e7 100644
--- a/Mage.Sets/src/mage/sets/gatecrash/BurningTreeEmissary.java
+++ b/Mage.Sets/src/mage/sets/gatecrash/BurningTreeEmissary.java
@@ -52,7 +52,7 @@ public class BurningTreeEmissary extends CardImpl {
this.toughness = new MageInt(2);
// When Burning-Tree Emissary enters the battlefield, add {R}{G} to your mana pool.
- this.addAbility(new EntersBattlefieldTriggeredAbility(new BasicManaEffect(new Mana(1,1,0,0,0,0,0))));
+ this.addAbility(new EntersBattlefieldTriggeredAbility(new BasicManaEffect(new Mana(1,1,0,0,0,0,0, 0))));
}
public BurningTreeEmissary(final BurningTreeEmissary card) {
diff --git a/Mage.Sets/src/mage/sets/guildpact/GruulSignet.java b/Mage.Sets/src/mage/sets/guildpact/GruulSignet.java
index 1bdaefefae5..6dbb3bac462 100644
--- a/Mage.Sets/src/mage/sets/guildpact/GruulSignet.java
+++ b/Mage.Sets/src/mage/sets/guildpact/GruulSignet.java
@@ -48,7 +48,7 @@ public class GruulSignet extends CardImpl {
public GruulSignet(UUID ownerId) {
super(ownerId, 150, "Gruul Signet", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{2}");
this.expansionSetCode = "GPT";
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 0, 0, 0, 0, 0), new GenericManaCost(1));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 0, 0, 0, 0, 0, 0), new GenericManaCost(1));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/guildpact/IzzetBoilerworks.java b/Mage.Sets/src/mage/sets/guildpact/IzzetBoilerworks.java
index e28721fdfbd..7b8e4e5ddc0 100644
--- a/Mage.Sets/src/mage/sets/guildpact/IzzetBoilerworks.java
+++ b/Mage.Sets/src/mage/sets/guildpact/IzzetBoilerworks.java
@@ -58,7 +58,7 @@ public class IzzetBoilerworks extends CardImpl {
// When Izzet Boilerworks enters the battlefield, return a land you control to its owner's hand.
this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(filter), false));
// {T}: Add {U}{R} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 1, 0, 0, 0, 0), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 1, 0, 0, 0, 0, 0), new TapSourceCost()));
}
public IzzetBoilerworks(final IzzetBoilerworks card) {
diff --git a/Mage.Sets/src/mage/sets/guildpact/IzzetSignet.java b/Mage.Sets/src/mage/sets/guildpact/IzzetSignet.java
index 47bd30b3872..6648dfc9a2c 100644
--- a/Mage.Sets/src/mage/sets/guildpact/IzzetSignet.java
+++ b/Mage.Sets/src/mage/sets/guildpact/IzzetSignet.java
@@ -48,7 +48,7 @@ public class IzzetSignet extends CardImpl {
public IzzetSignet(UUID ownerId) {
super(ownerId, 152, "Izzet Signet", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{2}");
this.expansionSetCode = "GPT";
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 1, 0, 0, 0, 0), new GenericManaCost(1));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 1, 0, 0, 0, 0, 0), new GenericManaCost(1));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/guildpact/OrzhovBasilica.java b/Mage.Sets/src/mage/sets/guildpact/OrzhovBasilica.java
index 2ccb117762f..6039ffcbabf 100644
--- a/Mage.Sets/src/mage/sets/guildpact/OrzhovBasilica.java
+++ b/Mage.Sets/src/mage/sets/guildpact/OrzhovBasilica.java
@@ -60,7 +60,7 @@ public class OrzhovBasilica extends CardImpl {
this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(filter), false));
// {T}: Add {W}{B} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 1, 1, 0, 0), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 1, 1, 0, 0, 0), new TapSourceCost()));
}
public OrzhovBasilica(final OrzhovBasilica card) {
diff --git a/Mage.Sets/src/mage/sets/guildpact/OrzhovSignet.java b/Mage.Sets/src/mage/sets/guildpact/OrzhovSignet.java
index 069d2b43874..4cb0fb3805f 100644
--- a/Mage.Sets/src/mage/sets/guildpact/OrzhovSignet.java
+++ b/Mage.Sets/src/mage/sets/guildpact/OrzhovSignet.java
@@ -48,7 +48,7 @@ public class OrzhovSignet extends CardImpl {
public OrzhovSignet(UUID ownerId) {
super(ownerId, 155, "Orzhov Signet", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{2}");
this.expansionSetCode = "GPT";
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 1, 1, 0, 0), new GenericManaCost(1));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 1, 1, 0, 0, 0), new GenericManaCost(1));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/iceage/FyndhornElder.java b/Mage.Sets/src/mage/sets/iceage/FyndhornElder.java
index 0d83d21f4b1..c98a70bca44 100644
--- a/Mage.Sets/src/mage/sets/iceage/FyndhornElder.java
+++ b/Mage.Sets/src/mage/sets/iceage/FyndhornElder.java
@@ -54,7 +54,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), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 2, 0, 0, 0, 0, 0, 0), new TapSourceCost()));
}
public FyndhornElder(final FyndhornElder card) {
diff --git a/Mage.Sets/src/mage/sets/invasion/AncientSpring.java b/Mage.Sets/src/mage/sets/invasion/AncientSpring.java
index 024083280e8..9f9cefc3ce6 100644
--- a/Mage.Sets/src/mage/sets/invasion/AncientSpring.java
+++ b/Mage.Sets/src/mage/sets/invasion/AncientSpring.java
@@ -55,7 +55,7 @@ public class AncientSpring extends CardImpl {
// {tap}: Add {U} to your mana pool.
this.addAbility(new BlueManaAbility());
// {tap}, Sacrifice Ancient Spring: Add {W}{B} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 1, 1, 0, 0), new TapSourceCost());
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 1, 1, 0, 0, 0), new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/invasion/CrosissAttendant.java b/Mage.Sets/src/mage/sets/invasion/CrosissAttendant.java
index 69a954c5964..afc878a98f8 100644
--- a/Mage.Sets/src/mage/sets/invasion/CrosissAttendant.java
+++ b/Mage.Sets/src/mage/sets/invasion/CrosissAttendant.java
@@ -54,7 +54,7 @@ public class CrosissAttendant extends CardImpl {
this.toughness = new MageInt(3);
// {1}, Sacrifice Crosis's Attendant: Add {U}{B}{R} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 1, 0, 1, 0, 0), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 1, 0, 1, 0, 0, 0), new ManaCostsImpl("{1}"));
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/invasion/DarigaazsAttendant.java b/Mage.Sets/src/mage/sets/invasion/DarigaazsAttendant.java
index dbaaf070443..488f79b1570 100644
--- a/Mage.Sets/src/mage/sets/invasion/DarigaazsAttendant.java
+++ b/Mage.Sets/src/mage/sets/invasion/DarigaazsAttendant.java
@@ -54,7 +54,7 @@ public class DarigaazsAttendant extends CardImpl {
this.toughness = new MageInt(3);
// {1}, Sacrifice Darigaaz's Attendant: Add {B}{R}{G} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 0, 0, 1, 0, 0), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 0, 0, 1, 0, 0, 0), new ManaCostsImpl("{1}"));
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/invasion/DromarsAttendant.java b/Mage.Sets/src/mage/sets/invasion/DromarsAttendant.java
index 183d0723041..27a482fbc9c 100644
--- a/Mage.Sets/src/mage/sets/invasion/DromarsAttendant.java
+++ b/Mage.Sets/src/mage/sets/invasion/DromarsAttendant.java
@@ -54,7 +54,7 @@ public class DromarsAttendant extends CardImpl {
this.toughness = new MageInt(3);
// {1}, Sacrifice Dromar's Attendant: Add {W}{U}{B} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 1, 1, 0, 0), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 1, 1, 0, 0, 0), new ManaCostsImpl("{1}"));
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/invasion/GeothermalCrevice.java b/Mage.Sets/src/mage/sets/invasion/GeothermalCrevice.java
index 9b29ec0ccb3..9d3efb862b7 100644
--- a/Mage.Sets/src/mage/sets/invasion/GeothermalCrevice.java
+++ b/Mage.Sets/src/mage/sets/invasion/GeothermalCrevice.java
@@ -57,7 +57,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)), new TapSourceCost());
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(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/sets/invasion/IrrigationDitch.java b/Mage.Sets/src/mage/sets/invasion/IrrigationDitch.java
index 6a6f5ac57ea..7ae6ec0e6a0 100644
--- a/Mage.Sets/src/mage/sets/invasion/IrrigationDitch.java
+++ b/Mage.Sets/src/mage/sets/invasion/IrrigationDitch.java
@@ -55,7 +55,7 @@ public class IrrigationDitch extends CardImpl {
// {tap}: Add {W} to your mana pool.
this.addAbility(new WhiteManaAbility());
// {tap}, Sacrifice Irrigation Ditch: Add {G}{U} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 1, 0, 0, 0, 0), new TapSourceCost());
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 1, 0, 0, 0, 0, 0), new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/invasion/RithsAttendant.java b/Mage.Sets/src/mage/sets/invasion/RithsAttendant.java
index 0224f36a1cb..7785201c157 100644
--- a/Mage.Sets/src/mage/sets/invasion/RithsAttendant.java
+++ b/Mage.Sets/src/mage/sets/invasion/RithsAttendant.java
@@ -54,7 +54,7 @@ public class RithsAttendant extends CardImpl {
this.toughness = new MageInt(3);
// {1}, Sacrifice Rith's Attendant: Add {R}{G}{W} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 0, 1, 0, 0, 0), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 0, 1, 0, 0, 0, 0), new ManaCostsImpl("{1}"));
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/invasion/SulfurVent.java b/Mage.Sets/src/mage/sets/invasion/SulfurVent.java
index 4f416284069..72f4f9e3ec2 100644
--- a/Mage.Sets/src/mage/sets/invasion/SulfurVent.java
+++ b/Mage.Sets/src/mage/sets/invasion/SulfurVent.java
@@ -55,7 +55,7 @@ public class SulfurVent extends CardImpl {
// {tap}: Add {B} to your mana pool.
this.addAbility(new BlackManaAbility());
// {tap}, Sacrifice Sulfur Vent: Add {U}{R} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 1, 0, 0, 0, 0), new TapSourceCost());
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 1, 0, 0, 0, 0, 0), new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/invasion/TinderFarm.java b/Mage.Sets/src/mage/sets/invasion/TinderFarm.java
index 7a353d46f15..68b7eb05c0f 100644
--- a/Mage.Sets/src/mage/sets/invasion/TinderFarm.java
+++ b/Mage.Sets/src/mage/sets/invasion/TinderFarm.java
@@ -55,7 +55,7 @@ public class TinderFarm extends CardImpl {
// {tap}: Add {G} to your mana pool.
this.addAbility(new GreenManaAbility());
// {tap}, Sacrifice Tinder Farm: Add {R}{W} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 1, 0, 0, 0), new TapSourceCost());
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 1, 0, 0, 0, 0), new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/invasion/TrevasAttendant.java b/Mage.Sets/src/mage/sets/invasion/TrevasAttendant.java
index ba5cd76f688..152798c0782 100644
--- a/Mage.Sets/src/mage/sets/invasion/TrevasAttendant.java
+++ b/Mage.Sets/src/mage/sets/invasion/TrevasAttendant.java
@@ -54,7 +54,7 @@ public class TrevasAttendant extends CardImpl {
this.toughness = new MageInt(3);
// {1}, Sacrifice Treva's Attendant: Add {G}{W}{U} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 1, 1, 0, 0, 0), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 1, 1, 0, 0, 0, 0), new ManaCostsImpl("{1}"));
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/MarduWarshrieker.java b/Mage.Sets/src/mage/sets/khansoftarkir/MarduWarshrieker.java
index 754c0bfdc42..86f6e5e6555 100644
--- a/Mage.Sets/src/mage/sets/khansoftarkir/MarduWarshrieker.java
+++ b/Mage.Sets/src/mage/sets/khansoftarkir/MarduWarshrieker.java
@@ -55,7 +55,7 @@ public class MarduWarshrieker extends CardImpl {
this.toughness = new MageInt(3);
// Raid - When Mardu Warshrieker enters the battlefield, if you attacked with a creature this turn, add {R}{W}{B} to your mana pool.
- this.addAbility(new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new AddManaToManaPoolSourceControllerEffect(new Mana(1, 0, 0, 1, 1, 0, 0))), RaidCondition.getInstance(),
+ this.addAbility(new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new AddManaToManaPoolSourceControllerEffect(new Mana(1, 0, 0, 1, 1, 0, 0, 0))), RaidCondition.getInstance(),
"Raid - When {this} enters the battlefield, if you attacked with a creature this turn, add {R}{W}{B} to your mana pool."),
new PlayerAttackedWatcher());
}
diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/RattleclawMystic.java b/Mage.Sets/src/mage/sets/khansoftarkir/RattleclawMystic.java
index 96e97ce61f4..b518f0676d8 100644
--- a/Mage.Sets/src/mage/sets/khansoftarkir/RattleclawMystic.java
+++ b/Mage.Sets/src/mage/sets/khansoftarkir/RattleclawMystic.java
@@ -65,7 +65,7 @@ public class RattleclawMystic extends CardImpl {
this.addAbility(new MorphAbility(this, new ManaCostsImpl("{2}")));
// When Rattleclaw Mystic is turned face up, add {G}{U}{R} to your mana pool.
- this.addAbility(new TurnedFaceUpSourceTriggeredAbility(new AddManaToManaPoolSourceControllerEffect(new Mana(1,1,1,0,0,0,0))));
+ this.addAbility(new TurnedFaceUpSourceTriggeredAbility(new AddManaToManaPoolSourceControllerEffect(new Mana(1,1,1,0,0,0,0, 0))));
}
diff --git a/Mage.Sets/src/mage/sets/legions/WirewoodChanneler.java b/Mage.Sets/src/mage/sets/legions/WirewoodChanneler.java
index f878e0563fb..40329bf44df 100644
--- a/Mage.Sets/src/mage/sets/legions/WirewoodChanneler.java
+++ b/Mage.Sets/src/mage/sets/legions/WirewoodChanneler.java
@@ -61,7 +61,7 @@ public class WirewoodChanneler extends CardImpl {
this.toughness = new MageInt(2);
// {T}: Add X mana of any one color to your mana pool, where X is the number of Elves on the battlefield.
- DynamicManaAbility ability = new DynamicManaAbility(new Mana(0,0,0,0,0,0,1), new PermanentsOnBattlefieldCount(filter), new TapSourceCost(),
+ DynamicManaAbility ability = new DynamicManaAbility(new Mana(0,0,0,0,0,0,1, 0), new PermanentsOnBattlefieldCount(filter), new TapSourceCost(),
"Add X mana of any one color to your mana pool, where X is the number of Elves on the battlefield", true);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/limitedalpha/BasaltMonolith.java b/Mage.Sets/src/mage/sets/limitedalpha/BasaltMonolith.java
index 2d0f72a8e50..8bd25a64bb1 100644
--- a/Mage.Sets/src/mage/sets/limitedalpha/BasaltMonolith.java
+++ b/Mage.Sets/src/mage/sets/limitedalpha/BasaltMonolith.java
@@ -54,7 +54,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,3,0),new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 0, 0, 0, 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/sets/lorwyn/SoulbrightFlamekin.java b/Mage.Sets/src/mage/sets/lorwyn/SoulbrightFlamekin.java
index 7fc49236753..10df70970ab 100644
--- a/Mage.Sets/src/mage/sets/lorwyn/SoulbrightFlamekin.java
+++ b/Mage.Sets/src/mage/sets/lorwyn/SoulbrightFlamekin.java
@@ -122,7 +122,7 @@ class SoulbrightFlamekinEffect extends OneShotEffect {
}
info.activations++;
if (info.activations == 3) {
- controller.getManaPool().addMana(new Mana(8,0,0,0,0,0,0), game, source);
+ controller.getManaPool().addMana(new Mana(8,0,0,0,0,0,0, 0), game, source);
}
return true;
}
diff --git a/Mage.Sets/src/mage/sets/magic2014/LiturgyOfBlood.java b/Mage.Sets/src/mage/sets/magic2014/LiturgyOfBlood.java
index 1686965860f..af17063e50c 100644
--- a/Mage.Sets/src/mage/sets/magic2014/LiturgyOfBlood.java
+++ b/Mage.Sets/src/mage/sets/magic2014/LiturgyOfBlood.java
@@ -50,7 +50,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)));
+ this.getSpellAbility().addEffect(new BasicManaEffect(new Mana(0, 0, 0, 0, 3, 0, 0, 0)));
}
public LiturgyOfBlood(final LiturgyOfBlood card) {
diff --git a/Mage.Sets/src/mage/sets/magic2015/WasteNot.java b/Mage.Sets/src/mage/sets/magic2015/WasteNot.java
index ed5690362ef..8a65d0e558e 100644
--- a/Mage.Sets/src/mage/sets/magic2015/WasteNot.java
+++ b/Mage.Sets/src/mage/sets/magic2015/WasteNot.java
@@ -113,7 +113,7 @@ class WasteNotCreatureTriggeredAbility extends TriggeredAbilityImpl {
class WasteNotLandTriggeredAbility extends TriggeredAbilityImpl {
WasteNotLandTriggeredAbility() {
- super(Zone.BATTLEFIELD, new BasicManaEffect(new Mana(0, 0, 0, 0, 2, 0, 0)), false);
+ super(Zone.BATTLEFIELD, new BasicManaEffect(new Mana(0, 0, 0, 0, 2, 0, 0, 0)), false);
}
WasteNotLandTriggeredAbility(final WasteNotLandTriggeredAbility ability) {
diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/BogWitch.java b/Mage.Sets/src/mage/sets/mercadianmasques/BogWitch.java
index 82c83f63f0e..b1a69e0ac94 100644
--- a/Mage.Sets/src/mage/sets/mercadianmasques/BogWitch.java
+++ b/Mage.Sets/src/mage/sets/mercadianmasques/BogWitch.java
@@ -56,7 +56,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)), new ManaCostsImpl("{B}"));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(new Mana(0, 0, 0, 0, 3, 0, 0, 0)), new ManaCostsImpl("{B}"));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/KyrenToy.java b/Mage.Sets/src/mage/sets/mercadianmasques/KyrenToy.java
index 52e9b04d023..e47e646b6a8 100644
--- a/Mage.Sets/src/mage/sets/mercadianmasques/KyrenToy.java
+++ b/Mage.Sets/src/mage/sets/mercadianmasques/KyrenToy.java
@@ -60,7 +60,7 @@ public class KyrenToy extends CardImpl {
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance(1)), new GenericManaCost(1));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
-
+
// {T}, Remove X charge counters from Kyren Toy: Add X mana of {C} to your mana pool, and then add {C} to your mana pool.
ability = new KyrenToyManaAbility();
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.CHARGE.createInstance(1)));
@@ -75,8 +75,9 @@ public class KyrenToy extends CardImpl {
public KyrenToy copy() {
return new KyrenToy(this);
}
-
+
private class KyrenToyManaAbility extends BasicManaAbility {
+
KyrenToyManaAbility() {
super(new KyrenToyManaEffect());
}
@@ -89,7 +90,7 @@ public class KyrenToy extends CardImpl {
public KyrenToyManaAbility copy() {
return new KyrenToyManaAbility(this);
}
-}
+ }
private class KyrenToyManaEffect extends ManaEffect {
@@ -110,10 +111,10 @@ public class KyrenToy extends CardImpl {
int numberOfMana = 0;
for (Cost cost : source.getCosts()) {
if (cost instanceof RemoveVariableCountersSourceCost) {
- numberOfMana = ((RemoveVariableCountersSourceCost)cost).getAmount();
+ numberOfMana = ((RemoveVariableCountersSourceCost) cost).getAmount();
}
}
- Mana mana = new Mana(0, 0, 0, 0, 0, numberOfMana + 1, 0);
+ Mana mana = new Mana(0, 0, 0, 0, 0, 0, 0, numberOfMana + 1);
checkToFirePossibleEvents(mana, game, source);
player.getManaPool().addMana(mana, game, source);
return true;
@@ -130,5 +131,5 @@ public class KyrenToy extends CardImpl {
public KyrenToyManaEffect copy() {
return new KyrenToyManaEffect(this);
}
- }
+ }
}
diff --git a/Mage.Sets/src/mage/sets/mirage/LionsEyeDiamond.java b/Mage.Sets/src/mage/sets/mirage/LionsEyeDiamond.java
index 4f42ee0fdc5..9f985fc11a0 100644
--- a/Mage.Sets/src/mage/sets/mirage/LionsEyeDiamond.java
+++ b/Mage.Sets/src/mage/sets/mirage/LionsEyeDiamond.java
@@ -72,7 +72,7 @@ class LionsEyeDiamondAbility extends ManaAbility {
public LionsEyeDiamondAbility() {
super(Zone.BATTLEFIELD, new AddManaOfAnyColorEffect(3), new SacrificeSourceCost());
this.addCost(new DiscardHandCost());
- this.netMana.add(new Mana(0,0,0,0,0,0,3));
+ this.netMana.add(new Mana(0,0,0,0,0,0,3, 0));
}
public LionsEyeDiamondAbility(Zone zone, Mana mana, Cost cost) {
diff --git a/Mage.Sets/src/mage/sets/mirage/TeferisIsle.java b/Mage.Sets/src/mage/sets/mirage/TeferisIsle.java
index f964bf5d912..773727a636a 100644
--- a/Mage.Sets/src/mage/sets/mirage/TeferisIsle.java
+++ b/Mage.Sets/src/mage/sets/mirage/TeferisIsle.java
@@ -54,7 +54,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), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 2, 0, 0, 0, 0, 0), new TapSourceCost()));
}
diff --git a/Mage.Sets/src/mage/sets/mirrodin/Cathodion.java b/Mage.Sets/src/mage/sets/mirrodin/Cathodion.java
index 6ca82d31e62..3ed4e730700 100644
--- a/Mage.Sets/src/mage/sets/mirrodin/Cathodion.java
+++ b/Mage.Sets/src/mage/sets/mirrodin/Cathodion.java
@@ -28,13 +28,13 @@
package mage.sets.mirrodin;
import java.util.UUID;
-import mage.constants.CardType;
-import mage.constants.Rarity;
import mage.MageInt;
import mage.Mana;
import mage.abilities.common.DiesTriggeredAbility;
import mage.abilities.effects.common.BasicManaEffect;
import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
/**
*
@@ -48,7 +48,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, 3, 0)), false));
+ this.addAbility(new DiesTriggeredAbility(new BasicManaEffect(new Mana(0, 0, 0, 0, 0, 0, 0, 3)), false));
}
public Cathodion(final Cathodion card) {
diff --git a/Mage.Sets/src/mage/sets/mirrodin/Deconstruct.java b/Mage.Sets/src/mage/sets/mirrodin/Deconstruct.java
index 9ee62a3fbbd..5617cb1216f 100644
--- a/Mage.Sets/src/mage/sets/mirrodin/Deconstruct.java
+++ b/Mage.Sets/src/mage/sets/mirrodin/Deconstruct.java
@@ -56,7 +56,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)));
+ this.getSpellAbility().addEffect(new BasicManaEffect(new Mana(0, 3, 0, 0, 0, 0, 0, 0)));
}
public Deconstruct(final Deconstruct card) {
diff --git a/Mage.Sets/src/mage/sets/mirrodin/SeethingSong.java b/Mage.Sets/src/mage/sets/mirrodin/SeethingSong.java
index 63ddebe54fd..2e29d38b13f 100644
--- a/Mage.Sets/src/mage/sets/mirrodin/SeethingSong.java
+++ b/Mage.Sets/src/mage/sets/mirrodin/SeethingSong.java
@@ -44,7 +44,7 @@ public class SeethingSong extends CardImpl {
super(ownerId, 104, "Seething Song", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{R}");
this.expansionSetCode = "MRD";
- this.getSpellAbility().addEffect(new BasicManaEffect(new Mana(5, 0, 0, 0, 0, 0, 0)));
+ this.getSpellAbility().addEffect(new BasicManaEffect(new Mana(5, 0, 0, 0, 0, 0, 0, 0)));
}
public SeethingSong(final SeethingSong card) {
diff --git a/Mage.Sets/src/mage/sets/mirrodin/TurnToDust.java b/Mage.Sets/src/mage/sets/mirrodin/TurnToDust.java
index e7d98325521..e5f7433b23c 100644
--- a/Mage.Sets/src/mage/sets/mirrodin/TurnToDust.java
+++ b/Mage.Sets/src/mage/sets/mirrodin/TurnToDust.java
@@ -56,7 +56,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)));
+ this.getSpellAbility().addEffect(new BasicManaEffect(new Mana(0, 1, 0, 0, 0, 0, 0, 0)));
}
public TurnToDust(final TurnToDust card) {
diff --git a/Mage.Sets/src/mage/sets/modernmasters/DesperateRitual.java b/Mage.Sets/src/mage/sets/modernmasters/DesperateRitual.java
index c3da260b041..034061e8a7c 100644
--- a/Mage.Sets/src/mage/sets/modernmasters/DesperateRitual.java
+++ b/Mage.Sets/src/mage/sets/modernmasters/DesperateRitual.java
@@ -48,7 +48,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)));
+ this.getSpellAbility().addEffect(new BasicManaEffect(new Mana(3, 0, 0, 0, 0, 0, 0, 0)));
// Splice onto Arcane {1}{R}
this.addAbility(new SpliceOntoArcaneAbility("{1}{R}"));
}
diff --git a/Mage.Sets/src/mage/sets/modernmasters/GrinningIgnus.java b/Mage.Sets/src/mage/sets/modernmasters/GrinningIgnus.java
index f9c3f1ae041..f833771589f 100644
--- a/Mage.Sets/src/mage/sets/modernmasters/GrinningIgnus.java
+++ b/Mage.Sets/src/mage/sets/modernmasters/GrinningIgnus.java
@@ -54,7 +54,7 @@ public class GrinningIgnus extends CardImpl {
this.toughness = new MageInt(2);
// {R}, Return Grinning Ignus to its owner's hand: Add {C}{C}{R} to your mana pool. Activate this ability only any time you could cast a sorcery.
- Ability ability = new ActivateAsSorceryManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 0, 2, 0), new ManaCostsImpl("{R}"));
+ Ability ability = new ActivateAsSorceryManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 0, 0, 0, 2), new ManaCostsImpl("{R}"));
ability.addCost(new ReturnToHandFromBattlefieldSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/morningtide/HeritageDruid.java b/Mage.Sets/src/mage/sets/morningtide/HeritageDruid.java
index 91526f04495..4bd393d4667 100644
--- a/Mage.Sets/src/mage/sets/morningtide/HeritageDruid.java
+++ b/Mage.Sets/src/mage/sets/morningtide/HeritageDruid.java
@@ -64,7 +64,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), new TapTargetCost(new TargetControlledCreaturePermanent(3, 3, filter, true))));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 3, 0, 0, 0, 0, 0, 0), new TapTargetCost(new TargetControlledCreaturePermanent(3, 3, filter, true))));
}
public HeritageDruid(final HeritageDruid card) {
diff --git a/Mage.Sets/src/mage/sets/odyssey/CrystalQuarry.java b/Mage.Sets/src/mage/sets/odyssey/CrystalQuarry.java
index a39dfba2bba..ef681940ce1 100644
--- a/Mage.Sets/src/mage/sets/odyssey/CrystalQuarry.java
+++ b/Mage.Sets/src/mage/sets/odyssey/CrystalQuarry.java
@@ -52,7 +52,7 @@ public class CrystalQuarry extends CardImpl {
// {tap}: Add {C} to your mana pool.
this.addAbility(new ColorlessManaAbility());
// {5}, {tap}: Add {W}{U}{B}{R}{G} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 1, 1, 1, 0, 0), new ManaCostsImpl("{5}"));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 1, 1, 1, 0, 0, 0), new ManaCostsImpl("{5}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/odyssey/DarkwaterCatacombs.java b/Mage.Sets/src/mage/sets/odyssey/DarkwaterCatacombs.java
index 7910d65c942..8d8a771dd2b 100644
--- a/Mage.Sets/src/mage/sets/odyssey/DarkwaterCatacombs.java
+++ b/Mage.Sets/src/mage/sets/odyssey/DarkwaterCatacombs.java
@@ -49,7 +49,7 @@ public class DarkwaterCatacombs extends CardImpl {
this.expansionSetCode = "ODY";
// {1}, {tap}: Add {U}{B} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 0, 1, 0, 0), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 0, 1, 0, 0, 0), new ManaCostsImpl("{1}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/odyssey/DarkwaterEgg.java b/Mage.Sets/src/mage/sets/odyssey/DarkwaterEgg.java
index 52bd2d1bd08..ea5c1aa6760 100644
--- a/Mage.Sets/src/mage/sets/odyssey/DarkwaterEgg.java
+++ b/Mage.Sets/src/mage/sets/odyssey/DarkwaterEgg.java
@@ -51,7 +51,7 @@ public class DarkwaterEgg extends CardImpl {
this.expansionSetCode = "ODY";
// {2}, {tap}, Sacrifice Darkwater Egg: Add {U}{B} to your mana pool. Draw a card.
- ManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 0, 1, 0, 0), new ManaCostsImpl("{2}"));
+ ManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 0, 1, 0, 0, 0), new ManaCostsImpl("{2}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addEffect(new DrawCardSourceControllerEffect(1));
diff --git a/Mage.Sets/src/mage/sets/odyssey/MossfireEgg.java b/Mage.Sets/src/mage/sets/odyssey/MossfireEgg.java
index 693f6be1ed4..2a1d5c5308f 100644
--- a/Mage.Sets/src/mage/sets/odyssey/MossfireEgg.java
+++ b/Mage.Sets/src/mage/sets/odyssey/MossfireEgg.java
@@ -51,7 +51,7 @@ public class MossfireEgg extends CardImpl {
this.expansionSetCode = "ODY";
// {2}, {tap}, Sacrifice Mossfire Egg: Add {R}{G} to your mana pool. Draw a card.
- ManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 0, 0, 0, 0, 0), new ManaCostsImpl("{2}"));
+ ManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 0, 0, 0, 0, 0, 0), new ManaCostsImpl("{2}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addEffect(new DrawCardSourceControllerEffect(1));
diff --git a/Mage.Sets/src/mage/sets/odyssey/MossfireValley.java b/Mage.Sets/src/mage/sets/odyssey/MossfireValley.java
index a407388bb13..1b93c1255b5 100644
--- a/Mage.Sets/src/mage/sets/odyssey/MossfireValley.java
+++ b/Mage.Sets/src/mage/sets/odyssey/MossfireValley.java
@@ -49,7 +49,7 @@ public class MossfireValley extends CardImpl {
this.expansionSetCode = "ODY";
// {1}, {tap}: Add {R}{G} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 0, 0, 0, 0, 0), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 0, 0, 0, 0, 0, 0), new ManaCostsImpl("{1}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/odyssey/NantukoElder.java b/Mage.Sets/src/mage/sets/odyssey/NantukoElder.java
index 8b72ec99cf2..746e55b804e 100644
--- a/Mage.Sets/src/mage/sets/odyssey/NantukoElder.java
+++ b/Mage.Sets/src/mage/sets/odyssey/NantukoElder.java
@@ -53,7 +53,7 @@ public class NantukoElder extends CardImpl {
this.toughness = new MageInt(2);
// {tap}: Add {C}{G} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 0, 0, 1,0 ), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 0, 0, 0, 0, 1), new TapSourceCost()));
}
diff --git a/Mage.Sets/src/mage/sets/odyssey/OvereagerApprentice.java b/Mage.Sets/src/mage/sets/odyssey/OvereagerApprentice.java
index b7aaa015818..26e4ea4c71e 100644
--- a/Mage.Sets/src/mage/sets/odyssey/OvereagerApprentice.java
+++ b/Mage.Sets/src/mage/sets/odyssey/OvereagerApprentice.java
@@ -56,7 +56,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)), new DiscardCardCost());
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(new Mana(0, 0, 0, 0, 3, 0, 0, 0)), new DiscardCardCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/odyssey/ShadowbloodEgg.java b/Mage.Sets/src/mage/sets/odyssey/ShadowbloodEgg.java
index c2de9c96901..a6b5297b2ab 100644
--- a/Mage.Sets/src/mage/sets/odyssey/ShadowbloodEgg.java
+++ b/Mage.Sets/src/mage/sets/odyssey/ShadowbloodEgg.java
@@ -51,7 +51,7 @@ public class ShadowbloodEgg extends CardImpl {
this.expansionSetCode = "ODY";
// {2}, {tap}, Sacrifice Shadowblood Egg: Add {B}{R} to your mana pool. Draw a card.
- ManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 1, 0, 0), new ManaCostsImpl("{2}"));
+ ManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 1, 0, 0, 0), new ManaCostsImpl("{2}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addEffect(new DrawCardSourceControllerEffect(1));
diff --git a/Mage.Sets/src/mage/sets/odyssey/ShadowbloodRidge.java b/Mage.Sets/src/mage/sets/odyssey/ShadowbloodRidge.java
index 310e7bb2a16..e91f1e8e43e 100644
--- a/Mage.Sets/src/mage/sets/odyssey/ShadowbloodRidge.java
+++ b/Mage.Sets/src/mage/sets/odyssey/ShadowbloodRidge.java
@@ -49,7 +49,7 @@ public class ShadowbloodRidge extends CardImpl {
this.expansionSetCode = "ODY";
// {1}, {tap}: Add {B}{R} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 1, 0, 0), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 1, 0, 0, 0), new ManaCostsImpl("{1}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/odyssey/SkycloudEgg.java b/Mage.Sets/src/mage/sets/odyssey/SkycloudEgg.java
index 622f19765c1..81cd307b026 100644
--- a/Mage.Sets/src/mage/sets/odyssey/SkycloudEgg.java
+++ b/Mage.Sets/src/mage/sets/odyssey/SkycloudEgg.java
@@ -51,7 +51,7 @@ public class SkycloudEgg extends CardImpl {
this.expansionSetCode = "ODY";
// {2}, {tap}, Sacrifice Skycloud Egg: Add {W}{U} to your mana pool. Draw a card.
- ManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 1, 0, 0, 0), new ManaCostsImpl("{2}"));
+ ManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 1, 0, 0, 0, 0), new ManaCostsImpl("{2}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addEffect(new DrawCardSourceControllerEffect(1));
diff --git a/Mage.Sets/src/mage/sets/odyssey/SkycloudExpanse.java b/Mage.Sets/src/mage/sets/odyssey/SkycloudExpanse.java
index 15d3f42c90b..e135e7e6150 100644
--- a/Mage.Sets/src/mage/sets/odyssey/SkycloudExpanse.java
+++ b/Mage.Sets/src/mage/sets/odyssey/SkycloudExpanse.java
@@ -49,7 +49,7 @@ public class SkycloudExpanse extends CardImpl {
this.expansionSetCode = "ODY";
// {1}, {tap}: Add {W}{U} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 1, 0, 0, 0), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 1, 0, 0, 0, 0), new ManaCostsImpl("{1}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/odyssey/SungrassEgg.java b/Mage.Sets/src/mage/sets/odyssey/SungrassEgg.java
index 06a04ccfed1..6c73e8640a4 100644
--- a/Mage.Sets/src/mage/sets/odyssey/SungrassEgg.java
+++ b/Mage.Sets/src/mage/sets/odyssey/SungrassEgg.java
@@ -51,7 +51,7 @@ public class SungrassEgg extends CardImpl {
this.expansionSetCode = "ODY";
// {2}, {tap}, Sacrifice Sungrass Egg: Add {G}{W} to your mana pool. Draw a card.
- ManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 1, 0, 0, 0), new ManaCostsImpl("{2}"));
+ ManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 1, 0, 0, 0, 0), new ManaCostsImpl("{2}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addEffect(new DrawCardSourceControllerEffect(1));
diff --git a/Mage.Sets/src/mage/sets/odyssey/SungrassPrairie.java b/Mage.Sets/src/mage/sets/odyssey/SungrassPrairie.java
index bd165747fb4..1144357afd0 100644
--- a/Mage.Sets/src/mage/sets/odyssey/SungrassPrairie.java
+++ b/Mage.Sets/src/mage/sets/odyssey/SungrassPrairie.java
@@ -49,7 +49,7 @@ public class SungrassPrairie extends CardImpl {
this.expansionSetCode = "ODY";
// {1}, {tap}: Add {G}{W} to your mana pool.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 1, 0, 0, 0), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 1, 0, 0, 0, 0), new ManaCostsImpl("{1}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/onslaught/ManaEchoes.java b/Mage.Sets/src/mage/sets/onslaught/ManaEchoes.java
index 190644a4d8b..a213593f1cf 100644
--- a/Mage.Sets/src/mage/sets/onslaught/ManaEchoes.java
+++ b/Mage.Sets/src/mage/sets/onslaught/ManaEchoes.java
@@ -55,7 +55,7 @@ public class ManaEchoes extends CardImpl {
this.expansionSetCode = "ONS";
// Whenever a creature enters the battlefield, you may add X mana of {C} to your mana pool, where X is the number of creatures you control that share a creature type with it.
- this.addAbility(new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD,
+ this.addAbility(new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD,
new ManaEchoesEffect(), new FilterCreaturePermanent("a creature"), true, SetTargetPointer.PERMANENT, ""));
}
@@ -70,34 +70,34 @@ public class ManaEchoes extends CardImpl {
}
class ManaEchoesEffect extends OneShotEffect {
-
+
public ManaEchoesEffect() {
super(Outcome.Benefit);
this.staticText = "you may add X mana of {C} to your mana pool, where X is the number of creatures you control that share a creature type with it";
}
-
+
public ManaEchoesEffect(final ManaEchoesEffect effect) {
super(effect);
}
-
+
@Override
public ManaEchoesEffect copy() {
return new ManaEchoesEffect(this);
}
-
+
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
- Permanent permanent = game.getPermanentOrLKIBattlefield(getTargetPointer().getFirst(game, source));
+ Permanent permanent = game.getPermanentOrLKIBattlefield(getTargetPointer().getFirst(game, source));
if (controller != null && permanent != null) {
int foundCreatures = 0;
- for (Permanent perm: game.getBattlefield().getAllActivePermanents(new FilterCreaturePermanent(), source.getControllerId(), game)) {
+ for (Permanent perm : game.getBattlefield().getAllActivePermanents(new FilterCreaturePermanent(), source.getControllerId(), game)) {
if (CardUtil.shareSubtypes(permanent, perm)) {
- foundCreatures ++;
+ foundCreatures++;
}
}
if (foundCreatures > 0) {
- controller.getManaPool().addMana(new Mana(0,0,0,0,0,foundCreatures,0), game, source);
+ controller.getManaPool().addMana(new Mana(0, 0, 0, 0, 0, 0, 0, foundCreatures), game, source);
}
return true;
}
diff --git a/Mage.Sets/src/mage/sets/planarchaos/RadhaHeirToKeld.java b/Mage.Sets/src/mage/sets/planarchaos/RadhaHeirToKeld.java
index 9e2eec190e9..c41d3211e57 100644
--- a/Mage.Sets/src/mage/sets/planarchaos/RadhaHeirToKeld.java
+++ b/Mage.Sets/src/mage/sets/planarchaos/RadhaHeirToKeld.java
@@ -54,7 +54,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)), true);
+ Ability ability = new AttacksTriggeredAbility(new BasicManaEffect(new Mana(2,0,0,0,0,0,0, 0)), true);
this.addAbility(ability);
// {tap}: Add {G} to your mana pool.
diff --git a/Mage.Sets/src/mage/sets/planechase/BorosGarrison.java b/Mage.Sets/src/mage/sets/planechase/BorosGarrison.java
index ad13fe1c655..86bc17f8657 100644
--- a/Mage.Sets/src/mage/sets/planechase/BorosGarrison.java
+++ b/Mage.Sets/src/mage/sets/planechase/BorosGarrison.java
@@ -61,7 +61,7 @@ public class BorosGarrison extends CardImpl {
this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(filter), false));
// {T}: Add {R}{W} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 1, 0, 0, 0), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 1, 0, 0, 0, 0), new TapSourceCost()));
}
public BorosGarrison(final BorosGarrison card) {
diff --git a/Mage.Sets/src/mage/sets/planechase/DarkRitual.java b/Mage.Sets/src/mage/sets/planechase/DarkRitual.java
index c972b4c29c5..2eb22a6b1f7 100644
--- a/Mage.Sets/src/mage/sets/planechase/DarkRitual.java
+++ b/Mage.Sets/src/mage/sets/planechase/DarkRitual.java
@@ -44,7 +44,7 @@ public class DarkRitual extends CardImpl {
super(ownerId, 24, "Dark Ritual", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{B}");
this.expansionSetCode = "HOP";
- this.getSpellAbility().addEffect(new BasicManaEffect(new Mana(0, 0, 0, 0, 3, 0, 0)));
+ this.getSpellAbility().addEffect(new BasicManaEffect(new Mana(0, 0, 0, 0, 3, 0, 0, 0)));
}
public DarkRitual(final DarkRitual card) {
diff --git a/Mage.Sets/src/mage/sets/planechase/GruulTurf.java b/Mage.Sets/src/mage/sets/planechase/GruulTurf.java
index 8610a8ae2f6..6cba1ab5269 100644
--- a/Mage.Sets/src/mage/sets/planechase/GruulTurf.java
+++ b/Mage.Sets/src/mage/sets/planechase/GruulTurf.java
@@ -56,7 +56,7 @@ public class GruulTurf extends CardImpl {
this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(filter), false));
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 0, 0, 0, 0, 0), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 0, 0, 0, 0, 0, 0), new TapSourceCost()));
}
public GruulTurf(final GruulTurf card) {
diff --git a/Mage.Sets/src/mage/sets/planechase/VedalkenEngineer.java b/Mage.Sets/src/mage/sets/planechase/VedalkenEngineer.java
index 2e3e3d640d6..10b3c452fbd 100644
--- a/Mage.Sets/src/mage/sets/planechase/VedalkenEngineer.java
+++ b/Mage.Sets/src/mage/sets/planechase/VedalkenEngineer.java
@@ -114,7 +114,7 @@ class VedalkenEngineerAbility extends ManaAbility {
public VedalkenEngineerAbility(Cost cost, int amount, ConditionalManaBuilder manaBuilder) {
super(Zone.BATTLEFIELD, new VedalkenEngineerEffect(amount, manaBuilder), cost);
- this.netMana.add(new Mana(0,0,0,0,0,0, amount));
+ this.netMana.add(new Mana(0,0,0,0,0,0, amount, 0));
}
public VedalkenEngineerAbility(final VedalkenEngineerAbility ability) {
diff --git a/Mage.Sets/src/mage/sets/planeshift/MorgueToad.java b/Mage.Sets/src/mage/sets/planeshift/MorgueToad.java
index c12ceac6f83..35c78b5782a 100644
--- a/Mage.Sets/src/mage/sets/planeshift/MorgueToad.java
+++ b/Mage.Sets/src/mage/sets/planeshift/MorgueToad.java
@@ -53,7 +53,7 @@ public class MorgueToad extends CardImpl {
this.toughness = new MageInt(2);
// Sacrifice Morgue Toad: Add {U}{R} to your mana pool.
- SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 1, 0, 0, 0, 0), new SacrificeSourceCost());
+ SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 1, 0, 0, 0, 0, 0), new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/prophecy/AvatarOfHope.java b/Mage.Sets/src/mage/sets/prophecy/AvatarOfHope.java
index 13716f9a91c..caf303a3c11 100644
--- a/Mage.Sets/src/mage/sets/prophecy/AvatarOfHope.java
+++ b/Mage.Sets/src/mage/sets/prophecy/AvatarOfHope.java
@@ -130,12 +130,12 @@ class AdjustingCostsEffect extends CostModificationEffectImpl {
Mana mana = spellAbility.getManaCostsToPay().getMana();
Player player = game.getPlayer(source.getControllerId());
- if (mana.getColorless() > 0 && player != null && player.getLife() < 4) {
- int newCount = mana.getColorless() - 6;
+ if (mana.getGeneric() > 0 && player != null && player.getLife() < 4) {
+ int newCount = mana.getGeneric() - 6;
if (newCount < 0) {
newCount = 0;
}
- mana.setColorless(newCount);
+ mana.setGeneric(newCount);
spellAbility.getManaCostsToPay().load(mana.toString());
return true;
}
diff --git a/Mage.Sets/src/mage/sets/prophecy/AvatarOfMight.java b/Mage.Sets/src/mage/sets/prophecy/AvatarOfMight.java
index 8008f96f3df..f542af804fb 100644
--- a/Mage.Sets/src/mage/sets/prophecy/AvatarOfMight.java
+++ b/Mage.Sets/src/mage/sets/prophecy/AvatarOfMight.java
@@ -91,12 +91,12 @@ class AvatarOfMightCostReductionEffect extends CostModificationEffectImpl {
public boolean apply(Game game, Ability source, Ability abilityToModify) {
SpellAbility spellAbility = (SpellAbility) abilityToModify;
Mana mana = spellAbility.getManaCostsToPay().getMana();
- if (mana.getColorless() > 0) {
- int newCount = mana.getColorless() - 6;
+ if (mana.getGeneric() > 0) {
+ int newCount = mana.getGeneric() - 6;
if (newCount < 0) {
newCount = 0;
}
- mana.setColorless(newCount);
+ mana.setGeneric(newCount);
spellAbility.getManaCostsToPay().load(mana.toString());
return true;
}
diff --git a/Mage.Sets/src/mage/sets/prophecy/AvatarOfWill.java b/Mage.Sets/src/mage/sets/prophecy/AvatarOfWill.java
index 2dbd76b18b1..4a29fbadd8a 100644
--- a/Mage.Sets/src/mage/sets/prophecy/AvatarOfWill.java
+++ b/Mage.Sets/src/mage/sets/prophecy/AvatarOfWill.java
@@ -90,12 +90,12 @@ class AvatarOfWillCostReductionEffect extends CostModificationEffectImpl {
public boolean apply(Game game, Ability source, Ability abilityToModify) {
SpellAbility spellAbility = (SpellAbility) abilityToModify;
Mana mana = spellAbility.getManaCostsToPay().getMana();
- if (mana.getColorless() > 0) {
- int newCount = mana.getColorless() - 6;
+ if (mana.getGeneric() > 0) {
+ int newCount = mana.getGeneric() - 6;
if (newCount < 0) {
newCount = 0;
}
- mana.setColorless(newCount);
+ mana.setGeneric(newCount);
spellAbility.getManaCostsToPay().load(mana.toString());
return true;
}
diff --git a/Mage.Sets/src/mage/sets/ravnica/BorosSignet.java b/Mage.Sets/src/mage/sets/ravnica/BorosSignet.java
index b9cc7abe96a..08bc30e33c7 100644
--- a/Mage.Sets/src/mage/sets/ravnica/BorosSignet.java
+++ b/Mage.Sets/src/mage/sets/ravnica/BorosSignet.java
@@ -49,7 +49,7 @@ public class BorosSignet extends CardImpl {
super(ownerId, 255, "Boros Signet", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{2}");
this.expansionSetCode = "RAV";
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 1, 0, 0, 0), new GenericManaCost(1));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 1, 0, 0, 0, 0), new GenericManaCost(1));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/ravnica/DimirAqueduct.java b/Mage.Sets/src/mage/sets/ravnica/DimirAqueduct.java
index ff766fcc289..3d5c2d083c8 100644
--- a/Mage.Sets/src/mage/sets/ravnica/DimirAqueduct.java
+++ b/Mage.Sets/src/mage/sets/ravnica/DimirAqueduct.java
@@ -57,7 +57,7 @@ public class DimirAqueduct extends CardImpl {
// When Dimir Aqueduct enters the battlefield, return a land you control to its owner's hand.
this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(filter)));
// {tap}: Add {U}{B} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 0, 1, 0, 0), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 0, 1, 0, 0, 0), new TapSourceCost()));
}
public DimirAqueduct(final DimirAqueduct card) {
diff --git a/Mage.Sets/src/mage/sets/ravnica/DimirSignet.java b/Mage.Sets/src/mage/sets/ravnica/DimirSignet.java
index 5e36b1dc56a..ed0e9ffe16e 100644
--- a/Mage.Sets/src/mage/sets/ravnica/DimirSignet.java
+++ b/Mage.Sets/src/mage/sets/ravnica/DimirSignet.java
@@ -48,7 +48,7 @@ public class DimirSignet extends CardImpl {
public DimirSignet (UUID ownerId) {
super(ownerId, 260, "Dimir Signet", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{2}");
this.expansionSetCode = "RAV";
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 0, 1, 0, 0), new GenericManaCost(1));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 0, 1, 0, 0, 0), new GenericManaCost(1));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/ravnica/GolgariRotFarm.java b/Mage.Sets/src/mage/sets/ravnica/GolgariRotFarm.java
index c88529f1666..1adf8ea58e2 100644
--- a/Mage.Sets/src/mage/sets/ravnica/GolgariRotFarm.java
+++ b/Mage.Sets/src/mage/sets/ravnica/GolgariRotFarm.java
@@ -57,7 +57,7 @@ public class GolgariRotFarm extends CardImpl {
// When Golgari Rot Farm enters the battlefield, return a land you control to its owner's hand.
this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(filter)));
// {tap}: Add {B}{G} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 0, 1, 0, 0), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 0, 1, 0, 0, 0), new TapSourceCost()));
}
public GolgariRotFarm(final GolgariRotFarm card) {
diff --git a/Mage.Sets/src/mage/sets/ravnica/GolgariSignet.java b/Mage.Sets/src/mage/sets/ravnica/GolgariSignet.java
index 9ced3c4ed6b..82bf51ff708 100644
--- a/Mage.Sets/src/mage/sets/ravnica/GolgariSignet.java
+++ b/Mage.Sets/src/mage/sets/ravnica/GolgariSignet.java
@@ -49,7 +49,7 @@ public class GolgariSignet extends CardImpl {
public GolgariSignet (UUID ownerId) {
super(ownerId, 262, "Golgari Signet", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{2}");
this.expansionSetCode = "RAV";
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 0, 1, 0, 0), new GenericManaCost(1));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 0, 1, 0, 0, 0), new GenericManaCost(1));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/ravnica/SeismicSpike.java b/Mage.Sets/src/mage/sets/ravnica/SeismicSpike.java
index 3d3a1710bba..eaaa28c2a48 100644
--- a/Mage.Sets/src/mage/sets/ravnica/SeismicSpike.java
+++ b/Mage.Sets/src/mage/sets/ravnica/SeismicSpike.java
@@ -50,7 +50,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)));
+ this.getSpellAbility().addEffect(new BasicManaEffect(new Mana(2, 0, 0, 0, 0, 0, 0, 0)));
}
public SeismicSpike(final SeismicSpike card) {
diff --git a/Mage.Sets/src/mage/sets/ravnica/SelesnyaSanctuary.java b/Mage.Sets/src/mage/sets/ravnica/SelesnyaSanctuary.java
index 0a7d541e614..c65c09c8f9e 100644
--- a/Mage.Sets/src/mage/sets/ravnica/SelesnyaSanctuary.java
+++ b/Mage.Sets/src/mage/sets/ravnica/SelesnyaSanctuary.java
@@ -59,7 +59,7 @@ public class SelesnyaSanctuary extends CardImpl {
// When Selesnya Sanctuary enters the battlefield, return a land you control to its owner's hand.
this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(filter), false));
// {tap}: Add {G}{W} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 1, 0, 0, 0), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 1, 0, 0, 0, 0), new TapSourceCost()));
}
public SelesnyaSanctuary(final SelesnyaSanctuary card) {
diff --git a/Mage.Sets/src/mage/sets/ravnica/SelesnyaSignet.java b/Mage.Sets/src/mage/sets/ravnica/SelesnyaSignet.java
index 161bbfdef95..05e1ea08660 100644
--- a/Mage.Sets/src/mage/sets/ravnica/SelesnyaSignet.java
+++ b/Mage.Sets/src/mage/sets/ravnica/SelesnyaSignet.java
@@ -49,7 +49,7 @@ public class SelesnyaSignet extends CardImpl {
public SelesnyaSignet (UUID ownerId) {
super(ownerId, 270, "Selesnya Signet", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{2}");
this.expansionSetCode = "RAV";
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 1, 0, 0, 0), new GenericManaCost(1));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 1, 0, 0, 0, 0), new GenericManaCost(1));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/returntoravnica/AxebaneGuardian.java b/Mage.Sets/src/mage/sets/returntoravnica/AxebaneGuardian.java
index 883a16c8fc7..d9cc5594118 100644
--- a/Mage.Sets/src/mage/sets/returntoravnica/AxebaneGuardian.java
+++ b/Mage.Sets/src/mage/sets/returntoravnica/AxebaneGuardian.java
@@ -66,7 +66,7 @@ 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), new PermanentsOnBattlefieldCount(filter), new TapSourceCost(),
+ 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."));
}
diff --git a/Mage.Sets/src/mage/sets/returntoravnica/GroveOfTheGuardian.java b/Mage.Sets/src/mage/sets/returntoravnica/GroveOfTheGuardian.java
index cb6ffe31384..bb0590b313b 100644
--- a/Mage.Sets/src/mage/sets/returntoravnica/GroveOfTheGuardian.java
+++ b/Mage.Sets/src/mage/sets/returntoravnica/GroveOfTheGuardian.java
@@ -28,9 +28,6 @@
package mage.sets.returntoravnica;
import java.util.UUID;
-
-import mage.constants.CardType;
-import mage.constants.Rarity;
import mage.MageInt;
import mage.Mana;
import mage.abilities.Ability;
@@ -43,6 +40,8 @@ import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.keyword.VigilanceAbility;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
import mage.constants.Zone;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.predicate.Predicates;
@@ -66,7 +65,7 @@ public class GroveOfTheGuardian extends CardImpl {
this.expansionSetCode = "RTR";
// {T}: Add {C} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 0, 1, 0), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 0, 0, 0, 1), new TapSourceCost()));
// {3}{G}{W}, {T}, Tap two untapped creatures you control, Sacrifice Grove of the Guardian: Put an 8/8 green and white Elemental creature token with vigilance onto the battlefield.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new ElementalToken(), 1), new ManaCostsImpl("{3}{G}{W}"));
@@ -86,6 +85,7 @@ public class GroveOfTheGuardian extends CardImpl {
}
private class ElementalToken extends Token {
+
ElementalToken() {
super("Elemental", "an 8/8 green and white Elemental creature token with vigilance");
diff --git a/Mage.Sets/src/mage/sets/returntoravnica/RoguesPassage.java b/Mage.Sets/src/mage/sets/returntoravnica/RoguesPassage.java
index 67671fd3796..ddbc990666d 100644
--- a/Mage.Sets/src/mage/sets/returntoravnica/RoguesPassage.java
+++ b/Mage.Sets/src/mage/sets/returntoravnica/RoguesPassage.java
@@ -28,10 +28,6 @@
package mage.sets.returntoravnica;
import java.util.UUID;
-
-import mage.constants.CardType;
-import mage.constants.Rarity;
-import mage.constants.Zone;
import mage.Mana;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
@@ -40,6 +36,9 @@ import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.constants.Zone;
import mage.target.common.TargetCreaturePermanent;
/**
@@ -52,7 +51,7 @@ public class RoguesPassage extends CardImpl {
this.expansionSetCode = "RTR";
// {T}: Add {C} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 0, 1, 0), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 0, 0, 0, 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/sets/revisededition/SolRing.java b/Mage.Sets/src/mage/sets/revisededition/SolRing.java
index 22116a788e3..047b824e3eb 100644
--- a/Mage.Sets/src/mage/sets/revisededition/SolRing.java
+++ b/Mage.Sets/src/mage/sets/revisededition/SolRing.java
@@ -25,16 +25,15 @@
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
-
package mage.sets.revisededition;
import java.util.UUID;
-import mage.constants.CardType;
-import mage.constants.Rarity;
import mage.Mana;
import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.mana.BasicManaAbility;
import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
/**
*
@@ -42,13 +41,13 @@ import mage.cards.CardImpl;
*/
public class SolRing extends CardImpl {
- public SolRing (UUID ownerId) {
+ public SolRing(UUID ownerId) {
super(ownerId, 274, "Sol Ring", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{1}");
this.expansionSetCode = "3ED";
this.addAbility(new SolRingAbility());
}
- public SolRing (final SolRing card) {
+ public SolRing(final SolRing card) {
super(card);
}
@@ -62,7 +61,7 @@ class SolRingAbility extends BasicManaAbility {
public SolRingAbility() {
super(new BasicManaEffect(Mana.ColorlessMana(2)));
- this.netMana.add(new Mana(0,0,0,0,0,2,0));
+ this.netMana.add(new Mana(0, 0, 0, 0, 0, 0, 0, 2));
}
public SolRingAbility(final SolRingAbility ability) {
diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/DreamstoneHedron.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/DreamstoneHedron.java
index 942a66fccff..752a8781951 100644
--- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/DreamstoneHedron.java
+++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/DreamstoneHedron.java
@@ -28,18 +28,18 @@
package mage.sets.riseoftheeldrazi;
import java.util.UUID;
-import mage.constants.CardType;
-import mage.constants.Rarity;
-import mage.constants.Zone;
import mage.Mana;
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.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.BasicManaEffect;
+import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.mana.BasicManaAbility;
import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.constants.Zone;
/**
*
@@ -71,18 +71,18 @@ public class DreamstoneHedron extends CardImpl {
class DreamstoneHedronFirstManaAbility extends BasicManaAbility {
- public DreamstoneHedronFirstManaAbility() {
- super(new BasicManaEffect(new Mana(0, 0, 0, 0, 0, 3, 0)));
- this.netMana.add(new Mana(0,0,0,0,0,3,0));
- }
+ 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);
- }
+ public DreamstoneHedronFirstManaAbility(final DreamstoneHedronFirstManaAbility ability) {
+ super(ability);
+ }
- @Override
- public DreamstoneHedronFirstManaAbility copy() {
- return new DreamstoneHedronFirstManaAbility(this);
+ @Override
+ public DreamstoneHedronFirstManaAbility copy() {
+ return new DreamstoneHedronFirstManaAbility(this);
+ }
}
}
-}
diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/TrainingGrounds.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/TrainingGrounds.java
index 9919547c67c..86b5b6ad4cb 100644
--- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/TrainingGrounds.java
+++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/TrainingGrounds.java
@@ -92,8 +92,8 @@ class TrainingGroundsEffect extends CostModificationEffectImpl {
Player controller = game.getPlayer(abilityToModify.getControllerId());
if (controller != null) {
Mana mana = abilityToModify.getManaCostsToPay().getMana();
- int reduceMax = mana.getColorless();
- if (reduceMax > 0 && mana.count() == mana.getColorless()) {
+ int reduceMax = mana.getGeneric();
+ if (reduceMax > 0 && mana.count() == mana.getGeneric()) {
reduceMax--;
}
if (reduceMax > 2) {
diff --git a/Mage.Sets/src/mage/sets/saviorsofkamigawa/SasayaOrochiAscendant.java b/Mage.Sets/src/mage/sets/saviorsofkamigawa/SasayaOrochiAscendant.java
index 3804d61c11c..00f3822a034 100644
--- a/Mage.Sets/src/mage/sets/saviorsofkamigawa/SasayaOrochiAscendant.java
+++ b/Mage.Sets/src/mage/sets/saviorsofkamigawa/SasayaOrochiAscendant.java
@@ -179,7 +179,7 @@ class SasayasEssenceManaEffectEffect extends ManaEffect {
if (mana.getWhite() > 0) {
choice.getChoices().add("White");
}
- if (mana.getColorless() > 0) {
+ if (mana.getGeneric() > 0) {
choice.getChoices().add("Colorless");
}
@@ -217,7 +217,7 @@ class SasayasEssenceManaEffectEffect extends ManaEffect {
newMana.increaseWhite();
break;
case "Colorless":
- newMana.increaseColorless();
+ newMana.increaseGeneric();
break;
}
}
diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/GrandArchitect.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/GrandArchitect.java
index 267b4e2852a..c08b3ab2a85 100644
--- a/Mage.Sets/src/mage/sets/scarsofmirrodin/GrandArchitect.java
+++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/GrandArchitect.java
@@ -1,16 +1,16 @@
/*
* Copyright 2011 BetaSteward_at_googlemail.com. All rights reserved.
- *
+ *
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
- *
+ *
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
- *
+ *
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
@@ -20,24 +20,15 @@
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
+ *
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
-
package mage.sets.scarsofmirrodin;
import java.util.UUID;
-
import mage.ConditionalMana;
-import mage.constants.CardType;
-import mage.constants.Duration;
-import mage.constants.Layer;
-import mage.constants.Outcome;
-import mage.constants.Rarity;
-import mage.constants.SubLayer;
-import mage.constants.Zone;
import mage.MageInt;
import mage.MageObject;
import mage.Mana;
@@ -53,6 +44,13 @@ import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.mana.ManaAbility;
import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Layer;
+import mage.constants.Outcome;
+import mage.constants.Rarity;
+import mage.constants.SubLayer;
+import mage.constants.Zone;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.Predicates;
@@ -146,17 +144,17 @@ class GrandArchitectManaAbility extends ManaAbility {
filter.add(Predicates.not(new TappedPredicate()));
}
- GrandArchitectManaAbility ( ) {
+ 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,2,0));
+ this.netMana.add(new Mana(0, 0, 0, 0, 0, 0, 0, 2));
}
- GrandArchitectManaAbility ( GrandArchitectManaAbility ability ) {
+ GrandArchitectManaAbility(GrandArchitectManaAbility ability) {
super(ability);
}
@Override
- public GrandArchitectManaAbility copy ( ) {
+ public GrandArchitectManaAbility copy() {
return new GrandArchitectManaAbility(this);
}
}
@@ -171,6 +169,7 @@ class GrandArchitectConditionalMana extends ConditionalMana {
}
class GrandArchitectManaCondition implements Condition {
+
@Override
public boolean apply(Game game, Ability source) {
MageObject object = game.getObject(source.getSourceId());
diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/MyrReservoir.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/MyrReservoir.java
index a29f82650aa..b9a1eb76f37 100644
--- a/Mage.Sets/src/mage/sets/scarsofmirrodin/MyrReservoir.java
+++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/MyrReservoir.java
@@ -27,9 +27,8 @@
*/
package mage.sets.scarsofmirrodin;
+import java.util.UUID;
import mage.ConditionalMana;
-import mage.constants.CardType;
-import mage.constants.Rarity;
import mage.MageObject;
import mage.Mana;
import mage.abilities.Ability;
@@ -41,14 +40,14 @@ import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.effects.common.ReturnToHandTargetEffect;
import mage.abilities.mana.BasicManaAbility;
import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
import mage.constants.Zone;
import mage.filter.FilterCard;
import mage.filter.predicate.mageobject.SubtypePredicate;
import mage.game.Game;
import mage.target.common.TargetCardInYourGraveyard;
-import java.util.UUID;
-
/**
* @author nantuko
*/
@@ -88,7 +87,7 @@ class MyrReservoirManaAbility extends BasicManaAbility {
MyrReservoirManaAbility() {
super(new BasicManaEffect(new MyrConditionalMana()));
- this.netMana.add(new Mana(0,0,0,0,0,2,0));
+ this.netMana.add(new Mana(0, 0, 0, 0, 0, 0, 0, 2));
}
MyrReservoirManaAbility(MyrReservoirManaAbility ability) {
@@ -111,6 +110,7 @@ class MyrConditionalMana extends ConditionalMana {
}
class MyrManaCondition implements Condition {
+
@Override
public boolean apply(Game game, Ability source) {
MageObject object = game.getObject(source.getSourceId());
diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/PalladiumMyr.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/PalladiumMyr.java
index 51117d52488..dccc2b8484f 100644
--- a/Mage.Sets/src/mage/sets/scarsofmirrodin/PalladiumMyr.java
+++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/PalladiumMyr.java
@@ -25,18 +25,16 @@
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
-
package mage.sets.scarsofmirrodin;
-import mage.constants.CardType;
-import mage.constants.Rarity;
+import java.util.UUID;
import mage.MageInt;
import mage.Mana;
import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.mana.BasicManaAbility;
import mage.cards.CardImpl;
-
-import java.util.UUID;
+import mage.constants.CardType;
+import mage.constants.Rarity;
/**
*
@@ -44,7 +42,7 @@ import java.util.UUID;
*/
public class PalladiumMyr extends CardImpl {
- public PalladiumMyr (UUID ownerId) {
+ public PalladiumMyr(UUID ownerId) {
super(ownerId, 190, "Palladium Myr", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}");
this.expansionSetCode = "SOM";
this.subtype.add("Myr");
@@ -53,7 +51,7 @@ public class PalladiumMyr extends CardImpl {
this.addAbility(new PalladiumMyrAbility());
}
- public PalladiumMyr (final PalladiumMyr card) {
+ public PalladiumMyr(final PalladiumMyr card) {
super(card);
}
@@ -67,7 +65,7 @@ class PalladiumMyrAbility extends BasicManaAbility {
public PalladiumMyrAbility() {
super(new BasicManaEffect(Mana.ColorlessMana(2)));
- this.netMana.add(new Mana(0,0,0,0,0,2,0));
+ this.netMana.add(new Mana(0, 0, 0, 0, 0, 0, 0, 2));
}
public PalladiumMyrAbility(final PalladiumMyrAbility ability) {
diff --git a/Mage.Sets/src/mage/sets/seventhedition/SisaysRing.java b/Mage.Sets/src/mage/sets/seventhedition/SisaysRing.java
index 5f57cf73898..7cf6f59e99e 100644
--- a/Mage.Sets/src/mage/sets/seventhedition/SisaysRing.java
+++ b/Mage.Sets/src/mage/sets/seventhedition/SisaysRing.java
@@ -47,7 +47,7 @@ public class SisaysRing extends CardImpl {
this.expansionSetCode = "7ED";
// {tap}: Add {C}{C} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0,0,0,0,0,2,0), new TapSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 0, 0, 0, 2), new TapSourceCost()));
}
public SisaysRing(final SisaysRing card) {
@@ -58,4 +58,4 @@ public class SisaysRing extends CardImpl {
public SisaysRing copy() {
return new SisaysRing(this);
}
-}
\ No newline at end of file
+}
diff --git a/Mage.Sets/src/mage/sets/shadowmoor/FireLitThicket.java b/Mage.Sets/src/mage/sets/shadowmoor/FireLitThicket.java
index 2f519202309..203c4a021f1 100644
--- a/Mage.Sets/src/mage/sets/shadowmoor/FireLitThicket.java
+++ b/Mage.Sets/src/mage/sets/shadowmoor/FireLitThicket.java
@@ -55,7 +55,7 @@ public class FireLitThicket extends CardImpl {
ability.addCost(new TapSourceCost());
this.addAbility(ability);
- ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 0, 0, 0, 0, 0), new ManaCostsImpl("{R/G}"));
+ ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 0, 0, 0, 0, 0, 0), new ManaCostsImpl("{R/G}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/sets/shadowmoor/GravenCairns.java b/Mage.Sets/src/mage/sets/shadowmoor/GravenCairns.java
index 0ceeb37c22f..c47c2211f06 100644
--- a/Mage.Sets/src/mage/sets/shadowmoor/GravenCairns.java
+++ b/Mage.Sets/src/mage/sets/shadowmoor/GravenCairns.java
@@ -56,7 +56,7 @@ public class GravenCairns extends CardImpl {
ability.addCost(new TapSourceCost());
this.addAbility(ability);
- ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 1, 0, 0), new ManaCostsImpl("{B/R}"));
+ ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 1, 0, 0, 0), new ManaCostsImpl("{B/R}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/sets/shadowmoor/ManaReflection.java b/Mage.Sets/src/mage/sets/shadowmoor/ManaReflection.java
index 8acddd38c13..bb499a45a77 100644
--- a/Mage.Sets/src/mage/sets/shadowmoor/ManaReflection.java
+++ b/Mage.Sets/src/mage/sets/shadowmoor/ManaReflection.java
@@ -103,8 +103,8 @@ class ManaReflectionReplacementEffect extends ReplacementEffectImpl {
if (mana.getRed() > 0) {
mana.set(ManaType.RED, mana.getRed() * 2);
}
- if (mana.getColorless() > 0) {
- mana.set(ManaType.COLORLESS, mana.getColorless() * 2);
+ if (mana.getGeneric() > 0) {
+ mana.set(ManaType.COLORLESS, mana.getGeneric() * 2);
}
return false;
}
diff --git a/Mage.Sets/src/mage/sets/shadowmoor/Morselhoarder.java b/Mage.Sets/src/mage/sets/shadowmoor/Morselhoarder.java
index ea39bc57e91..22bc0303910 100644
--- a/Mage.Sets/src/mage/sets/shadowmoor/Morselhoarder.java
+++ b/Mage.Sets/src/mage/sets/shadowmoor/Morselhoarder.java
@@ -80,7 +80,7 @@ class MorselhoarderAbility extends ManaAbility {
public MorselhoarderAbility(Cost cost) {
super(Zone.BATTLEFIELD, new AddManaOfAnyColorEffect(), cost);
- this.netMana.add(new Mana(0,0,0,0,0,0,1));
+ this.netMana.add(new Mana(0,0,0,0,0,0,1, 0));
}
public MorselhoarderAbility(final MorselhoarderAbility ability) {
diff --git a/Mage.Sets/src/mage/sets/shadowmoor/MysticGate.java b/Mage.Sets/src/mage/sets/shadowmoor/MysticGate.java
index 3c557dfcd5b..087f8367f93 100644
--- a/Mage.Sets/src/mage/sets/shadowmoor/MysticGate.java
+++ b/Mage.Sets/src/mage/sets/shadowmoor/MysticGate.java
@@ -55,7 +55,7 @@ public class MysticGate extends CardImpl {
ability.addCost(new TapSourceCost());
this.addAbility(ability);
- ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 1, 0, 0, 0), new ManaCostsImpl("{W/U}"));
+ ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 1, 0, 0, 0, 0), new ManaCostsImpl("{W/U}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/sets/shadowmoor/RosheenMeanderer.java b/Mage.Sets/src/mage/sets/shadowmoor/RosheenMeanderer.java
index 05eb96aa6fd..8ae56680228 100644
--- a/Mage.Sets/src/mage/sets/shadowmoor/RosheenMeanderer.java
+++ b/Mage.Sets/src/mage/sets/shadowmoor/RosheenMeanderer.java
@@ -76,7 +76,7 @@ class RosheenMeandererManaAbility extends BasicManaAbility {
RosheenMeandererManaAbility() {
super(new BasicManaEffect(new RosheenMeandererConditionalMana()));
- this.netMana.add(new Mana(0, 0, 0, 0, 0, 4, 0));
+ this.netMana.add(new Mana(0, 0, 0, 0, 0, 0, 0, 4));
}
RosheenMeandererManaAbility(RosheenMeandererManaAbility ability) {
diff --git a/Mage.Sets/src/mage/sets/shadowmoor/SunkenRuins.java b/Mage.Sets/src/mage/sets/shadowmoor/SunkenRuins.java
index ff6fe2bc7dd..8e2f6989821 100644
--- a/Mage.Sets/src/mage/sets/shadowmoor/SunkenRuins.java
+++ b/Mage.Sets/src/mage/sets/shadowmoor/SunkenRuins.java
@@ -55,7 +55,7 @@ public class SunkenRuins extends CardImpl {
ability.addCost(new TapSourceCost());
this.addAbility(ability);
- ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 0, 1, 0, 0), new ManaCostsImpl("{U/B}"));
+ ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 0, 1, 0, 0, 0), new ManaCostsImpl("{U/B}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/sets/shadowmoor/Valleymaker.java b/Mage.Sets/src/mage/sets/shadowmoor/Valleymaker.java
index 8cc7c134905..7577fd84c8d 100644
--- a/Mage.Sets/src/mage/sets/shadowmoor/Valleymaker.java
+++ b/Mage.Sets/src/mage/sets/shadowmoor/Valleymaker.java
@@ -75,7 +75,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), "chosen player"), new TapSourceCost());
+ Ability ability2 = new SimpleManaAbility(Zone.BATTLEFIELD, new AddManaToManaPoolTargetControllerEffect(new Mana(0,3,0,0,0,0,0, 0), "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/sets/shadowmoor/WoodedBastion.java b/Mage.Sets/src/mage/sets/shadowmoor/WoodedBastion.java
index aaca1d70f12..0903c711521 100644
--- a/Mage.Sets/src/mage/sets/shadowmoor/WoodedBastion.java
+++ b/Mage.Sets/src/mage/sets/shadowmoor/WoodedBastion.java
@@ -55,7 +55,7 @@ public class WoodedBastion extends CardImpl {
ability.addCost(new TapSourceCost());
this.addAbility(ability);
- ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 1, 0, 0, 0), new ManaCostsImpl("{G/W}"));
+ ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 1, 0, 0, 0, 0), new ManaCostsImpl("{G/W}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/sets/sorinvstibalt/CoalStoker.java b/Mage.Sets/src/mage/sets/sorinvstibalt/CoalStoker.java
index 90aebf995f4..85b2aa32175 100644
--- a/Mage.Sets/src/mage/sets/sorinvstibalt/CoalStoker.java
+++ b/Mage.Sets/src/mage/sets/sorinvstibalt/CoalStoker.java
@@ -57,7 +57,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.
Ability ability = new EntersBattlefieldTriggeredAbility(
- new ConditionalOneShotEffect(new BasicManaEffect(new Mana(3, 0, 0, 0, 0, 0, 0)), new CastFromHandCondition(),
+ new ConditionalOneShotEffect(new BasicManaEffect(new Mana(3, 0, 0, 0, 0, 0, 0, 0)), new CastFromHandCondition(),
" if you cast it from your hand, add {R}{R}{R} to your mana pool."));
this.addAbility(ability, new CastFromHandWatcher());
}
diff --git a/Mage.Sets/src/mage/sets/stronghold/Heartstone.java b/Mage.Sets/src/mage/sets/stronghold/Heartstone.java
index 0d530dfacd3..f2c466c3c94 100644
--- a/Mage.Sets/src/mage/sets/stronghold/Heartstone.java
+++ b/Mage.Sets/src/mage/sets/stronghold/Heartstone.java
@@ -90,7 +90,7 @@ class HeartstoneEffect extends CostModificationEffectImpl {
Player controller = game.getPlayer(abilityToModify.getControllerId());
if (controller != null) {
Mana mana = abilityToModify.getManaCostsToPay().getMana();
- if (mana.count() > 1 && mana.getColorless() > 0) {
+ if (mana.count() > 1 && mana.getGeneric() > 0) {
CardUtil.reduceCost(abilityToModify, 1);
}
return true;
diff --git a/Mage.Sets/src/mage/sets/stronghold/Overgrowth.java b/Mage.Sets/src/mage/sets/stronghold/Overgrowth.java
index 2d4aec7bcc8..6a06deddebb 100644
--- a/Mage.Sets/src/mage/sets/stronghold/Overgrowth.java
+++ b/Mage.Sets/src/mage/sets/stronghold/Overgrowth.java
@@ -83,7 +83,7 @@ class OvergrowthTriggeredAbility extends TriggeredManaAbility {
public OvergrowthTriggeredAbility() {
- super(Zone.BATTLEFIELD, new AddManaToManaPoolTargetControllerEffect(new Mana(0,2,0,0,0,0,0), "his or her"));
+ super(Zone.BATTLEFIELD, new AddManaToManaPoolTargetControllerEffect(new Mana(0,2,0,0,0,0,0, 0), "his or her"));
}
public OvergrowthTriggeredAbility(final OvergrowthTriggeredAbility ability) {
diff --git a/Mage.Sets/src/mage/sets/tempest/ReflectingPool.java b/Mage.Sets/src/mage/sets/tempest/ReflectingPool.java
index 005b0e53f88..54d16d44b12 100644
--- a/Mage.Sets/src/mage/sets/tempest/ReflectingPool.java
+++ b/Mage.Sets/src/mage/sets/tempest/ReflectingPool.java
@@ -76,7 +76,7 @@ public class ReflectingPool extends CardImpl {
class ReflectingPoolManaAbility extends ManaAbility {
public ReflectingPoolManaAbility() {
- super(Zone.BATTLEFIELD, new ReflectingPoolEffect(),new TapSourceCost());
+ super(Zone.BATTLEFIELD, new ReflectingPoolEffect(), new TapSourceCost());
}
public ReflectingPoolManaAbility(final ReflectingPoolManaAbility ability) {
@@ -90,7 +90,7 @@ class ReflectingPoolManaAbility extends ManaAbility {
@Override
public List getNetMana(Game game) {
- return ((ReflectingPoolEffect)getEffects().get(0)).getNetMana(game, this);
+ return ((ReflectingPoolEffect) getEffects().get(0)).getNetMana(game, this);
}
}
@@ -127,7 +127,7 @@ class ReflectingPoolEffect extends ManaEffect {
if (types.getWhite() > 0) {
choice.getChoices().add("White");
}
- if (types.getColorless() > 0) {
+ if (types.getGeneric() > 0) {
choice.getChoices().add("Colorless");
}
if (types.getAny() > 0) {
@@ -164,7 +164,7 @@ class ReflectingPoolEffect extends ManaEffect {
mana.setWhite(1);
break;
case "Colorless":
- mana.setColorless(1);
+ mana.setGeneric(1);
break;
}
checkToFirePossibleEvents(mana, game, source);
@@ -176,11 +176,11 @@ class ReflectingPoolEffect extends ManaEffect {
return true;
}
- public List getNetMana(Game game, Ability source) {
+ public List getNetMana(Game game, Ability source) {
List netManas = new ArrayList<>();
Mana types = getManaTypes(game, source);
- if (types.getAny()> 0) {
- netManas.add(new Mana(0,0,0,0,0,0,1));
+ if (types.getAny() > 0) {
+ netManas.add(new Mana(0, 0, 0, 0, 0, 0, 1, 0));
return netManas;
}
if (types.getBlack() > 0) {
@@ -198,8 +198,8 @@ class ReflectingPoolEffect extends ManaEffect {
if (types.getWhite() > 0) {
netManas.add(new Mana(ColoredManaSymbol.W));
}
- if (types.getColorless() > 0) {
- netManas.add(new Mana(0,0,0,0,0,1,0));
+ if (types.getGeneric() > 0) {
+ netManas.add(new Mana(0, 0, 0, 0, 0, 0, 0, 1));
}
return netManas;
}
@@ -211,7 +211,7 @@ class ReflectingPoolEffect extends ManaEffect {
Abilities manaAbilities = land.getAbilities().getManaAbilities(Zone.BATTLEFIELD);
for (ManaAbility ability : manaAbilities) {
if (!ability.equals(source) && ability.definesMana()) {
- for (Mana netMana: ability.getNetMana(game)) {
+ for (Mana netMana : ability.getNetMana(game)) {
types.add(netMana);
if (netMana.getAny() > 0) {
return types;
diff --git a/Mage.Sets/src/mage/sets/tenthedition/CompositeGolem.java b/Mage.Sets/src/mage/sets/tenthedition/CompositeGolem.java
index bea103f47a7..958d06f8b4c 100644
--- a/Mage.Sets/src/mage/sets/tenthedition/CompositeGolem.java
+++ b/Mage.Sets/src/mage/sets/tenthedition/CompositeGolem.java
@@ -52,7 +52,7 @@ public class CompositeGolem extends CardImpl {
this.toughness = new MageInt(4);
// Sacrifice Composite Golem: Add {W}{U}{B}{R}{G} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 1, 1, 1, 0, 0), new SacrificeSourceCost()));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 1, 1, 1, 0, 0, 0), new SacrificeSourceCost()));
}
public CompositeGolem(final CompositeGolem card) {
diff --git a/Mage.Sets/src/mage/sets/tenthedition/DoublingCube.java b/Mage.Sets/src/mage/sets/tenthedition/DoublingCube.java
index 99ea557b4ee..cd8e15c2f81 100644
--- a/Mage.Sets/src/mage/sets/tenthedition/DoublingCube.java
+++ b/Mage.Sets/src/mage/sets/tenthedition/DoublingCube.java
@@ -93,7 +93,7 @@ class DoublingCubeEffect extends ManaEffect {
int greenMana = pool.getGreen();
int redMana = pool.getRed();
int colorlessMana = pool.getColorless();
- Mana mana = new Mana(redMana, greenMana, blueMana, whiteMana, blackMana, colorlessMana, 0);
+ Mana mana = new Mana(redMana, greenMana, blueMana, whiteMana, blackMana, colorlessMana, 0, 0);
checkToFirePossibleEvents(mana, game, source);
pool.addMana(mana, game, source);
return true;
diff --git a/Mage.Sets/src/mage/sets/torment/CabalRitual.java b/Mage.Sets/src/mage/sets/torment/CabalRitual.java
index 203914aba3f..129f3234fba 100644
--- a/Mage.Sets/src/mage/sets/torment/CabalRitual.java
+++ b/Mage.Sets/src/mage/sets/torment/CabalRitual.java
@@ -50,8 +50,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)),
- new BasicManaEffect(new Mana(0, 0, 0, 0, 3, 0, 0)),
+ 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 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/sets/urzassaga/CarpetOfFlowers.java b/Mage.Sets/src/mage/sets/urzassaga/CarpetOfFlowers.java
index 8f6e677c103..dcc9eeaf127 100644
--- a/Mage.Sets/src/mage/sets/urzassaga/CarpetOfFlowers.java
+++ b/Mage.Sets/src/mage/sets/urzassaga/CarpetOfFlowers.java
@@ -202,7 +202,7 @@ class CarpetOfFlowersEffect extends ManaEffect {
mana.setWhite(count);
break;
case "Colorless":
- mana.setColorless(count);
+ mana.setGeneric(count);
break;
}
checkToFirePossibleEvents(mana, game, source);
diff --git a/Mage.Sets/src/mage/sets/urzassaga/Fluctuator.java b/Mage.Sets/src/mage/sets/urzassaga/Fluctuator.java
index 11c4d3241d6..ce605ee1fe1 100644
--- a/Mage.Sets/src/mage/sets/urzassaga/Fluctuator.java
+++ b/Mage.Sets/src/mage/sets/urzassaga/Fluctuator.java
@@ -97,7 +97,7 @@ class FluctuatorEffect extends CostModificationEffectImpl {
Player controller = game.getPlayer(abilityToModify.getControllerId());
if (controller != null) {
Mana mana = abilityToModify.getManaCostsToPay().getMana();
- int reduceMax = mana.getColorless();
+ int reduceMax = mana.getGeneric();
if (reduceMax > 2) {
reduceMax = 2;
}
diff --git a/Mage.Sets/src/mage/sets/urzassaga/WitchEngine.java b/Mage.Sets/src/mage/sets/urzassaga/WitchEngine.java
index 71092fd879f..8abe0533630 100644
--- a/Mage.Sets/src/mage/sets/urzassaga/WitchEngine.java
+++ b/Mage.Sets/src/mage/sets/urzassaga/WitchEngine.java
@@ -65,7 +65,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)), new TapSourceCost());
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BasicManaEffect(new Mana(0, 0, 0, 0, 4, 0, 0, 0)), new TapSourceCost());
ability.addEffect(new WitchEngineEffect());
ability.addTarget(new TargetOpponent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/sets/urzassaga/WornPowerstone.java b/Mage.Sets/src/mage/sets/urzassaga/WornPowerstone.java
index 61f70e0a12f..bec1cb10146 100644
--- a/Mage.Sets/src/mage/sets/urzassaga/WornPowerstone.java
+++ b/Mage.Sets/src/mage/sets/urzassaga/WornPowerstone.java
@@ -25,17 +25,16 @@
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
-
package mage.sets.urzassaga;
import java.util.UUID;
-import mage.constants.CardType;
-import mage.constants.Rarity;
import mage.Mana;
import mage.abilities.common.EntersBattlefieldTappedAbility;
import mage.abilities.effects.common.BasicManaEffect;
import mage.abilities.mana.BasicManaAbility;
import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
/**
*
@@ -43,14 +42,14 @@ import mage.cards.CardImpl;
*/
public class WornPowerstone extends CardImpl {
- public WornPowerstone (UUID ownerId) {
+ public WornPowerstone(UUID ownerId) {
super(ownerId, 318, "Worn Powerstone", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{3}");
this.expansionSetCode = "USG";
this.addAbility(new EntersBattlefieldTappedAbility());
this.addAbility(new WornPowerstoneAbility());
}
- public WornPowerstone (final WornPowerstone card) {
+ public WornPowerstone(final WornPowerstone card) {
super(card);
}
@@ -64,7 +63,7 @@ class WornPowerstoneAbility extends BasicManaAbility {
public WornPowerstoneAbility() {
super(new BasicManaEffect(Mana.ColorlessMana(2)));
- this.netMana.add(new Mana(0,0,0,0,0,2,0));
+ this.netMana.add(new Mana(0, 0, 0, 0, 0, 0, 0, 2));
}
public WornPowerstoneAbility(final WornPowerstoneAbility ability) {
@@ -75,4 +74,4 @@ class WornPowerstoneAbility extends BasicManaAbility {
public WornPowerstoneAbility copy() {
return new WornPowerstoneAbility(this);
}
-}
\ No newline at end of file
+}
diff --git a/Mage.Sets/src/mage/sets/vintagemasters/LakeOfTheDead.java b/Mage.Sets/src/mage/sets/vintagemasters/LakeOfTheDead.java
index e82d34e10a0..948485ae038 100644
--- a/Mage.Sets/src/mage/sets/vintagemasters/LakeOfTheDead.java
+++ b/Mage.Sets/src/mage/sets/vintagemasters/LakeOfTheDead.java
@@ -67,7 +67,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), new TapSourceCost());
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 4, 0, 0, 0), new TapSourceCost());
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter)));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/sets/vintagemasters/ManaDrain.java b/Mage.Sets/src/mage/sets/vintagemasters/ManaDrain.java
index ccf352688be..8917b1082e1 100644
--- a/Mage.Sets/src/mage/sets/vintagemasters/ManaDrain.java
+++ b/Mage.Sets/src/mage/sets/vintagemasters/ManaDrain.java
@@ -55,10 +55,9 @@ public class ManaDrain extends CardImpl {
super(ownerId, 78, "Mana Drain", Rarity.MYTHIC, new CardType[]{CardType.INSTANT}, "{U}{U}");
this.expansionSetCode = "VMA";
-
// Counter target spell. At the beginning of your next main phase, add X mana of {C} to your mana pool, where X is that spell's converted mana cost.
this.getSpellAbility().addTarget(new TargetSpell());
- this.getSpellAbility().addEffect(new ManaDrainCounterEffect());
+ this.getSpellAbility().addEffect(new ManaDrainCounterEffect());
}
public ManaDrain(final ManaDrain card) {
@@ -94,10 +93,10 @@ 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,cmc,0), "your");
+ Effect effect = new AddManaToManaPoolTargetControllerEffect(new Mana(0, 0, 0, 0, 0, 0, 0, cmc), "your");
effect.setTargetPointer(new FixedTarget(source.getControllerId()));
- AtTheBeginOfMainPhaseDelayedTriggeredAbility delayedAbility =
- new AtTheBeginOfMainPhaseDelayedTriggeredAbility(effect, false, TargetController.YOU, PhaseSelection.NEXT_MAIN);
+ AtTheBeginOfMainPhaseDelayedTriggeredAbility delayedAbility
+ = new AtTheBeginOfMainPhaseDelayedTriggeredAbility(effect, false, TargetController.YOU, PhaseSelection.NEXT_MAIN);
delayedAbility.setSourceId(source.getSourceId());
delayedAbility.setControllerId(source.getControllerId());
delayedAbility.setSourceObject(source.getSourceObject(game), game);
diff --git a/Mage.Sets/src/mage/sets/vintagemasters/SelvalaExplorerReturned.java b/Mage.Sets/src/mage/sets/vintagemasters/SelvalaExplorerReturned.java
index 3a88cb54f45..462eaa3cd81 100644
--- a/Mage.Sets/src/mage/sets/vintagemasters/SelvalaExplorerReturned.java
+++ b/Mage.Sets/src/mage/sets/vintagemasters/SelvalaExplorerReturned.java
@@ -102,7 +102,7 @@ class SelvalaExplorerReturnedEffect extends OneShotEffect {
if (controller != null) {
int parley = ParleyCount.getInstance().calculate(game, source, this);
if (parley > 0) {
- controller.getManaPool().addMana(new Mana(0, parley, 0, 0, 0, 0, 0), game, source);
+ controller.getManaPool().addMana(new Mana(0, parley, 0, 0, 0, 0, 0, 0), game, source);
controller.gainLife(parley, game);
}
return true;
diff --git a/Mage.Sets/src/mage/sets/vintagemasters/SuChi.java b/Mage.Sets/src/mage/sets/vintagemasters/SuChi.java
index c3e1d638995..655667845bd 100644
--- a/Mage.Sets/src/mage/sets/vintagemasters/SuChi.java
+++ b/Mage.Sets/src/mage/sets/vintagemasters/SuChi.java
@@ -39,7 +39,7 @@ import mage.constants.Rarity;
/**
*
* @author LoneFox
-
+ *
*/
public class SuChi extends CardImpl {
@@ -51,7 +51,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, 4, 0)), false));
+ this.addAbility(new DiesTriggeredAbility(new BasicManaEffect(new Mana(0, 0, 0, 0, 0, 0, 0, 4)), false));
}
public SuChi(final SuChi card) {
diff --git a/Mage.Sets/src/mage/sets/worldwake/HarabazDruid.java b/Mage.Sets/src/mage/sets/worldwake/HarabazDruid.java
index b6eaca60c4d..106f713fac5 100644
--- a/Mage.Sets/src/mage/sets/worldwake/HarabazDruid.java
+++ b/Mage.Sets/src/mage/sets/worldwake/HarabazDruid.java
@@ -61,7 +61,7 @@ public class HarabazDruid extends CardImpl {
this.toughness = new MageInt(1);
// {T}: Add X mana of any one color to your mana pool, where X is the number of Allies you control.
- this.addAbility(new DynamicManaAbility(new Mana(0,0,0,0,0,0,1), new PermanentsOnBattlefieldCount(filter), new TapSourceCost(),
+ this.addAbility(new DynamicManaAbility(new Mana(0,0,0,0,0,0,1, 0), new PermanentsOnBattlefieldCount(filter), new TapSourceCost(),
"Add X mana of any one color to your mana pool, where X is the number of Allies you control", true));
}
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/mana/ConditionalManaTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/mana/ConditionalManaTest.java
index 304ed2fdf67..6008bf7e270 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/mana/ConditionalManaTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/mana/ConditionalManaTest.java
@@ -141,4 +141,31 @@ public class ConditionalManaTest extends CardTestPlayerBase {
assertPermanentCount(playerB, "Snapping Drake", 2);
}
+
+ /**
+ * I've found a bit of a problem with colorless costs. I've been unable to
+ * pay colorless costs with lands conditionally tapping for 2 colorless i.e
+ * shrine of forsaken gods and eldrazi temple ,including if I float the
+ * mana. Seperately but on a related note, if you float at least one
+ * colorless mana you can pay all colorless costs with floated generic mana.
+ */
+ @Test
+ public void testPayColorlessWithConditionalMana() {
+ // {T}: Add {C} to your mana pool.
+ // {T}: Add {C}{C} to your mana pool. Spend this mana only to cast colorless spells. Activate this ability only if you control seven or more lands.
+ addCard(Zone.BATTLEFIELD, playerA, "Shrine of the Forsaken Gods", 1);
+ addCard(Zone.BATTLEFIELD, playerA, "Plains", 8);
+ // When you cast Kozilek, the Great Distortion, if you have fewer than seven cards in hand, draw cards equal to the difference.
+ // Menace
+ // Discard a card with converted mana cost X: Counter target spell with converted mana cost X.
+ addCard(Zone.HAND, playerA, "Kozilek, the Great Distortion", 1); // {8}{C}{C}
+
+ activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: Add {C}{C}");
+ castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Kozilek, the Great Distortion");
+
+ setStopAt(1, PhaseStep.BEGIN_COMBAT);
+ execute();
+
+ assertPermanentCount(playerA, "Kozilek, the Great Distortion", 1);
+ }
}
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/watchers/HallOfTheBanditLordTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/watchers/HallOfTheBanditLordTest.java
index b0a7b2b45d3..d3422a9ed31 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/watchers/HallOfTheBanditLordTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/watchers/HallOfTheBanditLordTest.java
@@ -15,25 +15,25 @@ public class HallOfTheBanditLordTest extends CardTestPlayerBase {
* Hall of the Bandit Lord
* Legendary Land
* Hall of the Bandit Lord enters the battlefield tapped.
- * {T}, Pay 3 life: Add {C} to your mana pool. If that mana is spent on a
+ * {T}, Pay 3 life: Add {C} to your mana pool. If that mana is spent on a
* creature spell, it gains haste.
*
- */
-
+ */
+
// test that a creature cast using Hall of the Bandit Lord mana gains haste
@Test
public void testGainsHaste() {
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 2);
addCard(Zone.BATTLEFIELD, playerA, "Hall of the Bandit Lord");
- addCard(Zone.HAND, playerA, "Goblin Roughrider");
-
+ addCard(Zone.HAND, playerA, "Goblin Roughrider"); // Creature 3/3 - {2}{R}
+
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Goblin Roughrider");
-
+
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
-
+
this.assertAbility(playerA, "Goblin Roughrider", HasteAbility.getInstance(), true);
-
+
}
// test that a creature cast not using Hall of the Bandit Lord mana does not gain haste
@@ -42,14 +42,14 @@ public class HallOfTheBanditLordTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 2);
addCard(Zone.BATTLEFIELD, playerA, "Hall of the Bandit Lord");
addCard(Zone.HAND, playerA, "Ember Hauler");
-
+
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ember Hauler");
-
+
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
-
+
this.assertAbility(playerA, "Ember Hauler", HasteAbility.getInstance(), false);
-
+
}
-
+
}
diff --git a/Mage.Tests/src/test/java/org/mage/test/commander/duel/OpalPalaceTest.java b/Mage.Tests/src/test/java/org/mage/test/commander/duel/OpalPalaceTest.java
index aa2284c768d..273b8dbd12f 100644
--- a/Mage.Tests/src/test/java/org/mage/test/commander/duel/OpalPalaceTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/commander/duel/OpalPalaceTest.java
@@ -37,24 +37,25 @@ import org.mage.test.serverside.base.CardTestCommanderDuelBase;
*
* @author LevelX2
*/
-
public class OpalPalaceTest extends CardTestCommanderDuelBase {
+
/**
- * I cast my commander with Opal Palace's second ability and it did not receive a +1/+1 counter
- * the first time it was cast (rulings say it should on the first time cast).
+ * I cast my commander with Opal Palace's second ability and it did not
+ * receive a +1/+1 counter the first time it was cast (rulings say it should
+ * on the first time cast).
*/
@Test
public void testFirstAbility() {
addCard(Zone.BATTLEFIELD, playerA, "Swamp", 1);
addCard(Zone.BATTLEFIELD, playerA, "Forest", 4);
-
+
// {T}: Add {C} to your mana pool.
- // {1}, {T}: Add to your mana pool one mana of any color in your commander's color identity.
+ // {1}, {T}: Add to your mana pool one mana of any color in your commander's color identity.
// If you spend this mana to cast your commander, it enters the battlefield with a number of +1/+1 counters on it
- // equal to the number of times it's been cast from the command zone this game.
+ // equal to the number of times it's been cast from the command zone this game.
addCard(Zone.BATTLEFIELD, playerA, "Opal Palace", 1);
- castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ob Nixilis of the Black Oath");
+ castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ob Nixilis of the Black Oath"); // {3}{B}{B}
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
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 d5db6555a91..f6b6e8b7aca 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
@@ -90,12 +90,17 @@ public class ManaOptionsTest extends CardTestPlayerBase {
ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame);
- Assert.assertEquals("mana variations don't fit", 4, manaOptions.size());
- Assert.assertEquals("{W}{W}{W}", getManaOption(0, manaOptions));
- Assert.assertEquals("{U}{W}{W}", getManaOption(1, manaOptions));
- Assert.assertEquals("{U}{U}{W}", getManaOption(2, manaOptions));
- Assert.assertEquals("{U}{U}{U}", getManaOption(3, manaOptions));
-
+ Assert.assertEquals("mana variations don't fit", 10, manaOptions.size());
+ Assert.assertEquals("{C}{C}{C}", getManaOption(0, manaOptions));
+ Assert.assertEquals("{C}{C}{W}", getManaOption(1, manaOptions));
+ Assert.assertEquals("{C}{C}{U}", getManaOption(2, manaOptions));
+ Assert.assertEquals("{C}{W}{W}", getManaOption(3, manaOptions));
+ Assert.assertEquals("{C}{U}{W}", getManaOption(4, manaOptions));
+ Assert.assertEquals("{C}{U}{U}", getManaOption(5, manaOptions));
+ Assert.assertEquals("{W}{W}{W}", getManaOption(6, manaOptions));
+ Assert.assertEquals("{U}{W}{W}", getManaOption(7, manaOptions));
+ Assert.assertEquals("{U}{U}{W}", getManaOption(8, manaOptions));
+ Assert.assertEquals("{U}{U}{U}", getManaOption(9, manaOptions));
}
// Chromatic Sphere
@@ -146,7 +151,7 @@ public class ManaOptionsTest extends CardTestPlayerBase {
ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame);
Assert.assertEquals("mana variations don't fit", 1, manaOptions.size());
- Assert.assertEquals("{1}{G}{G}{W}{W}", getManaOption(0, manaOptions));
+ Assert.assertEquals("{C}{G}{G}{W}{W}", getManaOption(0, manaOptions));
}
// Crystal Quarry
@@ -164,7 +169,7 @@ public class ManaOptionsTest extends CardTestPlayerBase {
ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame);
Assert.assertEquals("mana variations don't fit", 2, manaOptions.size());
- Assert.assertEquals("{1}{G}{G}{G}{W}{W}", getManaOption(0, manaOptions));
+ Assert.assertEquals("{C}{G}{G}{G}{W}{W}", getManaOption(0, manaOptions));
Assert.assertEquals("{R}{G}{U}{W}{B}", getManaOption(1, manaOptions));
}
@@ -182,8 +187,9 @@ public class ManaOptionsTest extends CardTestPlayerBase {
ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame);
- Assert.assertEquals("mana variations don't fit", 1, manaOptions.size());
- Assert.assertEquals("{G}{G}{G}{G}{G}", getManaOption(0, manaOptions));
+ Assert.assertEquals("mana variations don't fit", 2, manaOptions.size());
+ Assert.assertEquals("{C}{G}{G}{G}", getManaOption(0, manaOptions));
+ Assert.assertEquals("{G}{G}{G}{G}{G}", getManaOption(1, manaOptions));
}
@Test
@@ -198,9 +204,10 @@ public class ManaOptionsTest extends CardTestPlayerBase {
ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame);
- Assert.assertEquals("mana variations don't fit", 2, manaOptions.size());
- Assert.assertEquals("{G}{G}{G}{G}{G}", getManaOption(0, manaOptions));
- Assert.assertEquals("{R}{R}{R}{G}", getManaOption(1, manaOptions));
+ Assert.assertEquals("mana variations don't fit", 3, manaOptions.size());
+ Assert.assertEquals("{C}{G}{G}{G}", getManaOption(0, manaOptions));
+ Assert.assertEquals("{G}{G}{G}{G}{G}", getManaOption(1, manaOptions));
+ Assert.assertEquals("{R}{R}{R}{G}", getManaOption(2, manaOptions));
}
@Test
@@ -215,7 +222,7 @@ public class ManaOptionsTest extends CardTestPlayerBase {
ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame);
Assert.assertEquals("mana variations don't fit", 1, manaOptions.size());
- Assert.assertEquals("{1}{G}{Any}", getManaOption(0, manaOptions));
+ Assert.assertEquals("{C}{G}{Any}", getManaOption(0, manaOptions));
}
@Test
@@ -251,10 +258,11 @@ public class ManaOptionsTest extends CardTestPlayerBase {
ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame);
- Assert.assertEquals("mana variations don't fit", 3, manaOptions.size());
- Assert.assertEquals("{W}{W}", getManaOption(0, manaOptions));
- Assert.assertEquals("{W}{B}", getManaOption(1, manaOptions));
- Assert.assertEquals("{B}{B}", getManaOption(2, manaOptions));
+ Assert.assertEquals("mana variations don't fit", 4, manaOptions.size());
+ Assert.assertEquals("{C}{W}", getManaOption(0, manaOptions));
+ Assert.assertEquals("{W}{W}", getManaOption(1, manaOptions));
+ Assert.assertEquals("{W}{B}", getManaOption(2, manaOptions));
+ Assert.assertEquals("{B}{B}", getManaOption(3, manaOptions));
}
/**
@@ -306,7 +314,7 @@ public class ManaOptionsTest extends CardTestPlayerBase {
ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame);
Assert.assertEquals("mana variations don't fit", 1, manaOptions.size());
- Assert.assertEquals("{1}{W}{B}", getManaOption(0, manaOptions));
+ Assert.assertEquals("{C}{W}{B}", getManaOption(0, manaOptions));
}
@Test
@@ -324,8 +332,9 @@ public class ManaOptionsTest extends CardTestPlayerBase {
ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame);
- Assert.assertEquals("mana variations don't fit", 1, manaOptions.size());
- Assert.assertEquals("{4}{W}{B}", getManaOption(0, manaOptions));
+ Assert.assertEquals("mana variations don't fit", 2, manaOptions.size());
+ Assert.assertEquals("{C}{W}{B}", getManaOption(0, manaOptions));
+ Assert.assertEquals("{4}{W}{B}", getManaOption(1, manaOptions));
}
@Test
diff --git a/Mage/src/main/java/mage/ConditionalMana.java b/Mage/src/main/java/mage/ConditionalMana.java
index 4f0d17293b5..46de4869813 100644
--- a/Mage/src/main/java/mage/ConditionalMana.java
+++ b/Mage/src/main/java/mage/ConditionalMana.java
@@ -148,8 +148,8 @@ public class ConditionalMana extends Mana implements Serializable {
if (filter.isRed()) {
red = 0;
}
- if (filter.isColorless()) {
- colorless = 0;
+ if (filter.isGeneric()) {
+ generic = 0;
}
}
@@ -187,7 +187,7 @@ public class ConditionalMana extends Mana implements Serializable {
white = 0;
break;
case COLORLESS:
- colorless = 0;
+ generic = 0;
break;
}
}
@@ -210,7 +210,7 @@ public class ConditionalMana extends Mana implements Serializable {
white += amount;;
break;
case COLORLESS:
- colorless += amount;;
+ generic += amount;;
break;
}
}
diff --git a/Mage/src/main/java/mage/Mana.java b/Mage/src/main/java/mage/Mana.java
index ae00967049a..779d31f7cc5 100644
--- a/Mage/src/main/java/mage/Mana.java
+++ b/Mage/src/main/java/mage/Mana.java
@@ -29,12 +29,9 @@ package mage;
import java.io.Serializable;
import java.util.Objects;
-
import mage.constants.ColoredManaSymbol;
import mage.constants.ManaType;
-
import static mage.constants.ManaType.COLORLESS;
-
import mage.filter.FilterMana;
import mage.util.Copyable;
import org.apache.log4j.Logger;
@@ -51,6 +48,7 @@ public class Mana implements Comparable, Serializable, Copyable {
protected int blue;
protected int white;
protected int black;
+ protected int generic;
protected int colorless;
protected int any;
protected boolean flag;
@@ -70,16 +68,17 @@ public class Mana implements Comparable, Serializable, Copyable {
* @param blue total Blue mana to have.
* @param white total White mana to have.
* @param black total Black mana to have.
- * @param colorless total Colorless mana to have.
+ * @param generic total Generic mana to have.
* @param any total Any mana to have.
+ * @param colorless total Colorless mana to have.
*/
- public Mana(final int red, final int green, final int blue, final int white,
- final int black, final int colorless, final int any) {
+ public Mana(final int red, final int green, final int blue, final int white, final int black, final int generic, final int any, final int colorless) {
this.red = notNegative(red, "Red");
this.green = notNegative(green, "Green");
this.blue = notNegative(blue, "Blue");
this.white = notNegative(white, "White");
this.black = notNegative(black, "Black");
+ this.generic = notNegative(generic, "Generic");
this.colorless = notNegative(colorless, "Colorless");
this.any = notNegative(any, "Any");
}
@@ -97,6 +96,7 @@ public class Mana implements Comparable, Serializable, Copyable {
this.blue = mana.blue;
this.white = mana.white;
this.black = mana.black;
+ this.generic = mana.generic;
this.colorless = mana.colorless;
this.any = mana.any;
this.flag = mana.flag;
@@ -141,7 +141,7 @@ public class Mana implements Comparable, Serializable, Copyable {
* @return a {@link Mana} object with the passed in {@code num} of Red mana.
*/
public static Mana RedMana(int num) {
- return new Mana(notNegative(num, "Red"), 0, 0, 0, 0, 0, 0);
+ return new Mana(notNegative(num, "Red"), 0, 0, 0, 0, 0, 0, 0);
}
/**
@@ -154,7 +154,7 @@ public class Mana implements Comparable, Serializable, Copyable {
* mana.
*/
public static Mana GreenMana(int num) {
- return new Mana(0, notNegative(num, "Green"), 0, 0, 0, 0, 0);
+ return new Mana(0, notNegative(num, "Green"), 0, 0, 0, 0, 0, 0);
}
/**
@@ -167,7 +167,7 @@ public class Mana implements Comparable, Serializable, Copyable {
* mana.
*/
public static Mana BlueMana(int num) {
- return new Mana(0, 0, notNegative(num, "Blue"), 0, 0, 0, 0);
+ return new Mana(0, 0, notNegative(num, "Blue"), 0, 0, 0, 0, 0);
}
/**
@@ -180,7 +180,7 @@ public class Mana implements Comparable, Serializable, Copyable {
* mana.
*/
public static Mana WhiteMana(int num) {
- return new Mana(0, 0, 0, notNegative(num, "White"), 0, 0, 0);
+ return new Mana(0, 0, 0, notNegative(num, "White"), 0, 0, 0, 0);
}
/**
@@ -193,7 +193,20 @@ public class Mana implements Comparable, Serializable, Copyable {
* mana.
*/
public static Mana BlackMana(int num) {
- return new Mana(0, 0, 0, 0, notNegative(num, "Black"), 0, 0);
+ return new Mana(0, 0, 0, 0, notNegative(num, "Black"), 0, 0, 0);
+ }
+
+ /**
+ * Creates a {@link Mana} object with the passed in {@code num} of Generic
+ * mana. {@code num} can not be a negative value. Negative values will be
+ * logged and set to 0.
+ *
+ * @param num value of Generic mana to create.
+ * @return a {@link Mana} object with the passed in {@code num} of Generic
+ * mana.
+ */
+ public static Mana GenericMana(int num) {
+ return new Mana(0, 0, 0, 0, 0, notNegative(num, "Generic"), 0, 0);
}
/**
@@ -206,7 +219,7 @@ public class Mana implements Comparable, Serializable, Copyable {
* mana.
*/
public static Mana ColorlessMana(int num) {
- return new Mana(0, 0, 0, 0, 0, notNegative(num, "Colorless"), 0);
+ return new Mana(0, 0, 0, 0, 0, 0, 0, notNegative(num, "Colorless"));
}
/**
@@ -220,6 +233,7 @@ public class Mana implements Comparable, Serializable, Copyable {
blue += mana.getBlue();
white += mana.getWhite();
black += mana.getBlack();
+ generic += mana.getGeneric();
colorless += mana.getColorless();
any += mana.getAny();
}
@@ -259,6 +273,13 @@ public class Mana implements Comparable, Serializable, Copyable {
black++;
}
+ /**
+ * Increases the Generic mana by one.
+ */
+ public void increaseGeneric() {
+ generic++;
+ }
+
/**
* Increases the Colorless mana by one.
*/
@@ -277,6 +298,7 @@ public class Mana implements Comparable, Serializable, Copyable {
blue -= mana.blue;
white -= mana.white;
black -= mana.black;
+ generic -= mana.generic;
colorless -= mana.colorless;
any -= mana.any;
}
@@ -284,12 +306,11 @@ public class Mana implements Comparable, Serializable, Copyable {
/**
* Subtracts the passed in mana values from this instance. The difference
* between this and {@code subtract()} is that if we do not have the
- * available colorless mana to pay, we take mana from our colored mana
- * pools.
+ * available generic mana to pay, we take mana from our colored mana pools.
*
* @param mana mana values to subtract
* @throws ArithmeticException thrown if there is not enough available
- * colored mana to pay the colorless cost
+ * colored mana to pay the generic cost
*/
public void subtractCost(final Mana mana) throws ArithmeticException {
red -= mana.red;
@@ -298,39 +319,44 @@ public class Mana implements Comparable, Serializable, Copyable {
white -= mana.white;
black -= mana.black;
any -= mana.any;
+ generic -= mana.generic;
colorless -= mana.colorless;
- while (colorless < 0) {
- int oldColorless = colorless;
+ while (generic < 0) {
+ int oldColorless = generic;
if (red > 0) {
red--;
- colorless++;
+ generic++;
continue;
}
if (green > 0) {
green--;
- colorless++;
+ generic++;
continue;
}
if (blue > 0) {
blue--;
- colorless++;
+ generic++;
continue;
}
if (white > 0) {
white--;
- colorless++;
+ generic++;
continue;
}
if (black > 0) {
black--;
- colorless++;
+ generic++;
+ }
+ if (colorless > 0) {
+ colorless--;
+ generic++;
}
if (any > 0) {
any--;
- colorless++;
+ generic++;
}
- if (oldColorless == colorless) {
+ if (oldColorless == generic) {
throw new ArithmeticException("Not enough mana to pay colorless");
}
}
@@ -342,7 +368,7 @@ public class Mana implements Comparable, Serializable, Copyable {
* @return the total count of all combined mana.
*/
public int count() {
- return red + green + blue + white + black + colorless + any;
+ return red + green + blue + white + black + generic + colorless + any;
}
/**
@@ -383,6 +409,9 @@ public class Mana implements Comparable, Serializable, Copyable {
if (filter.isRed()) {
count += red;
}
+ if (filter.isGeneric()) {
+ count += generic;
+ }
if (filter.isColorless()) {
count += colorless;
}
@@ -398,6 +427,7 @@ public class Mana implements Comparable, Serializable, Copyable {
blue = 0;
white = 0;
black = 0;
+ generic = 0;
colorless = 0;
any = 0;
}
@@ -410,8 +440,11 @@ public class Mana implements Comparable, Serializable, Copyable {
@Override
public String toString() {
StringBuilder sbMana = new StringBuilder();
- if (colorless > 0) {
- sbMana.append("{").append(Integer.toString(colorless)).append("}");
+ if (generic > 0) {
+ sbMana.append("{").append(Integer.toString(generic)).append("}");
+ }
+ for (int i = 0; i < colorless; i++) {
+ sbMana.append("{C}");
}
for (int i = 0; i < red; i++) {
sbMana.append("{R}");
@@ -490,8 +523,15 @@ public class Mana implements Comparable, Serializable, Copyable {
compare.white = 0;
}
if (compare.colorless < 0) {
- int remaining = compare.red + compare.green + compare.black + compare.blue + compare.white + compare.any;
- if (compare.colorless + remaining < 0) {
+ compare.any = compare.getAny() + compare.getColorless();
+ if (compare.any < 0) {
+ return false;
+ }
+ compare.colorless = 0;
+ }
+ if (compare.generic < 0) {
+ int remaining = compare.red + compare.green + compare.black + compare.blue + compare.white + compare.colorless + compare.any;
+ if (compare.generic + remaining < 0) {
return false;
}
}
@@ -532,17 +572,23 @@ public class Mana implements Comparable, Serializable, Copyable {
compare.any = compare.any - diff;
compare.white = compare.white + diff;
}
- if (compare.colorless < 0) {
+ if (compare.colorless < 0 && compare.any > 0) {
+ int diff = Math.min(compare.any, Math.abs(compare.colorless));
+ compare.any = compare.any - diff;
+ compare.colorless = compare.colorless + diff;
+ }
+ if (compare.generic < 0) {
int remaining = 0;
remaining += Math.min(0, compare.red);
remaining += Math.min(0, compare.white);
remaining += Math.min(0, compare.green);
remaining += Math.min(0, compare.black);
remaining += Math.min(0, compare.blue);
+ remaining += Math.min(0, compare.colorless);
remaining += Math.min(0, compare.any);
if (remaining > 0) {
- int diff = Math.min(remaining, Math.abs(compare.colorless));
- compare.colorless = compare.colorless + diff;
+ int diff = Math.min(remaining, Math.abs(compare.generic));
+ compare.generic = compare.generic + diff;
}
}
Mana needed = new Mana();
@@ -564,6 +610,9 @@ public class Mana implements Comparable, Serializable, Copyable {
if (compare.colorless < 0) {
needed.colorless = Math.abs(compare.colorless);
}
+ if (compare.generic < 0) {
+ needed.generic = Math.abs(compare.generic);
+ }
return needed;
}
@@ -662,6 +711,25 @@ public class Mana implements Comparable, Serializable, Copyable {
this.black = notNegative(black, "Black");
}
+ /**
+ * Returns total Generic mana.
+ *
+ * @return total Generic mana.
+ */
+ public int getGeneric() {
+ return generic;
+ }
+
+ /**
+ * Sets the total Generic mana. Can not be negative. Negative values will be
+ * logged and set to 0.
+ *
+ * @param generic total Generic mana.
+ */
+ public void setGeneric(int generic) {
+ this.generic = notNegative(generic, "Generic");
+ }
+
/**
* Returns total Colorless mana.
*
@@ -734,7 +802,10 @@ public class Mana implements Comparable, Serializable, Copyable {
if (mana.green > 0 && this.green > 0) {
return true;
}
- if (mana.colorless > 0 && this.count() > 0) {
+ if (mana.colorless > 0 && this.colorless > 0) {
+ return true;
+ }
+ if (mana.generic > 0 && this.count() > 0) {
return true;
}
@@ -789,7 +860,7 @@ public class Mana implements Comparable, Serializable, Copyable {
case WHITE:
return white;
case COLORLESS:
- return colorless;
+ return generic + colorless;
}
return 0;
}
@@ -847,6 +918,7 @@ public class Mana implements Comparable, Serializable, Copyable {
this.blue = mana.blue;
this.black = mana.black;
this.colorless = mana.colorless;
+ this.generic = mana.generic;
}
/**
@@ -862,7 +934,8 @@ public class Mana implements Comparable, Serializable, Copyable {
&& this.white == mana.white
&& this.blue == mana.blue
&& this.black == mana.black
- && this.colorless == mana.colorless;
+ && this.colorless == mana.colorless
+ && this.generic == mana.generic;
}
/**
@@ -879,14 +952,15 @@ public class Mana implements Comparable, Serializable, Copyable {
&& this.white >= mana.white
&& this.black >= mana.black
&& this.red >= mana.red
- && (this.colorless >= mana.colorless
- || this.countColored() >= mana.countColored() + mana.colorless);
+ && this.colorless >= mana.colorless
+ && (this.generic >= mana.generic
+ || this.countColored() >= mana.countColored() + mana.generic);
}
/**
* Returns the mana that is more colored or has a greater amount but does
- * not contain one less mana in any color but colorless if you call with
+ * not contain one less mana in any color but generic if you call with
* {1}{W}{R} and {G}{W}{R} you get back {G}{W}{R} if you call with {G}{W}{R}
* and {G}{W}{R} you get back {G}{W}{R} if you call with {G}{W}{B} and
* {G}{W}{R} you get back null
@@ -910,6 +984,7 @@ public class Mana implements Comparable, Serializable, Copyable {
|| lessMana.getGreen() > moreMana.getGreen()
|| lessMana.getBlue() > moreMana.getBlue()
|| lessMana.getBlack() > moreMana.getBlack()
+ || lessMana.getColorless() > moreMana.getColorless()
|| lessMana.getAny() > moreMana.getAny()) {
return null;
}
@@ -970,6 +1045,9 @@ public class Mana implements Comparable, Serializable, Copyable {
if (colorless != mana.colorless) {
return false;
}
+ if (generic != mana.generic) {
+ return false;
+ }
if (any != mana.any) {
return false;
}
@@ -984,6 +1062,7 @@ public class Mana implements Comparable, Serializable, Copyable {
result = 31 * result + blue;
result = 31 * result + white;
result = 31 * result + black;
+ result = 31 * result + generic;
result = 31 * result + colorless;
result = 31 * result + any;
result = 31 * result + (flag ? 1 : 0);
diff --git a/Mage/src/main/java/mage/abilities/AbilityImpl.java b/Mage/src/main/java/mage/abilities/AbilityImpl.java
index 2e1f1e31c77..790607c3561 100644
--- a/Mage/src/main/java/mage/abilities/AbilityImpl.java
+++ b/Mage/src/main/java/mage/abilities/AbilityImpl.java
@@ -554,7 +554,7 @@ public abstract class AbilityImpl implements Ability {
xValue = controller.announceXMana(variableManaCost.getMinX(), variableManaCost.getMaxX(), "Announce the value for " + variableManaCost.getText(), game, this);
int amountMana = xValue * variableManaCost.getMultiplier();
StringBuilder manaString = threadLocalBuilder.get();
- if (variableManaCost.getFilter() == null || variableManaCost.getFilter().isColorless()) {
+ if (variableManaCost.getFilter() == null || variableManaCost.getFilter().isGeneric()) {
manaString.append("{").append(amountMana).append("}");
} else {
String manaSymbol = null;
diff --git a/Mage/src/main/java/mage/abilities/costs/mana/GenericManaCost.java b/Mage/src/main/java/mage/abilities/costs/mana/GenericManaCost.java
index a216b74b5c3..d432ccd4f0c 100644
--- a/Mage/src/main/java/mage/abilities/costs/mana/GenericManaCost.java
+++ b/Mage/src/main/java/mage/abilities/costs/mana/GenericManaCost.java
@@ -40,8 +40,8 @@ public class GenericManaCost extends ManaCostImpl {
public GenericManaCost(int mana) {
this.mana = mana;
- this.cost = Mana.ColorlessMana(mana);
- this.options.addMana(Mana.ColorlessMana(mana));
+ this.cost = Mana.GenericMana(mana);
+ this.options.addMana(Mana.GenericMana(mana));
}
public GenericManaCost(GenericManaCost manaCost) {
diff --git a/Mage/src/main/java/mage/abilities/costs/mana/ManaCostsImpl.java b/Mage/src/main/java/mage/abilities/costs/mana/ManaCostsImpl.java
index 579c0b4bd90..413bcbbc3ef 100644
--- a/Mage/src/main/java/mage/abilities/costs/mana/ManaCostsImpl.java
+++ b/Mage/src/main/java/mage/abilities/costs/mana/ManaCostsImpl.java
@@ -225,13 +225,11 @@ public class ManaCostsImpl extends ArrayList implements M
return;
}
// attempt to pay colorless costs (not generic) mana costs first
- if (pool.getColorless() > 0) {
- for (ManaCost cost : this) {
- if (!cost.isPaid() && cost instanceof ColorlessManaCost) {
- cost.assignPayment(game, ability, pool);
- if (pool.count() == 0) {
- return;
- }
+ for (ManaCost cost : this) {
+ if (!cost.isPaid() && cost instanceof ColorlessManaCost) {
+ cost.assignPayment(game, ability, pool);
+ if (pool.count() == 0) {
+ return;
}
}
}
diff --git a/Mage/src/main/java/mage/abilities/costs/mana/MonoHybridManaCost.java b/Mage/src/main/java/mage/abilities/costs/mana/MonoHybridManaCost.java
index 1d4a6170140..f30b37745c1 100644
--- a/Mage/src/main/java/mage/abilities/costs/mana/MonoHybridManaCost.java
+++ b/Mage/src/main/java/mage/abilities/costs/mana/MonoHybridManaCost.java
@@ -43,9 +43,9 @@ public class MonoHybridManaCost extends ManaCostImpl {
public MonoHybridManaCost(ColoredManaSymbol mana) {
this.mana = mana;
this.cost = new Mana(mana);
- this.cost.add(Mana.ColorlessMana(2));
+ this.cost.add(Mana.GenericMana(2));
addColoredOption(mana);
- options.add(Mana.ColorlessMana(2));
+ options.add(Mana.GenericMana(2));
}
public MonoHybridManaCost(MonoHybridManaCost manaCost) {
@@ -125,7 +125,7 @@ public class MonoHybridManaCost extends ManaCostImpl {
public List getManaOptions() {
List manaList = new ArrayList<>();
manaList.add(new Mana(mana));
- manaList.add(Mana.ColorlessMana(2));
+ manaList.add(Mana.GenericMana(2));
return manaList;
}
}
diff --git a/Mage/src/main/java/mage/abilities/costs/mana/PhyrexianManaCost.java b/Mage/src/main/java/mage/abilities/costs/mana/PhyrexianManaCost.java
index 6bfeceb31af..2ee8022b8f3 100644
--- a/Mage/src/main/java/mage/abilities/costs/mana/PhyrexianManaCost.java
+++ b/Mage/src/main/java/mage/abilities/costs/mana/PhyrexianManaCost.java
@@ -45,7 +45,7 @@ public class PhyrexianManaCost extends ColoredManaCost {
public PhyrexianManaCost(ColoredManaSymbol mana) {
super(mana);
- options.add(Mana.ColorlessMana(0));
+ options.add(Mana.GenericMana(0));
}
public PhyrexianManaCost(PhyrexianManaCost manaCost) {
diff --git a/Mage/src/main/java/mage/abilities/costs/mana/SnowManaCost.java b/Mage/src/main/java/mage/abilities/costs/mana/SnowManaCost.java
index eaa722de91c..d55489492cf 100644
--- a/Mage/src/main/java/mage/abilities/costs/mana/SnowManaCost.java
+++ b/Mage/src/main/java/mage/abilities/costs/mana/SnowManaCost.java
@@ -44,8 +44,8 @@ public class SnowManaCost extends ManaCostImpl {
}
public SnowManaCost() {
- this.cost = Mana.ColorlessMana(1);
- this.options.addMana(Mana.ColorlessMana(1));
+ this.cost = Mana.GenericMana(1);
+ this.options.addMana(Mana.GenericMana(1));
this.setSourceFilter(filter);
}
diff --git a/Mage/src/main/java/mage/abilities/costs/mana/VariableManaCost.java b/Mage/src/main/java/mage/abilities/costs/mana/VariableManaCost.java
index ee08fe83b0b..43311115e4f 100644
--- a/Mage/src/main/java/mage/abilities/costs/mana/VariableManaCost.java
+++ b/Mage/src/main/java/mage/abilities/costs/mana/VariableManaCost.java
@@ -106,7 +106,7 @@ public class VariableManaCost extends ManaCostImpl implements VariableCost {
@Override
public void setAmount(int amount) {
- payment.setColorless(amount);
+ payment.setGeneric(amount);
}
@Override
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 7e0de77c756..efcf108acfb 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/AddConditionalColorlessManaEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/AddConditionalColorlessManaEffect.java
@@ -24,7 +24,9 @@ public class AddConditionalColorlessManaEffect extends ManaEffect {
super();
this.amount = amount;
this.manaBuilder = manaBuilder;
- staticText = "Add {" + amount + "} to your mana pool. " + manaBuilder.getRule();
+
+ staticText = "Add " + String.format(String.format("%%%ds", amount), " ").replace(" ", "{C}")
+ + " to your mana pool. " + manaBuilder.getRule();
}
public AddConditionalColorlessManaEffect(final AddConditionalColorlessManaEffect effect) {
@@ -54,6 +56,6 @@ public class AddConditionalColorlessManaEffect extends ManaEffect {
}
public Mana getMana() {
- return new Mana(0, 0, 0, 0, 0, amount, 0);
+ return new Mana(0, 0, 0, 0, 0, 0, 0, amount);
}
}
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 fb7ad296c42..a2c556ce82f 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));
+ super(new Mana(0,0,0,0,0,0, amount, 0));
this.amount = amount;
this.staticText = new StringBuilder("add ")
.append(CardUtil.numberToText(amount))
@@ -103,7 +103,7 @@ public class AddManaOfAnyColorEffect extends BasicManaEffect {
@Override
public Mana getMana() {
- return (new Mana(0,0,0,0,0,0,amount));
+ return (new Mana(0,0,0,0,0,0,amount, 0));
}
}
diff --git a/Mage/src/main/java/mage/abilities/effects/common/AddManaOfAnyTypeProducedEffect.java b/Mage/src/main/java/mage/abilities/effects/common/AddManaOfAnyTypeProducedEffect.java
index c230ee146f5..c683f91d8ac 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/AddManaOfAnyTypeProducedEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/AddManaOfAnyTypeProducedEffect.java
@@ -25,7 +25,6 @@
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
-
package mage.abilities.effects.common;
import mage.Mana;
@@ -40,7 +39,6 @@ import mage.players.Player;
*
* @author LevelX2
*/
-
public class AddManaOfAnyTypeProducedEffect extends ManaEffect {
public AddManaOfAnyTypeProducedEffect() {
@@ -78,7 +76,7 @@ public class AddManaOfAnyTypeProducedEffect extends ManaEffect {
if (types.getWhite() > 0) {
choice.getChoices().add("White");
}
- if (types.getColorless() > 0) {
+ if (types.getGeneric() > 0) {
choice.getChoices().add("Colorless");
}
if (choice.getChoices().size() > 0) {
@@ -110,10 +108,10 @@ public class AddManaOfAnyTypeProducedEffect extends ManaEffect {
case "Colorless":
newMana.setColorless(1);
break;
- }
+ }
checkToFirePossibleEvents(newMana, game, source);
targetController.getManaPool().addMana(newMana, game, source);
-
+
}
return true;
}
diff --git a/Mage/src/main/java/mage/abilities/effects/common/AffinityEffect.java b/Mage/src/main/java/mage/abilities/effects/common/AffinityEffect.java
index d1b30c14c25..e7d12be0f80 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/AffinityEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/AffinityEffect.java
@@ -29,13 +29,13 @@ public class AffinityEffect extends CostModificationEffectImpl {
public boolean apply(Game game, Ability source, Ability abilityToModify) {
SpellAbility spellAbility = (SpellAbility)abilityToModify;
Mana mana = spellAbility.getManaCostsToPay().getMana();
- if (mana.getColorless() > 0) {
+ if (mana.getGeneric() > 0) {
int count = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game);
- int newCount = mana.getColorless() - count;
+ int newCount = mana.getGeneric() - count;
if (newCount < 0) {
newCount = 0;
}
- mana.setColorless(newCount);
+ mana.setGeneric(newCount);
spellAbility.getManaCostsToPay().load(mana.toString());
return true;
}
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 6d6cc7597a7..8dcdda4aa64 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/DynamicManaEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/DynamicManaEffect.java
@@ -171,7 +171,7 @@ public class DynamicManaEffect extends BasicManaEffect {
}
}
} else {
- computedMana.setColorless(count);
+ computedMana.setGeneric(count);
}
return computedMana;
}
diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/CommanderManaReplacementEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/CommanderManaReplacementEffect.java
index b3e4e3de2c1..c8f0656e373 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/continuous/CommanderManaReplacementEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/CommanderManaReplacementEffect.java
@@ -81,31 +81,31 @@ public class CommanderManaReplacementEffect extends ReplacementEffectImpl {
Mana mana = ((ManaEvent) event).getMana();
if (mana.getBlack() > 0 && !commanderMana.isBlack()) {
for (int i = 0; i < mana.getBlack(); i++) {
- mana.increaseColorless();
+ mana.increaseGeneric();
}
mana.setBlack(0);
}
if (mana.getBlue() > 0 && !commanderMana.isBlue()) {
for (int i = 0; i < mana.getBlue(); i++) {
- mana.increaseColorless();
+ mana.increaseGeneric();
}
mana.setBlue(0);
}
if (mana.getGreen() > 0 && !commanderMana.isGreen()) {
for (int i = 0; i < mana.getGreen(); i++) {
- mana.increaseColorless();
+ mana.increaseGeneric();
}
mana.setGreen(0);
}
if (mana.getRed() > 0 && !commanderMana.isRed()) {
for (int i = 0; i < mana.getRed(); i++) {
- mana.increaseColorless();
+ mana.increaseGeneric();
}
mana.setRed(0);
}
if (mana.getWhite() > 0 && !commanderMana.isWhite()) {
for (int i = 0; i < mana.getWhite(); i++) {
- mana.increaseColorless();
+ mana.increaseGeneric();
}
mana.setWhite(0);
}
diff --git a/Mage/src/main/java/mage/abilities/effects/common/cost/SpellsCostReductionAllEffect.java b/Mage/src/main/java/mage/abilities/effects/common/cost/SpellsCostReductionAllEffect.java
index 7384cc01ac1..155753c83f0 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/cost/SpellsCostReductionAllEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/cost/SpellsCostReductionAllEffect.java
@@ -81,7 +81,7 @@ public class SpellsCostReductionAllEffect extends CostModificationEffectImpl {
public boolean apply(Game game, Ability source, Ability abilityToModify) {
if (upTo) {
Mana mana = abilityToModify.getManaCostsToPay().getMana();
- int reduceMax = mana.getColorless();
+ int reduceMax = mana.getGeneric();
if (reduceMax > 2) {
reduceMax = 2;
}
diff --git a/Mage/src/main/java/mage/abilities/effects/common/cost/SpellsCostReductionControllerEffect.java b/Mage/src/main/java/mage/abilities/effects/common/cost/SpellsCostReductionControllerEffect.java
index 9fd1453f429..dab53df1b32 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/cost/SpellsCostReductionControllerEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/cost/SpellsCostReductionControllerEffect.java
@@ -101,7 +101,7 @@ public class SpellsCostReductionControllerEffect extends CostModificationEffectI
} else {
if (upTo) {
Mana mana = abilityToModify.getManaCostsToPay().getMana();
- int reduceMax = mana.getColorless();
+ int reduceMax = mana.getGeneric();
if (reduceMax > amount) {
reduceMax = amount;
}
diff --git a/Mage/src/main/java/mage/abilities/keyword/ConvokeAbility.java b/Mage/src/main/java/mage/abilities/keyword/ConvokeAbility.java
index 232be52c57c..fc7cc422c07 100644
--- a/Mage/src/main/java/mage/abilities/keyword/ConvokeAbility.java
+++ b/Mage/src/main/java/mage/abilities/keyword/ConvokeAbility.java
@@ -122,7 +122,7 @@ public class ConvokeAbility extends SimpleStaticAbility implements AlternateMana
// create filter for possible creatures to tap
FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent();
filter.add(Predicates.not(new TappedPredicate()));
- if (unpaid.getMana().getColorless() == 0) {
+ if (unpaid.getMana().getGeneric() == 0) {
List colorPredicates = new ArrayList<>();
if (unpaid.getMana().getBlack() > 0) {
colorPredicates.add(new ColorPredicate(ObjectColor.BLACK));
@@ -182,7 +182,7 @@ class ConvokeEffect extends OneShotEffect {
public ConvokeEffect(ManaCost unpaid) {
super(Outcome.Benefit);
this.unpaid = unpaid;
- this.staticText = "Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of that creature's color.)";
+ this.staticText = "Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {C} or one mana of that creature's color.)";
}
public ConvokeEffect(final ConvokeEffect effect) {
diff --git a/Mage/src/main/java/mage/abilities/keyword/DelveAbility.java b/Mage/src/main/java/mage/abilities/keyword/DelveAbility.java
index 45d91c5e26e..b823c296340 100644
--- a/Mage/src/main/java/mage/abilities/keyword/DelveAbility.java
+++ b/Mage/src/main/java/mage/abilities/keyword/DelveAbility.java
@@ -98,11 +98,11 @@ public class DelveAbility extends SimpleStaticAbility implements AlternateManaPa
public void addSpecialAction(Ability source, Game game, ManaCost unpaid) {
Player controller = game.getPlayer(source.getControllerId());
if (controller != null && controller.getGraveyard().size() > 0) {
- if (unpaid.getMana().getColorless() > 0 && source.getAbilityType().equals(AbilityType.SPELL)) {
+ if (unpaid.getMana().getGeneric() > 0 && source.getAbilityType().equals(AbilityType.SPELL)) {
SpecialAction specialAction = new DelveSpecialAction();
specialAction.setControllerId(source.getControllerId());
specialAction.setSourceId(source.getSourceId());
- int unpaidAmount = unpaid.getMana().getColorless();
+ int unpaidAmount = unpaid.getMana().getGeneric();
if (!controller.getManaPool().isAutoPayment() && unpaidAmount > 1) {
unpaidAmount = 1;
}
@@ -157,7 +157,7 @@ class DelveEffect extends OneShotEffect {
List exiledCards = exileFromGraveCost.getExiledCards();
if (exiledCards.size() > 0) {
ManaPool manaPool = controller.getManaPool();
- manaPool.addMana(new Mana(0, 0, 0, 0, 0, exiledCards.size(), 0), game, source);
+ manaPool.addMana(new Mana(0, 0, 0, 0, 0, 0, 0, exiledCards.size()), game, source);
manaPool.unlockManaType(ManaType.COLORLESS);
String keyString = CardUtil.getCardZoneString("delvedCards", source.getSourceId(), game);
@SuppressWarnings("unchecked")
diff --git a/Mage/src/main/java/mage/abilities/mana/ActivateOncePerTurnManaAbility.java b/Mage/src/main/java/mage/abilities/mana/ActivateOncePerTurnManaAbility.java
index d906e8fd03c..0fdcfc4be51 100644
--- a/Mage/src/main/java/mage/abilities/mana/ActivateOncePerTurnManaAbility.java
+++ b/Mage/src/main/java/mage/abilities/mana/ActivateOncePerTurnManaAbility.java
@@ -61,7 +61,7 @@ public class ActivateOncePerTurnManaAbility extends ManaAbility {
public ActivateOncePerTurnManaAbility(Zone zone, AddManaOfAnyColorEffect effect, Cost cost) {
super(zone, effect, cost);
- this.netMana.add(new Mana(0,0,0,0,0,0,effect.getAmount()));
+ this.netMana.add(new Mana(0,0,0,0,0,0,effect.getAmount(), 0));
}
public ActivateOncePerTurnManaAbility(ActivateOncePerTurnManaAbility ability) {
diff --git a/Mage/src/main/java/mage/abilities/mana/AnyColorLandsProduceManaAbility.java b/Mage/src/main/java/mage/abilities/mana/AnyColorLandsProduceManaAbility.java
index 745ace74af9..a2db740523d 100644
--- a/Mage/src/main/java/mage/abilities/mana/AnyColorLandsProduceManaAbility.java
+++ b/Mage/src/main/java/mage/abilities/mana/AnyColorLandsProduceManaAbility.java
@@ -50,7 +50,6 @@ import mage.players.Player;
*
* @author LevelX2
*/
-
public class AnyColorLandsProduceManaAbility extends ManaAbility {
public AnyColorLandsProduceManaAbility(TargetController targetController) {
@@ -68,7 +67,7 @@ public class AnyColorLandsProduceManaAbility extends ManaAbility {
@Override
public List getNetMana(Game game) {
- return ((AnyColorLandsProduceManaEffect)getEffects().get(0)).getNetMana(game, this);
+ return ((AnyColorLandsProduceManaEffect) getEffects().get(0)).getNetMana(game, this);
}
}
@@ -161,7 +160,7 @@ class AnyColorLandsProduceManaEffect extends ManaEffect {
Abilities mana = land.getAbilities().getManaAbilities(Zone.BATTLEFIELD);
for (ManaAbility ability : mana) {
if (!ability.equals(source) && ability.definesMana()) {
- for (Mana netMana: ability.getNetMana(game)) {
+ for (Mana netMana : ability.getNetMana(game)) {
types.add(netMana);
}
}
@@ -170,7 +169,7 @@ class AnyColorLandsProduceManaEffect extends ManaEffect {
return types;
}
- public List getNetMana(Game game, Ability source) {
+ public List getNetMana(Game game, Ability source) {
List netManas = new ArrayList<>();
Mana types = getManaTypes(game, source);
if (types.getBlack() > 0) {
@@ -189,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,1,0));
+ netManas.add(new Mana(0, 0, 0, 0, 0, 0, 0, 1));
}
return netManas;
}
diff --git a/Mage/src/main/java/mage/abilities/mana/AnyColorManaAbility.java b/Mage/src/main/java/mage/abilities/mana/AnyColorManaAbility.java
index 6a0e98e090f..1b4b7f50950 100644
--- a/Mage/src/main/java/mage/abilities/mana/AnyColorManaAbility.java
+++ b/Mage/src/main/java/mage/abilities/mana/AnyColorManaAbility.java
@@ -40,7 +40,7 @@ public class AnyColorManaAbility extends ManaAbility {
public AnyColorManaAbility(Cost cost) {
super(Zone.BATTLEFIELD, new AddManaOfAnyColorEffect(), cost);
- this.netMana.add(new Mana(0,0,0,0,0,0,1));
+ this.netMana.add(new Mana(0,0,0,0,0,0,1, 0));
}
public AnyColorManaAbility(final AnyColorManaAbility ability) {
diff --git a/Mage/src/main/java/mage/abilities/mana/ColorlessManaAbility.java b/Mage/src/main/java/mage/abilities/mana/ColorlessManaAbility.java
index 6b1c725d637..629d640e100 100644
--- a/Mage/src/main/java/mage/abilities/mana/ColorlessManaAbility.java
+++ b/Mage/src/main/java/mage/abilities/mana/ColorlessManaAbility.java
@@ -1,31 +1,30 @@
/*
-* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without modification, are
-* permitted provided that the following conditions are met:
-*
-* 1. Redistributions of source code must retain the above copyright notice, this list of
-* conditions and the following disclaimer.
-*
-* 2. Redistributions in binary form must reproduce the above copyright notice, this list
-* of conditions and the following disclaimer in the documentation and/or other materials
-* provided with the distribution.
-*
-* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
-* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
-* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*
-* The views and conclusions contained in the software and documentation are those of the
-* authors and should not be interpreted as representing official policies, either expressed
-* or implied, of BetaSteward_at_googlemail.com.
-*/
-
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
package mage.abilities.mana;
import mage.Mana;
@@ -39,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,1,0));
+ this.netMana.add(new Mana(0, 0, 0, 0, 0, 0, 0, 1));
}
public ColorlessManaAbility(ColorlessManaAbility ability) {
diff --git a/Mage/src/main/java/mage/abilities/mana/ConditionalAnyColorManaAbility.java b/Mage/src/main/java/mage/abilities/mana/ConditionalAnyColorManaAbility.java
index 70190ef50a0..46e0a7c052b 100644
--- a/Mage/src/main/java/mage/abilities/mana/ConditionalAnyColorManaAbility.java
+++ b/Mage/src/main/java/mage/abilities/mana/ConditionalAnyColorManaAbility.java
@@ -73,7 +73,7 @@ public class ConditionalAnyColorManaAbility extends ManaAbility {
@Override
public List getNetMana(Game game) {
this.netMana.clear();
- this.netMana.add(new Mana(0,0,0,0,0,0, amount.calculate(game, this, null)));
+ this.netMana.add(new Mana(0,0,0,0,0,0, amount.calculate(game, this, null), 0));
return super.getNetMana(game);
}
diff --git a/Mage/src/main/java/mage/abilities/mana/ConditionalColorlessManaAbility.java b/Mage/src/main/java/mage/abilities/mana/ConditionalColorlessManaAbility.java
index 37d1096b5b7..254eebd3cf3 100644
--- a/Mage/src/main/java/mage/abilities/mana/ConditionalColorlessManaAbility.java
+++ b/Mage/src/main/java/mage/abilities/mana/ConditionalColorlessManaAbility.java
@@ -3,7 +3,6 @@
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
-
package mage.abilities.mana;
import mage.Mana;
@@ -17,7 +16,6 @@ import mage.constants.Zone;
*
* @author LevelX2
*/
-
public class ConditionalColorlessManaAbility extends ManaAbility {
public ConditionalColorlessManaAbility(int amount, ConditionalManaBuilder manaBuilder) {
@@ -25,8 +23,8 @@ 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,amount,0));
+ super(Zone.BATTLEFIELD, new AddConditionalColorlessManaEffect(amount, manaBuilder), cost);
+ this.netMana.add(new Mana(0, 0, 0, 0, 0, 0, 0, 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 65a3518e6af..0dfc4b55403 100644
--- a/Mage/src/main/java/mage/abilities/mana/ManaOptions.java
+++ b/Mage/src/main/java/mage/abilities/mana/ManaOptions.java
@@ -248,11 +248,11 @@ public class ManaOptions extends ArrayList {
Mana oldMan = mana.copy();
if (mana.includesMana(cost)) {
// colorless costs can be paid with different colored mana, can lead to different color combinations
- if (cost.getColorless() > 0 && cost.getColorless() > mana.getColorless()) {
+ if (cost.getGeneric() > 0 && cost.getGeneric() > mana.getGeneric()) {
Mana coloredCost = cost.copy();
- coloredCost.setColorless(0);
+ coloredCost.setGeneric(0);
mana.subtract(coloredCost);
- for (Mana payCombination : getPossiblePayCombinations(cost.getColorless(), mana)) {
+ for (Mana payCombination : getPossiblePayCombinations(cost.getGeneric(), mana)) {
Mana newMana = mana.copy();
newMana.subtract(payCombination);
newMana.add(addMana);
@@ -319,7 +319,7 @@ public class ManaOptions extends ArrayList {
}
}
} else {
- payCombinations.add(new Mana(0, 0, 0, 0, 0, number, 0));
+ payCombinations.add(new Mana(0, 0, 0, 0, 0, 0, 0, number));
}
return payCombinations;
}
diff --git a/Mage/src/main/java/mage/constants/ManaType.java b/Mage/src/main/java/mage/constants/ManaType.java
index f5a5c2cd35e..ece64f5875a 100644
--- a/Mage/src/main/java/mage/constants/ManaType.java
+++ b/Mage/src/main/java/mage/constants/ManaType.java
@@ -5,11 +5,12 @@ package mage.constants;
* @author North
*/
public enum ManaType {
- BLACK ("black"),
- BLUE ("blue"),
- GREEN ("green"),
- RED ("red"),
- WHITE ("white"),
+
+ BLACK("black"),
+ BLUE("blue"),
+ GREEN("green"),
+ RED("red"),
+ WHITE("white"),
COLORLESS("colorless");
private final String text;
@@ -22,4 +23,4 @@ public enum ManaType {
public String toString() {
return text;
}
-};
\ No newline at end of file
+};
diff --git a/Mage/src/main/java/mage/filter/FilterMana.java b/Mage/src/main/java/mage/filter/FilterMana.java
index 04376af229a..913f41ecabe 100644
--- a/Mage/src/main/java/mage/filter/FilterMana.java
+++ b/Mage/src/main/java/mage/filter/FilterMana.java
@@ -39,6 +39,7 @@ public class FilterMana implements Serializable {
protected boolean white;
protected boolean red;
protected boolean blue;
+ protected boolean generic;
protected boolean colorless;
public FilterMana() {
@@ -50,6 +51,7 @@ public class FilterMana implements Serializable {
white = filter.white;
red = filter.red;
blue = filter.blue;
+ generic = filter.generic;
colorless = filter.colorless;
}
@@ -93,6 +95,14 @@ public class FilterMana implements Serializable {
this.blue = blue;
}
+ public boolean isGeneric() {
+ return generic;
+ }
+
+ public void setGeneric(boolean generic) {
+ this.generic = generic;
+ }
+
public boolean isColorless() {
return colorless;
}
diff --git a/Mage/src/main/java/mage/game/permanent/token/EldraziScionToken.java b/Mage/src/main/java/mage/game/permanent/token/EldraziScionToken.java
index cc11cf02d57..b78fe5402ad 100644
--- a/Mage/src/main/java/mage/game/permanent/token/EldraziScionToken.java
+++ b/Mage/src/main/java/mage/game/permanent/token/EldraziScionToken.java
@@ -48,7 +48,7 @@ public class EldraziScionToken extends Token {
subtype.add("Scion");
power = new MageInt(1);
toughness = new MageInt(1);
- addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(1), new SacrificeSourceCost()));
+ addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.GenericMana(1), new SacrificeSourceCost()));
setOriginalExpansionSetCode("BFZ");
}
diff --git a/Mage/src/main/java/mage/game/permanent/token/EldraziSpawnToken.java b/Mage/src/main/java/mage/game/permanent/token/EldraziSpawnToken.java
index f4d440942ed..c063ed0ac15 100644
--- a/Mage/src/main/java/mage/game/permanent/token/EldraziSpawnToken.java
+++ b/Mage/src/main/java/mage/game/permanent/token/EldraziSpawnToken.java
@@ -1,16 +1,16 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
- *
+ *
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
- *
+ *
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
- *
+ *
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
@@ -20,24 +20,23 @@
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
+ *
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
-
package mage.game.permanent.token;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
-import mage.constants.CardType;
-import mage.constants.Zone;
import mage.MageInt;
import mage.Mana;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.mana.SimpleManaAbility;
+import mage.constants.CardType;
+import mage.constants.Zone;
/**
*
diff --git a/Mage/src/main/java/mage/players/ManaPool.java b/Mage/src/main/java/mage/players/ManaPool.java
index 04aec4fa846..92c9c0039bd 100644
--- a/Mage/src/main/java/mage/players/ManaPool.java
+++ b/Mage/src/main/java/mage/players/ManaPool.java
@@ -310,7 +310,7 @@ public class ManaPool implements Serializable {
total += item.getGreen();
item.removeGreen();
}
- if (filter.isColorless()) {
+ if (filter.isGeneric()) {
total += item.getColorless();
item.removeColorless();
}
@@ -342,9 +342,6 @@ public class ManaPool implements Serializable {
if (filter.isBlue()) {
m.setBlue(test.getBlue());
}
- if (filter.isColorless()) {
- m.setColorless(test.getColorless());
- }
if (filter.isGreen()) {
m.setGreen(test.getGreen());
}
@@ -354,12 +351,18 @@ public class ManaPool implements Serializable {
if (filter.isWhite()) {
m.setWhite(test.getWhite());
}
+ if (filter.isColorless()) {
+ m.setColorless(test.getColorless());
+ }
+ if (filter.isGeneric()) {
+ m.setGeneric(test.getGeneric());
+ }
return m;
}
public Mana getAllConditionalMana(Ability ability, Game game, FilterMana filter) {
Mana m = new Mana();
- m.setColorless(getConditionalCount(ability, game, filter));
+ m.setGeneric(getConditionalCount(ability, game, filter));
return m;
}
@@ -377,7 +380,7 @@ public class ManaPool implements Serializable {
}
this.manaItems.add(item);
} else {
- ManaPoolItem item = new ManaPoolItem(mana.getRed(), mana.getGreen(), mana.getBlue(), mana.getWhite(), mana.getBlack(), mana.getColorless(), source.getSourceId(), source.getOriginalId(), mana.getFlag());
+ ManaPoolItem item = new ManaPoolItem(mana.getRed(), mana.getGreen(), mana.getBlue(), mana.getWhite(), mana.getBlack(), mana.getGeneric() + mana.getColorless(), source.getSourceId(), source.getOriginalId(), mana.getFlag());
if (emptyOnTurnsEnd) {
item.setDuration(Duration.EndOfTurn);
}
diff --git a/Mage/src/main/java/mage/players/ManaPoolItem.java b/Mage/src/main/java/mage/players/ManaPoolItem.java
index 9c380389a3d..2dcb9a92f51 100644
--- a/Mage/src/main/java/mage/players/ManaPoolItem.java
+++ b/Mage/src/main/java/mage/players/ManaPoolItem.java
@@ -181,7 +181,7 @@ public class ManaPoolItem implements Serializable {
}
public Mana getMana() {
- return new Mana(red, green, blue, white, black, colorless, 0);
+ return new Mana(red, green, blue, white, black, 0, 0, colorless);
}
public int count() {
diff --git a/Mage/src/main/java/mage/players/PlayerImpl.java b/Mage/src/main/java/mage/players/PlayerImpl.java
index 31bcdbb769e..07ac9fb6e8f 100644
--- a/Mage/src/main/java/mage/players/PlayerImpl.java
+++ b/Mage/src/main/java/mage/players/PlayerImpl.java
@@ -42,6 +42,7 @@ import java.util.Map.Entry;
import java.util.Random;
import java.util.Set;
import java.util.UUID;
+import mage.ConditionalMana;
import mage.MageObject;
import mage.Mana;
import mage.abilities.Abilities;
@@ -2532,7 +2533,9 @@ public abstract class PlayerImpl implements Player, Serializable {
ManaOptions availableMana = getManaAvailable(game);
availableMana.addMana(manaPool.getMana());
-
+ for (ConditionalMana conditionalMana : manaPool.getConditionalMana()) {
+ availableMana.addMana(conditionalMana);
+ }
if (hidden) {
for (Card card : hand.getUniqueCards(game)) {
for (Ability ability : card.getAbilities(game)) { // gets this activated ability from hand? (Morph?)
diff --git a/Mage/src/main/java/mage/util/CardUtil.java b/Mage/src/main/java/mage/util/CardUtil.java
index 1b4c5e9d269..5821c3e72f1 100644
--- a/Mage/src/main/java/mage/util/CardUtil.java
+++ b/Mage/src/main/java/mage/util/CardUtil.java
@@ -187,7 +187,7 @@ public class CardUtil {
if (object instanceof ManaCost) {
ManaCost manaCost = (ManaCost) object;
Mana mana = manaCost.getOptions().get(0);
- int colorless = mana != null ? mana.getColorless() : 0;
+ int colorless = mana != null ? mana.getGeneric() : 0;
if (!updated && colorless > 0) {
if ((colorless - reduceCount) > 0) {
int newColorless = colorless - reduceCount;
@@ -225,7 +225,7 @@ public class CardUtil {
boolean updated = false;
for (ManaCost manaCost : manaCosts) {
Mana mana = manaCost.getOptions().get(0);
- int colorless = mana != null ? mana.getColorless() : 0;
+ int colorless = mana != null ? mana.getGeneric() : 0;
if (restToReduce != 0 && colorless > 0) {
if ((colorless - restToReduce) > 0) {
int newColorless = colorless - restToReduce;
@@ -294,7 +294,7 @@ public class CardUtil {
Mana reduceMana = new Mana();
for (ManaCost manaCost : manaCostsToReduce) {
if (manaCost instanceof MonoHybridManaCost) {
- reduceMana.add(Mana.ColorlessMana(2));
+ reduceMana.add(Mana.GenericMana(2));
} else {
reduceMana.add(manaCost.getMana());
}
@@ -303,7 +303,7 @@ public class CardUtil {
// subtract colored mana
for (ManaCost newManaCost : previousCost) {
Mana mana = newManaCost.getMana();
- if (!(newManaCost instanceof MonoHybridManaCost) && mana.getColorless() > 0) {
+ if (!(newManaCost instanceof MonoHybridManaCost) && mana.getGeneric() > 0) {
manaCostToCheckForColorless.add(newManaCost);
continue;
}
@@ -371,7 +371,7 @@ public class CardUtil {
if (mana.count() > 0) {
if (newManaCost instanceof MonoHybridManaCost) {
if (mana.count() == 2) {
- reduceMana.setColorless(reduceMana.getColorless() - 2);
+ reduceMana.setGeneric(reduceMana.getGeneric() - 2);
continue;
}
}
@@ -385,12 +385,12 @@ public class CardUtil {
if (convertToGeneric) {
reduceAmount = reduceMana.count();
} else {
- reduceAmount = reduceMana.getColorless();
+ reduceAmount = reduceMana.getGeneric();
}
if (reduceAmount > 0) {
for (ManaCost newManaCost : manaCostToCheckForColorless) {
Mana mana = newManaCost.getMana();
- if (mana.getColorless() == 0 || reduceAmount == 0) {
+ if (mana.getGeneric() == 0 || reduceAmount == 0) {
adjustedCost.add(newManaCost);
continue;
}
@@ -401,12 +401,12 @@ public class CardUtil {
}
continue;
}
- if (mana.getColorless() > 0) {
- if (reduceAmount > mana.getColorless()) {
- reduceAmount -= mana.getColorless();
- mana.setColorless(0);
+ if (mana.getGeneric() > 0) {
+ if (reduceAmount > mana.getGeneric()) {
+ reduceAmount -= mana.getGeneric();
+ mana.setGeneric(0);
} else {
- mana.setColorless(mana.getColorless() - reduceAmount);
+ mana.setGeneric(mana.getGeneric() - reduceAmount);
reduceAmount = 0;
}
}
diff --git a/Mage/src/main/java/mage/util/ManaUtil.java b/Mage/src/main/java/mage/util/ManaUtil.java
index b3d3f3a1b13..0f753f6c7d7 100644
--- a/Mage/src/main/java/mage/util/ManaUtil.java
+++ b/Mage/src/main/java/mage/util/ManaUtil.java
@@ -152,7 +152,7 @@ public class ManaUtil {
if (countColored.isEmpty()) { // seems there is no colorful mana we can pay for
// try to pay {1}
- if (unpaidMana.getColorless() > 0) {
+ if (unpaidMana.getGeneric() > 0) {
// use any (lets choose first)
return replace(useableAbilities, useableAbilities.values().iterator().next());
}
@@ -375,7 +375,7 @@ public class ManaUtil {
if (countColorfull == 0) { // seems there is no colorful mana we can use
// try to pay {1}
- if (mana.getColorless() > 0) {
+ if (mana.getGeneric() > 0) {
// use any (lets choose first)
return replace(useableAbilities, useableAbilities.values().iterator().next());
}
diff --git a/Mage/src/test/java/mage/ManaTest.java b/Mage/src/test/java/mage/ManaTest.java
index 796c3c55d79..03034690520 100644
--- a/Mage/src/test/java/mage/ManaTest.java
+++ b/Mage/src/test/java/mage/ManaTest.java
@@ -144,7 +144,7 @@ public class ManaTest {
public void shouldCreateManaFromIntegers() {
// when
- Mana mana = new Mana(1, 2, 3, 4, 5, 6, 7);
+ Mana mana = new Mana(1, 2, 3, 4, 5, 6, 7, 8);
// then
assertEquals(1, mana.getRed());
@@ -152,8 +152,9 @@ public class ManaTest {
assertEquals(3, mana.getBlue());
assertEquals(4, mana.getWhite());
assertEquals(5, mana.getBlack());
- assertEquals(6, mana.getColorless());
+ assertEquals(6, mana.getGeneric());
assertEquals(7, mana.getAny());
+ assertEquals(8, mana.getColorless());
}
@Test
@@ -161,7 +162,7 @@ public class ManaTest {
// given
// when
- Mana mana = new Mana(-1, 2, 3, 4, 5, 6, 7);
+ Mana mana = new Mana(-1, 2, 3, 4, 5, 6, 7, 0);
// then
assertEquals(0, mana.getRed());
@@ -217,6 +218,16 @@ public class ManaTest {
assertEquals(1, mana.getBlack());
}
+ @Test
+ public void shouldCreateGenericMana() {
+
+ // when
+ Mana mana = Mana.GenericMana(1);
+
+ // then
+ assertEquals(1, mana.getGeneric());
+ }
+
@Test
public void shouldCreateColorlessMana() {
@@ -287,17 +298,17 @@ public class ManaTest {
// given
// when
- Mana mana = Mana.ColorlessMana(-1);
+ Mana mana = Mana.GenericMana(-1);
//then
- assertEquals(0, mana.getColorless());
+ assertEquals(0, mana.getGeneric());
}
@Test
public void shouldAddMana() {
// given
- Mana thisMana = new Mana(1, 2, 3, 4, 5, 6, 7);
- Mana thatMana = new Mana(1, 2, 3, 4, 5, 6, 7);
+ Mana thisMana = new Mana(1, 2, 3, 4, 5, 6, 7, 0);
+ Mana thatMana = new Mana(1, 2, 3, 4, 5, 6, 7, 0);
// when
thisMana.add(thatMana);
@@ -308,7 +319,7 @@ public class ManaTest {
assertEquals(6, thisMana.getBlue());
assertEquals(8, thisMana.getWhite());
assertEquals(10, thisMana.getBlack());
- assertEquals(12, thisMana.getColorless());
+ assertEquals(12, thisMana.getGeneric());
assertEquals(14, thisMana.getAny());
}
@@ -378,17 +389,17 @@ public class ManaTest {
Mana mana = new Mana();
// when
- mana.increaseColorless();
+ mana.increaseGeneric();
// then
- assertEquals(1, mana.getColorless());
+ assertEquals(1, mana.getGeneric());
}
@Test
public void shouldSubtractMana() {
// given
- Mana thisMana = new Mana(2, 2, 2, 2, 2, 2, 2);
- Mana thatMana = new Mana(1, 1, 1, 1, 1, 1, 1);
+ Mana thisMana = new Mana(2, 2, 2, 2, 2, 2, 2, 2);
+ Mana thatMana = new Mana(1, 1, 1, 1, 1, 1, 1, 1);
// when
thisMana.subtract(thatMana);
@@ -399,15 +410,16 @@ public class ManaTest {
assertEquals(1, thisMana.getBlue());
assertEquals(1, thisMana.getWhite());
assertEquals(1, thisMana.getBlack());
- assertEquals(1, thisMana.getColorless());
+ assertEquals(1, thisMana.getGeneric());
assertEquals(1, thisMana.getAny());
+ assertEquals(1, thisMana.getColorless());
}
@Test
public void shouldSubtractCost() {
// given
- Mana thisMana = new Mana(2, 2, 2, 2, 2, 2, 2);
- Mana thatMana = new Mana(10, 1, 1, 1, 10, 1, 1);
+ Mana thisMana = new Mana(2, 2, 2, 2, 2, 2, 2, 0);
+ Mana thatMana = new Mana(10, 1, 1, 1, 10, 1, 1, 0);
// when
thisMana.subtractCost(thatMana);
@@ -418,7 +430,7 @@ public class ManaTest {
assertEquals(1, thisMana.getBlue());
assertEquals(1, thisMana.getWhite());
assertEquals(-8, thisMana.getBlack());
- assertEquals(1, thisMana.getColorless());
+ assertEquals(1, thisMana.getGeneric());
assertEquals(1, thisMana.getAny());
}
@@ -430,7 +442,7 @@ public class ManaTest {
Mana cost = new Mana();
cost.setRed(4);
- cost.setColorless(2);
+ cost.setGeneric(2);
// when
available.subtractCost(cost);
@@ -449,7 +461,7 @@ public class ManaTest {
Mana cost = new Mana();
cost.setRed(4);
- cost.setColorless(2);
+ cost.setGeneric(2);
// when
available.subtractCost(cost);
@@ -458,7 +470,7 @@ public class ManaTest {
@Test
public void shouldReturnCount() {
// given
- Mana mana = new Mana(1, 2, 3, 4, 5, 6, 7);
+ Mana mana = new Mana(1, 2, 3, 4, 5, 6, 7, 0);
FilterMana filter = new FilterMana();
filter.setBlack(true);
@@ -476,7 +488,7 @@ public class ManaTest {
@Test
public void shouldReturnString() {
// given
- Mana mana = new Mana(1, 2, 3, 0, 3, 6, 2);
+ Mana mana = new Mana(1, 2, 3, 0, 3, 6, 2, 0);
// when
String ret = mana.toString();
@@ -488,7 +500,7 @@ public class ManaTest {
@Test
public void shouldClearMana() {
// given
- Mana mana = new Mana(1, 2, 3, 4, 5, 6, 7);
+ Mana mana = new Mana(1, 2, 3, 4, 5, 6, 7, 0);
// when
mana.clear();
@@ -499,14 +511,14 @@ public class ManaTest {
assertEquals(0, mana.getBlue());
assertEquals(0, mana.getWhite());
assertEquals(0, mana.getBlack());
- assertEquals(0, mana.getColorless());
+ assertEquals(0, mana.getGeneric());
assertEquals(0, mana.getAny());
}
@Test
public void shouldReturnCopy() {
// given
- Mana mana = new Mana(1, 2, 3, 4, 5, 6, 7);
+ Mana mana = new Mana(1, 2, 3, 4, 5, 6, 7, 0);
// when
Mana copy = mana.copy();
@@ -519,7 +531,7 @@ public class ManaTest {
@Test
public void shouldGetColorByColoredManaSymbol() {
// given
- Mana mana = new Mana(1, 1, 1, 1, 1, 1, 1);
+ Mana mana = new Mana(1, 1, 1, 1, 1, 1, 1, 0);
// when
int redMana = mana.getColor(ColoredManaSymbol.R);
@@ -539,7 +551,7 @@ public class ManaTest {
@Test
public void shouldGetColorByManaType() {
// given
- Mana mana = new Mana(1, 1, 1, 1, 1, 1, 1);
+ Mana mana = new Mana(1, 1, 1, 1, 1, 1, 1, 0);
// when
int redMana = mana.get(ManaType.RED);
@@ -584,7 +596,7 @@ public class ManaTest {
public void shouldSetToMana() {
// given
Mana mana = new Mana();
- Mana newMana = new Mana(1, 2, 3, 4, 5, 6, 7);
+ Mana newMana = new Mana(1, 2, 3, 4, 5, 6, 7, 0);
// when
mana.setToMana(newMana);
@@ -597,8 +609,8 @@ public class ManaTest {
@Test
public void shouldHaveEqualManaValue() {
// given
- Mana mana = new Mana(1, 2, 3, 4, 5, 6, 7);
- Mana newMana = new Mana(1, 2, 3, 4, 5, 6, 7);
+ Mana mana = new Mana(1, 2, 3, 4, 5, 6, 7, 0);
+ Mana newMana = new Mana(1, 2, 3, 4, 5, 6, 7, 0);
// when
boolean equalMana = mana.equalManaValue(newMana);
@@ -632,7 +644,7 @@ public class ManaTest {
mana.setBlue(-4);
mana.setWhite(-4);
mana.setBlack(-4);
- mana.setColorless(-4);
+ mana.setGeneric(-4);
mana.setAny(-4);
// then
@@ -641,7 +653,7 @@ public class ManaTest {
assertEquals(0, mana.getBlue());
assertEquals(0, mana.getWhite());
assertEquals(0, mana.getBlack());
- assertEquals(0, mana.getColorless());
+ assertEquals(0, mana.getGeneric());
assertEquals(0, mana.getAny());
}
}