From a8a04cb460b469cfbd015ff58903d5ef2fada97c Mon Sep 17 00:00:00 2001 From: LevelX2 <ludwig.hirth@online.de> Date: Thu, 3 Apr 2014 00:58:31 +0200 Subject: [PATCH] * Gemstone Mine - Fixed that the sacrifice affect was a triggered ability instead of correctly an effect of the mana ability. --- .../mage/sets/timeshifted/GemstoneMine.java | 40 ++----------------- 1 file changed, 3 insertions(+), 37 deletions(-) diff --git a/Mage.Sets/src/mage/sets/timeshifted/GemstoneMine.java b/Mage.Sets/src/mage/sets/timeshifted/GemstoneMine.java index 8532979672..190108014e 100644 --- a/Mage.Sets/src/mage/sets/timeshifted/GemstoneMine.java +++ b/Mage.Sets/src/mage/sets/timeshifted/GemstoneMine.java @@ -34,7 +34,9 @@ import mage.constants.Rarity; import mage.abilities.Ability; import mage.abilities.StateTriggeredAbility; import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.condition.common.SourceHasCounterCondition; import mage.abilities.costs.common.RemoveCountersSourceCost; +import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.SacrificeSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.mana.AnyColorManaAbility; @@ -70,8 +72,8 @@ public class GemstoneMine extends CardImpl<GemstoneMine> { // {tap}, Remove a mining counter from Gemstone Mine: Add one mana of any color to your mana pool. If there are no mining counters on Gemstone Mine, sacrifice it. Ability ability = new AnyColorManaAbility(); ability.addCost(new RemoveCountersSourceCost(CounterType.MINING.createInstance(1))); + ability.addEffect(new ConditionalOneShotEffect(new SacrificeSourceEffect(), new SourceHasCounterCondition(CounterType.MINING, 0,0), "If there are no mining counters on Gemstone Mine, sacrifice it")); this.addAbility(ability); - this.addAbility(new GemstoneMineTriggeredAbility()); } public GemstoneMine(final GemstoneMine card) { @@ -83,39 +85,3 @@ public class GemstoneMine extends CardImpl<GemstoneMine> { return new GemstoneMine(this); } } - -class GemstoneMineTriggeredAbility extends StateTriggeredAbility<GemstoneMineTriggeredAbility> { - - private static final String staticText = "If there are no mining counters on {this}, sacrifice it."; - - public GemstoneMineTriggeredAbility() { - super(Zone.BATTLEFIELD, new SacrificeSourceEffect()); - } - - public GemstoneMineTriggeredAbility(GemstoneMineTriggeredAbility ability) { - super(ability); - } - - @Override - public boolean checkTrigger(GameEvent event, Game game) { - if (event.getType() == GameEvent.EventType.COUNTER_REMOVED) { - Permanent gemstoneMine = game.getPermanent(this.getSourceId()); - if (gemstoneMine != null) { - if (!gemstoneMine.getCounters().containsKey(CounterType.MINING)) { - return true; - } - } - } - return false; - } - - @Override - public GemstoneMineTriggeredAbility copy() { - return new GemstoneMineTriggeredAbility(this); - } - - @Override - public String getRule() { - return staticText; - } -}