diff --git a/Mage/src/mage/counters/Counters.java b/Mage/src/mage/counters/Counters.java index 3b142957427..d4ead18d30c 100644 --- a/Mage/src/mage/counters/Counters.java +++ b/Mage/src/mage/counters/Counters.java @@ -74,6 +74,12 @@ public class Counters extends HashMap implements Serializable { if (this.containsKey(name)) this.get(name).remove(); } + + public void removeCounter(CounterType counterType, int amount) { + if (this.containsKey(counterType.getName())) { + get(counterType.getName()).remove(amount); + } + } public void removeCounter(String name, int amount) { if (this.containsKey(name)) @@ -85,6 +91,10 @@ public class Counters extends HashMap implements Serializable { return this.get(name).getCount(); return 0; } + + public boolean containsKey(CounterType counterType) { + return getCount(counterType) > 0; + } public int getCount(CounterType type) { if (this.containsKey(type.getName())) diff --git a/Mage/src/mage/game/GameImpl.java b/Mage/src/mage/game/GameImpl.java index 61bb9225307..e06f82cea2f 100644 --- a/Mage/src/mage/game/GameImpl.java +++ b/Mage/src/mage/game/GameImpl.java @@ -725,6 +725,16 @@ public abstract class GameImpl> implements Game, Serializa } } } + //20110501 - 704.5r + for (Permanent perm: getBattlefield().getAllActivePermanents()) { + if (perm.getCounters().containsKey(CounterType.P1P1) && perm.getCounters().containsKey(CounterType.M1M1)) { + int p1p1 = perm.getCounters().getCount(CounterType.P1P1); + int m1m1 = perm.getCounters().getCount(CounterType.M1M1); + int min = Math.min(p1p1, m1m1); + perm.getCounters().removeCounter(CounterType.P1P1, min); + perm.getCounters().removeCounter(CounterType.M1M1, min); + } + } //TODO: implement the rest