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;
-    }
-}