From 1627f81953b56145cdbe7ae5b56b1c86da12a8d9 Mon Sep 17 00:00:00 2001 From: BetaSteward Date: Tue, 22 Nov 2011 10:59:13 -0500 Subject: [PATCH] fixed some ability cost issues - mainly affects AI's --- .../src/mage/sets/conflux/KnotvineMystic.java | 4 ++-- .../src/mage/sets/lorwyn/HearthcageGiant.java | 2 +- .../src/mage/sets/magic2011/BrittleEffigy.java | 2 +- Mage.Sets/src/mage/sets/magic2011/CrystalBall.java | 10 ++++------ .../mage/sets/magic2011/ElixirOfImmortality.java | 9 ++------- Mage.Sets/src/mage/sets/magic2011/EmberHauler.java | 9 ++------- Mage.Sets/src/mage/sets/magic2011/FaunaShaman.java | 2 +- .../mage/sets/magic2011/SorcerersStrongbox.java | 10 +++------- Mage.Sets/src/mage/sets/magic2011/VoltaicKey.java | 6 ++---- .../mage/sets/scarsofmirrodin/ChimericMass.java | 6 +----- .../mage/sets/scarsofmirrodin/MyrBattlesphere.java | 6 ++++-- .../mage/sets/scarsofmirrodin/PainfulQuandary.java | 10 ++++++---- .../sets/scarsofmirrodin/TrigonOfCorruption.java | 10 +++++----- .../sets/scarsofmirrodin/TrigonOfInfestation.java | 14 ++++++++------ .../mage/sets/scarsofmirrodin/TrigonOfMending.java | 14 ++++++++------ .../mage/sets/scarsofmirrodin/TrigonOfRage.java | 10 +++++----- .../mage/sets/scarsofmirrodin/TrigonOfThought.java | 14 ++++++++------ .../costs/common/TapVariableTargetCost.java | 2 +- .../continious/SetCardColorAttachedEffect.java | 7 +++++-- 19 files changed, 69 insertions(+), 78 deletions(-) diff --git a/Mage.Sets/src/mage/sets/conflux/KnotvineMystic.java b/Mage.Sets/src/mage/sets/conflux/KnotvineMystic.java index 2a79623b75..80d35333df 100644 --- a/Mage.Sets/src/mage/sets/conflux/KnotvineMystic.java +++ b/Mage.Sets/src/mage/sets/conflux/KnotvineMystic.java @@ -34,7 +34,7 @@ import mage.Constants.Rarity; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; -import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.BasicManaEffect; import mage.abilities.mana.BasicManaAbility; import mage.cards.CardImpl; @@ -56,7 +56,7 @@ public class KnotvineMystic extends CardImpl{ this.power = new MageInt(2); this.toughness = new MageInt(2); Ability ability = new KnotvineMysticManaAbility(); - ability.addCost(new ManaCostsImpl("{1}")); + ability.addManaCost(new GenericManaCost(1)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/lorwyn/HearthcageGiant.java b/Mage.Sets/src/mage/sets/lorwyn/HearthcageGiant.java index 6f50c2be8d..8c648c6aea 100644 --- a/Mage.Sets/src/mage/sets/lorwyn/HearthcageGiant.java +++ b/Mage.Sets/src/mage/sets/lorwyn/HearthcageGiant.java @@ -89,7 +89,7 @@ public class HearthcageGiant extends CardImpl { class RedElementalToken extends Token { RedElementalToken() { - super("Elemental", "3/1 red Elemental Shaman creature token"); + super("Elemental Shaman", "3/1 red Elemental Shaman creature token"); cardType.add(CardType.CREATURE); color.setRed(true); subtype.add("Elemental"); diff --git a/Mage.Sets/src/mage/sets/magic2011/BrittleEffigy.java b/Mage.Sets/src/mage/sets/magic2011/BrittleEffigy.java index b599f5ea1b..3dc7d2189a 100644 --- a/Mage.Sets/src/mage/sets/magic2011/BrittleEffigy.java +++ b/Mage.Sets/src/mage/sets/magic2011/BrittleEffigy.java @@ -53,10 +53,10 @@ public class BrittleEffigy extends CardImpl { super(ownerId, 202, "Brittle Effigy", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{1}"); this.expansionSetCode = "M11"; Costs costs = new CostsImpl(); - costs.add(new GenericManaCost(4)); costs.add(new TapSourceCost()); costs.add(new ExileSourceCost()); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect(), costs); + ability.addManaCost(new GenericManaCost(4)); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/magic2011/CrystalBall.java b/Mage.Sets/src/mage/sets/magic2011/CrystalBall.java index 3987482878..e9abcd1be5 100644 --- a/Mage.Sets/src/mage/sets/magic2011/CrystalBall.java +++ b/Mage.Sets/src/mage/sets/magic2011/CrystalBall.java @@ -32,9 +32,8 @@ import java.util.UUID; import mage.Constants.CardType; import mage.Constants.Rarity; import mage.Constants.Zone; +import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.Costs; -import mage.abilities.costs.CostsImpl; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.ScryEffect; @@ -49,10 +48,9 @@ public class CrystalBall extends CardImpl { public CrystalBall(UUID ownerId) { super(ownerId, 203, "Crystal Ball", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{3}"); this.expansionSetCode = "M11"; - Costs costs = new CostsImpl(); - costs.add(new GenericManaCost(1)); - costs.add(new TapSourceCost()); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(2), costs)); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(2), new TapSourceCost()); + ability.addManaCost(new GenericManaCost(1)); + this.addAbility(ability); } public CrystalBall(final CrystalBall card) { diff --git a/Mage.Sets/src/mage/sets/magic2011/ElixirOfImmortality.java b/Mage.Sets/src/mage/sets/magic2011/ElixirOfImmortality.java index a818e4df89..7b18c0f428 100644 --- a/Mage.Sets/src/mage/sets/magic2011/ElixirOfImmortality.java +++ b/Mage.Sets/src/mage/sets/magic2011/ElixirOfImmortality.java @@ -35,12 +35,9 @@ import mage.Constants.Rarity; import mage.Constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.Costs; -import mage.abilities.costs.CostsImpl; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.game.Game; import mage.game.permanent.Permanent; @@ -55,10 +52,8 @@ public class ElixirOfImmortality extends CardImpl { public ElixirOfImmortality(UUID ownerId) { super(ownerId, 206, "Elixir of Immortality", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{1}"); this.expansionSetCode = "M11"; - Costs costs = new CostsImpl(); - costs.add(new GenericManaCost(2)); - costs.add(new TapSourceCost()); - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ElixerOfImmortalityEffect(), costs); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ElixerOfImmortalityEffect(), new TapSourceCost()); + ability.addManaCost(new GenericManaCost(2)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/magic2011/EmberHauler.java b/Mage.Sets/src/mage/sets/magic2011/EmberHauler.java index 7c6c14d97e..5aaf0694e9 100644 --- a/Mage.Sets/src/mage/sets/magic2011/EmberHauler.java +++ b/Mage.Sets/src/mage/sets/magic2011/EmberHauler.java @@ -35,9 +35,6 @@ import mage.Constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.Cost; -import mage.abilities.costs.Costs; -import mage.abilities.costs.CostsImpl; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.DamageTargetEffect; @@ -58,10 +55,8 @@ public class EmberHauler extends CardImpl { this.power = new MageInt(2); this.toughness = new MageInt(2); - Costs costs = new CostsImpl(); - costs.add(new GenericManaCost(1)); - costs.add(new SacrificeSourceCost()); - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), costs); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new SacrificeSourceCost()); + ability.addManaCost(new GenericManaCost(1)); ability.addTarget(new TargetCreatureOrPlayer()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/magic2011/FaunaShaman.java b/Mage.Sets/src/mage/sets/magic2011/FaunaShaman.java index 69cb9ab9db..18aea9faed 100644 --- a/Mage.Sets/src/mage/sets/magic2011/FaunaShaman.java +++ b/Mage.Sets/src/mage/sets/magic2011/FaunaShaman.java @@ -64,10 +64,10 @@ public class FaunaShaman extends CardImpl { this.toughness = new MageInt(2); Costs costs = new CostsImpl(); - costs.add(new ColoredManaCost(ColoredManaSymbol.G)); costs.add(new TapSourceCost()); costs.add(new DiscardTargetCost(new TargetCardInHand(new FilterCreatureCard()))); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryRevealPutInHandEffect(new TargetCardInLibrary(new FilterCreatureCard())), costs); + ability.addManaCost(new ColoredManaCost(ColoredManaSymbol.G)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/magic2011/SorcerersStrongbox.java b/Mage.Sets/src/mage/sets/magic2011/SorcerersStrongbox.java index 3f1b9362cd..0e669304fc 100644 --- a/Mage.Sets/src/mage/sets/magic2011/SorcerersStrongbox.java +++ b/Mage.Sets/src/mage/sets/magic2011/SorcerersStrongbox.java @@ -35,12 +35,9 @@ import mage.Constants.Rarity; import mage.Constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.Costs; -import mage.abilities.costs.CostsImpl; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.ScryEffect; import mage.cards.CardImpl; import mage.game.Game; import mage.game.permanent.Permanent; @@ -55,10 +52,9 @@ public class SorcerersStrongbox extends CardImpl { public SorcerersStrongbox(UUID ownerId) { super(ownerId, 213, "Sorcerer's Strongbox", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{4}"); this.expansionSetCode = "M11"; - Costs costs = new CostsImpl(); - costs.add(new GenericManaCost(2)); - costs.add(new TapSourceCost()); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new SorcerersStrongboxEffect(), costs)); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SorcerersStrongboxEffect(), new TapSourceCost()); + ability.addManaCost(new GenericManaCost(2)); + this.addAbility(ability); } public SorcerersStrongbox(final SorcerersStrongbox card) { diff --git a/Mage.Sets/src/mage/sets/magic2011/VoltaicKey.java b/Mage.Sets/src/mage/sets/magic2011/VoltaicKey.java index 7a9254719b..718aed94de 100644 --- a/Mage.Sets/src/mage/sets/magic2011/VoltaicKey.java +++ b/Mage.Sets/src/mage/sets/magic2011/VoltaicKey.java @@ -60,10 +60,8 @@ public class VoltaicKey extends CardImpl { public VoltaicKey(UUID ownerId) { super(ownerId, 219, "Voltaic Key", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{1}"); this.expansionSetCode = "M11"; - Costs costs = new CostsImpl(); - costs.add(new GenericManaCost(1)); - costs.add(new TapSourceCost()); - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapTargetEffect(), costs); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapTargetEffect(), new TapSourceCost()); + ability.addManaCost(new GenericManaCost(1)); ability.addTarget(new TargetPermanent(filter)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/ChimericMass.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/ChimericMass.java index c2f273b112..5f39a310c9 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/ChimericMass.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/ChimericMass.java @@ -40,8 +40,6 @@ import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.costs.Costs; -import mage.abilities.costs.CostsImpl; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.CountersCount; @@ -64,9 +62,7 @@ public class ChimericMass extends CardImpl { super(ownerId, 141, "Chimeric Mass", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{X}"); this.expansionSetCode = "SOM"; this.addAbility(new EntersBattlefieldAbility(new ChimericMassEffect(), "{this} enters the battlefield with X charge counters on it")); - Costs costs = new CostsImpl(); - costs.add(new GenericManaCost(1)); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new ChimericMassToken(), "", Duration.EndOfTurn), costs)); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new ChimericMassToken(), "", Duration.EndOfTurn), new GenericManaCost(1))); } public ChimericMass(final ChimericMass card) { diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/MyrBattlesphere.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/MyrBattlesphere.java index 2c37602bdf..5a5490731b 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/MyrBattlesphere.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/MyrBattlesphere.java @@ -95,7 +95,7 @@ class MyrBattlesphereAbility extends TriggeredAbilityImpl { Player player = game.getPlayer(targetPointer.getFirst(source)); if (player != null) { Cost cost = new DiscardTargetCost(new TargetCardInHand()); - if (!cost.pay(source, game, player.getId(), player.getId(), false)) { - player.loseLife(5, game); - } - return true; + if (cost.canPay(player.getId(), player.getId(), game)) { + if (!cost.pay(source, game, player.getId(), player.getId(), false)) { + player.loseLife(5, game); + } + return true; + } } return false; } diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/TrigonOfCorruption.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/TrigonOfCorruption.java index 267e970bfb..5f9213a844 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/TrigonOfCorruption.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/TrigonOfCorruption.java @@ -49,6 +49,7 @@ import mage.target.Target; import mage.target.common.TargetCreaturePermanent; import java.util.UUID; +import mage.abilities.costs.mana.GenericManaCost; /** * @@ -63,20 +64,19 @@ public class TrigonOfCorruption extends CardImpl { this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(new ChargeCounter(3)), "")); Costs costs = new CostsImpl(); - costs.add(new ManaCostsImpl("{2}")); costs.add(new RemoveCountersSourceCost(CounterType.CHARGE.createInstance())); costs.add(new TapSourceCost()); Effect putCounterEffect = new AddCountersTargetEffect(CounterType.M1M1.createInstance()); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, putCounterEffect, costs); + ability.addManaCost(new GenericManaCost(2)); Target target = new TargetCreaturePermanent(); target.setRequired(true); ability.addTarget(target); this.addAbility(ability); - Costs costs2 = new CostsImpl(); - costs2.add(new ManaCostsImpl("{B}{B}")); - costs2.add(new TapSourceCost()); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), costs2)); + Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), new TapSourceCost()); + ability2.addManaCost(new ManaCostsImpl("{B}{B}")); + this.addAbility(ability2); } public TrigonOfCorruption (final TrigonOfCorruption card) { diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/TrigonOfInfestation.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/TrigonOfInfestation.java index d2ea64eadb..88cb2da0ab 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/TrigonOfInfestation.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/TrigonOfInfestation.java @@ -46,6 +46,8 @@ import mage.counters.common.ChargeCounter; import mage.game.permanent.token.InsectInfectToken; import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.costs.mana.GenericManaCost; /** * @author nantuko @@ -61,15 +63,15 @@ public class TrigonOfInfestation extends CardImpl { this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(new ChargeCounter(3)), "")); Costs costs = new CostsImpl(); - costs.add(new ManaCostsImpl("{2}")); costs.add(new RemoveCountersSourceCost(CounterType.CHARGE.createInstance())); costs.add(new TapSourceCost()); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(insectToken), costs)); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(insectToken), costs); + ability.addManaCost(new GenericManaCost(2)); + this.addAbility(ability); - Costs costs2 = new CostsImpl(); - costs2.add(new ManaCostsImpl("{G}{G}")); - costs2.add(new TapSourceCost()); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), costs2)); + Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), new TapSourceCost()); + ability2.addManaCost(new ManaCostsImpl("{G}{G}")); + this.addAbility(ability2); } public TrigonOfInfestation(final TrigonOfInfestation card) { diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/TrigonOfMending.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/TrigonOfMending.java index 6f52d416e6..91ddf867d2 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/TrigonOfMending.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/TrigonOfMending.java @@ -45,6 +45,8 @@ import mage.counters.CounterType; import mage.counters.common.ChargeCounter; import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.costs.mana.GenericManaCost; /** * @author nantuko @@ -58,15 +60,15 @@ public class TrigonOfMending extends CardImpl { this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(new ChargeCounter(3)), "")); Costs costs = new CostsImpl(); - costs.add(new ManaCostsImpl("{2}")); costs.add(new RemoveCountersSourceCost(CounterType.CHARGE.createInstance())); costs.add(new TapSourceCost()); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(3), costs)); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(3), costs); + ability.addManaCost(new GenericManaCost(2)); + this.addAbility(ability); - Costs costs2 = new CostsImpl(); - costs2.add(new ManaCostsImpl("{W}{W}")); - costs2.add(new TapSourceCost()); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), costs2)); + Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), new TapSourceCost()); + ability2.addManaCost(new ManaCostsImpl("{W}{W}")); + this.addAbility(ability2); } public TrigonOfMending(final TrigonOfMending card) { diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/TrigonOfRage.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/TrigonOfRage.java index 5fab8d615c..2538f84ad3 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/TrigonOfRage.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/TrigonOfRage.java @@ -50,6 +50,7 @@ import mage.target.Target; import mage.target.common.TargetCreaturePermanent; import java.util.UUID; +import mage.abilities.costs.mana.GenericManaCost; /** * @author Loki @@ -63,20 +64,19 @@ public class TrigonOfRage extends CardImpl { this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(new ChargeCounter(3)), "")); Costs costs = new CostsImpl(); - costs.add(new ManaCostsImpl("{2}")); costs.add(new RemoveCountersSourceCost(CounterType.CHARGE.createInstance())); costs.add(new TapSourceCost()); Effect pumpEffect = new BoostTargetEffect(3, 0, Duration.EndOfTurn); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, pumpEffect, costs); + ability.addManaCost(new GenericManaCost(2)); Target target = new TargetCreaturePermanent(); target.setRequired(true); ability.addTarget(target); this.addAbility(ability); - Costs costs2 = new CostsImpl(); - costs2.add(new ManaCostsImpl("{R}{R}")); - costs2.add(new TapSourceCost()); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), costs2)); + Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), new TapSourceCost()); + ability2.addManaCost(new ManaCostsImpl("{R}{R}")); + this.addAbility(ability2); } public TrigonOfRage(final TrigonOfRage card) { diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/TrigonOfThought.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/TrigonOfThought.java index 45351549c8..48bde89343 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/TrigonOfThought.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/TrigonOfThought.java @@ -45,6 +45,8 @@ import mage.counters.CounterType; import mage.counters.common.ChargeCounter; import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.costs.mana.GenericManaCost; /** * @author nantuko @@ -58,15 +60,15 @@ public class TrigonOfThought extends CardImpl { this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(new ChargeCounter(3)), "")); Costs costs = new CostsImpl(); - costs.add(new ManaCostsImpl("{2}")); costs.add(new RemoveCountersSourceCost(CounterType.CHARGE.createInstance())); costs.add(new TapSourceCost()); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardControllerEffect(1), costs)); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardControllerEffect(1), costs); + ability.addManaCost(new GenericManaCost(2)); + this.addAbility(ability); - Costs costs2 = new CostsImpl(); - costs2.add(new ManaCostsImpl("{U}{U}")); - costs2.add(new TapSourceCost()); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), costs2)); + Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), new TapSourceCost()); + ability2.addManaCost(new ManaCostsImpl("{U}{U}")); + this.addAbility(ability2); } public TrigonOfThought(final TrigonOfThought card) { diff --git a/Mage/src/mage/abilities/costs/common/TapVariableTargetCost.java b/Mage/src/mage/abilities/costs/common/TapVariableTargetCost.java index 032db72b47..1b76e38327 100644 --- a/Mage/src/mage/abilities/costs/common/TapVariableTargetCost.java +++ b/Mage/src/mage/abilities/costs/common/TapVariableTargetCost.java @@ -68,7 +68,7 @@ public class TapVariableTargetCost extends CostImpl imple amountPaid = 0; while (true) { target.clearChosen(); - if (target.choose(Outcome.Tap, controllerId, sourceId, game)) { + if (target.canChoose(sourceId, controllerId, game) && target.choose(Outcome.Tap, controllerId, sourceId, game)) { Permanent permanent = game.getPermanent(target.getFirstTarget()); if (permanent != null && permanent.tap(game)) { amountPaid++; diff --git a/Mage/src/mage/abilities/effects/common/continious/SetCardColorAttachedEffect.java b/Mage/src/mage/abilities/effects/common/continious/SetCardColorAttachedEffect.java index ea1ee3ee0f..4b7437f3c5 100644 --- a/Mage/src/mage/abilities/effects/common/continious/SetCardColorAttachedEffect.java +++ b/Mage/src/mage/abilities/effects/common/continious/SetCardColorAttachedEffect.java @@ -60,9 +60,12 @@ public class SetCardColorAttachedEffect extends ContinuousEffectImpl