From 782190bac37fa104505e73e9dfe99a6d69b03c26 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Fri, 8 Jan 2016 23:25:42 +0100 Subject: [PATCH] Some changes to mana handling to handle {C} mana. --- Mage.Common/src/mage/view/ManaPoolView.java | 57 ++++--- .../java/mage/player/ai/ComputerPlayer.java | 17 +- .../sets/alliances/BalduvianTradingPost.java | 3 +- .../sets/alliances/SoldeviExcavations.java | 2 +- .../mage/sets/antiquities/PowerArtifact.java | 4 +- .../src/mage/sets/archenemy/AvatarOfWoe.java | 6 +- .../betrayersofkamigawa/MarkOfSakiko.java | 2 +- .../betrayersofkamigawa/PetalmaneBaku.java | 12 +- .../SakikoMotherOfSummer.java | 2 +- .../ShizukoCallerOfAutumn.java | 2 +- .../sets/bornofthegods/AstralCornucopia.java | 2 +- .../sets/bornofthegods/MarshmistTitan.java | 6 +- .../BoseijuWhoSheltersAll.java | 12 +- .../mage/sets/commander/ScatteringStroke.java | 10 +- .../sets/commander2013/SpringjackPasture.java | 10 +- .../mage/sets/commander2014/CoralAtoll.java | 6 +- .../sets/commander2014/DormantVolcano.java | 4 +- .../mage/sets/commander2014/Everglades.java | 2 +- .../mage/sets/commander2014/JungleBasin.java | 6 +- .../src/mage/sets/commander2014/Karoo.java | 4 +- .../src/mage/sets/conflux/Kaleidostone.java | 2 +- .../src/mage/sets/conflux/KnotvineMystic.java | 4 +- .../mage/sets/darksteel/MyrMoonvessel.java | 8 +- .../src/mage/sets/darksteel/UrGolemsEye.java | 15 +- .../mage/sets/dissension/AzoriusChancery.java | 2 +- .../mage/sets/dissension/AzoriusSignet.java | 2 +- .../mage/sets/dissension/RakdosCarnarium.java | 2 +- .../mage/sets/dissension/RakdosSignet.java | 2 +- .../sets/dissension/SimicGrowthChamber.java | 2 +- .../src/mage/sets/dissension/SimicSignet.java | 2 +- .../sets/dragonsoftarkir/CircleOfElders.java | 2 +- .../sets/dragonsoftarkir/SavageVentmaw.java | 2 +- .../mage/sets/eighthedition/StarCompass.java | 20 +-- .../src/mage/sets/eventide/CascadeBluffs.java | 2 +- .../src/mage/sets/eventide/FetidHeath.java | 2 +- .../src/mage/sets/eventide/FloodedGrove.java | 2 +- .../src/mage/sets/eventide/RuggedPrairie.java | 2 +- .../src/mage/sets/eventide/TwilightMire.java | 2 +- .../src/mage/sets/exodus/CullingTheWeak.java | 2 +- Mage.Sets/src/mage/sets/exodus/Workhorse.java | 6 +- .../mage/sets/fallenempires/BasalThrull1.java | 2 +- .../mage/sets/fatereforged/FrontierSiege.java | 2 +- .../mage/sets/fifthdawn/ChannelTheSuns.java | 2 +- .../sets/gatecrash/BurningTreeEmissary.java | 2 +- .../src/mage/sets/guildpact/GruulSignet.java | 2 +- .../mage/sets/guildpact/IzzetBoilerworks.java | 2 +- .../src/mage/sets/guildpact/IzzetSignet.java | 2 +- .../mage/sets/guildpact/OrzhovBasilica.java | 2 +- .../src/mage/sets/guildpact/OrzhovSignet.java | 2 +- .../src/mage/sets/iceage/FyndhornElder.java | 2 +- .../src/mage/sets/invasion/AncientSpring.java | 2 +- .../mage/sets/invasion/CrosissAttendant.java | 2 +- .../sets/invasion/DarigaazsAttendant.java | 2 +- .../mage/sets/invasion/DromarsAttendant.java | 2 +- .../mage/sets/invasion/GeothermalCrevice.java | 2 +- .../mage/sets/invasion/IrrigationDitch.java | 2 +- .../mage/sets/invasion/RithsAttendant.java | 2 +- .../src/mage/sets/invasion/SulfurVent.java | 2 +- .../src/mage/sets/invasion/TinderFarm.java | 2 +- .../mage/sets/invasion/TrevasAttendant.java | 2 +- .../sets/khansoftarkir/MarduWarshrieker.java | 2 +- .../sets/khansoftarkir/RattleclawMystic.java | 2 +- .../mage/sets/legions/WirewoodChanneler.java | 2 +- .../sets/limitedalpha/BasaltMonolith.java | 2 +- .../mage/sets/lorwyn/SoulbrightFlamekin.java | 2 +- .../mage/sets/magic2014/LiturgyOfBlood.java | 2 +- .../src/mage/sets/magic2015/WasteNot.java | 2 +- .../mage/sets/mercadianmasques/BogWitch.java | 2 +- .../mage/sets/mercadianmasques/KyrenToy.java | 13 +- .../src/mage/sets/mirage/LionsEyeDiamond.java | 2 +- .../src/mage/sets/mirage/TeferisIsle.java | 2 +- .../src/mage/sets/mirrodin/Cathodion.java | 6 +- .../src/mage/sets/mirrodin/Deconstruct.java | 2 +- .../src/mage/sets/mirrodin/SeethingSong.java | 2 +- .../src/mage/sets/mirrodin/TurnToDust.java | 2 +- .../sets/modernmasters/DesperateRitual.java | 2 +- .../sets/modernmasters/GrinningIgnus.java | 2 +- .../mage/sets/morningtide/HeritageDruid.java | 2 +- .../src/mage/sets/odyssey/CrystalQuarry.java | 2 +- .../mage/sets/odyssey/DarkwaterCatacombs.java | 2 +- .../src/mage/sets/odyssey/DarkwaterEgg.java | 2 +- .../src/mage/sets/odyssey/MossfireEgg.java | 2 +- .../src/mage/sets/odyssey/MossfireValley.java | 2 +- .../src/mage/sets/odyssey/NantukoElder.java | 2 +- .../sets/odyssey/OvereagerApprentice.java | 2 +- .../src/mage/sets/odyssey/ShadowbloodEgg.java | 2 +- .../mage/sets/odyssey/ShadowbloodRidge.java | 2 +- .../src/mage/sets/odyssey/SkycloudEgg.java | 2 +- .../mage/sets/odyssey/SkycloudExpanse.java | 2 +- .../src/mage/sets/odyssey/SungrassEgg.java | 2 +- .../mage/sets/odyssey/SungrassPrairie.java | 2 +- .../src/mage/sets/onslaught/ManaEchoes.java | 18 +- .../sets/planarchaos/RadhaHeirToKeld.java | 2 +- .../mage/sets/planechase/BorosGarrison.java | 2 +- .../src/mage/sets/planechase/DarkRitual.java | 2 +- .../src/mage/sets/planechase/GruulTurf.java | 2 +- .../sets/planechase/VedalkenEngineer.java | 2 +- .../src/mage/sets/planeshift/MorgueToad.java | 2 +- .../src/mage/sets/prophecy/AvatarOfHope.java | 6 +- .../src/mage/sets/prophecy/AvatarOfMight.java | 6 +- .../src/mage/sets/prophecy/AvatarOfWill.java | 6 +- .../src/mage/sets/ravnica/BorosSignet.java | 2 +- .../src/mage/sets/ravnica/DimirAqueduct.java | 2 +- .../src/mage/sets/ravnica/DimirSignet.java | 2 +- .../src/mage/sets/ravnica/GolgariRotFarm.java | 2 +- .../src/mage/sets/ravnica/GolgariSignet.java | 2 +- .../src/mage/sets/ravnica/SeismicSpike.java | 2 +- .../mage/sets/ravnica/SelesnyaSanctuary.java | 2 +- .../src/mage/sets/ravnica/SelesnyaSignet.java | 2 +- .../sets/returntoravnica/AxebaneGuardian.java | 2 +- .../returntoravnica/GroveOfTheGuardian.java | 8 +- .../sets/returntoravnica/RoguesPassage.java | 9 +- .../src/mage/sets/revisededition/SolRing.java | 11 +- .../riseoftheeldrazi/DreamstoneHedron.java | 30 ++-- .../riseoftheeldrazi/TrainingGrounds.java | 4 +- .../SasayaOrochiAscendant.java | 4 +- .../sets/scarsofmirrodin/GrandArchitect.java | 35 ++-- .../sets/scarsofmirrodin/MyrReservoir.java | 10 +- .../sets/scarsofmirrodin/PalladiumMyr.java | 14 +- .../mage/sets/seventhedition/SisaysRing.java | 4 +- .../mage/sets/shadowmoor/FireLitThicket.java | 2 +- .../mage/sets/shadowmoor/GravenCairns.java | 2 +- .../mage/sets/shadowmoor/ManaReflection.java | 4 +- .../mage/sets/shadowmoor/Morselhoarder.java | 2 +- .../src/mage/sets/shadowmoor/MysticGate.java | 2 +- .../sets/shadowmoor/RosheenMeanderer.java | 2 +- .../src/mage/sets/shadowmoor/SunkenRuins.java | 2 +- .../src/mage/sets/shadowmoor/Valleymaker.java | 2 +- .../mage/sets/shadowmoor/WoodedBastion.java | 2 +- .../mage/sets/sorinvstibalt/CoalStoker.java | 2 +- .../src/mage/sets/stronghold/Heartstone.java | 2 +- .../src/mage/sets/stronghold/Overgrowth.java | 2 +- .../src/mage/sets/tempest/ReflectingPool.java | 20 +-- .../sets/tenthedition/CompositeGolem.java | 2 +- .../mage/sets/tenthedition/DoublingCube.java | 2 +- .../src/mage/sets/torment/CabalRitual.java | 4 +- .../mage/sets/urzassaga/CarpetOfFlowers.java | 2 +- .../src/mage/sets/urzassaga/Fluctuator.java | 2 +- .../src/mage/sets/urzassaga/WitchEngine.java | 2 +- .../mage/sets/urzassaga/WornPowerstone.java | 13 +- .../sets/vintagemasters/LakeOfTheDead.java | 2 +- .../mage/sets/vintagemasters/ManaDrain.java | 9 +- .../SelvalaExplorerReturned.java | 2 +- .../src/mage/sets/vintagemasters/SuChi.java | 4 +- .../src/mage/sets/worldwake/HarabazDruid.java | 2 +- .../test/cards/mana/ConditionalManaTest.java | 27 +++ .../watchers/HallOfTheBanditLordTest.java | 26 +-- .../test/commander/duel/OpalPalaceTest.java | 15 +- .../org/mage/test/utils/ManaOptionsTest.java | 51 +++--- Mage/src/main/java/mage/ConditionalMana.java | 8 +- Mage/src/main/java/mage/Mana.java | 155 +++++++++++++----- .../main/java/mage/abilities/AbilityImpl.java | 2 +- .../abilities/costs/mana/GenericManaCost.java | 4 +- .../abilities/costs/mana/ManaCostsImpl.java | 12 +- .../costs/mana/MonoHybridManaCost.java | 6 +- .../costs/mana/PhyrexianManaCost.java | 2 +- .../abilities/costs/mana/SnowManaCost.java | 4 +- .../costs/mana/VariableManaCost.java | 2 +- .../AddConditionalColorlessManaEffect.java | 6 +- .../common/AddManaOfAnyColorEffect.java | 4 +- .../AddManaOfAnyTypeProducedEffect.java | 8 +- .../effects/common/AffinityEffect.java | 6 +- .../effects/common/DynamicManaEffect.java | 2 +- .../CommanderManaReplacementEffect.java | 10 +- .../cost/SpellsCostReductionAllEffect.java | 2 +- .../SpellsCostReductionControllerEffect.java | 2 +- .../abilities/keyword/ConvokeAbility.java | 4 +- .../mage/abilities/keyword/DelveAbility.java | 6 +- .../mana/ActivateOncePerTurnManaAbility.java | 2 +- .../mana/AnyColorLandsProduceManaAbility.java | 9 +- .../abilities/mana/AnyColorManaAbility.java | 2 +- .../abilities/mana/ColorlessManaAbility.java | 55 +++---- .../mana/ConditionalAnyColorManaAbility.java | 2 +- .../mana/ConditionalColorlessManaAbility.java | 6 +- .../java/mage/abilities/mana/ManaOptions.java | 8 +- .../main/java/mage/constants/ManaType.java | 13 +- .../src/main/java/mage/filter/FilterMana.java | 10 ++ .../permanent/token/EldraziScionToken.java | 2 +- .../permanent/token/EldraziSpawnToken.java | 15 +- Mage/src/main/java/mage/players/ManaPool.java | 15 +- .../main/java/mage/players/ManaPoolItem.java | 2 +- .../main/java/mage/players/PlayerImpl.java | 5 +- Mage/src/main/java/mage/util/CardUtil.java | 24 +-- Mage/src/main/java/mage/util/ManaUtil.java | 4 +- Mage/src/test/java/mage/ManaTest.java | 72 ++++---- 185 files changed, 700 insertions(+), 566 deletions(-) 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()); } }