diff --git a/Mage/src/mage/game/permanent/Permanent.java b/Mage/src/mage/game/permanent/Permanent.java index ba440b6446b..38db08f3298 100644 --- a/Mage/src/mage/game/permanent/Permanent.java +++ b/Mage/src/mage/game/permanent/Permanent.java @@ -103,8 +103,12 @@ public interface Permanent extends Card, Controllable { public void removeAllDamage(Game game); public Counters getCounters(); + public void addCounters(String name, int amount, Game game); + public void addCounters(String name, int amount, Game game, ArrayList appliedEffects); public void addCounters(Counter counter, Game game); + public void addCounters(Counter counter, Game game, ArrayList appliedEffects); + public void removeCounters(String name, int amount, Game game); public void removeCounters(Counter counter, Game game); public void reset(Game game); diff --git a/Mage/src/mage/game/permanent/PermanentImpl.java b/Mage/src/mage/game/permanent/PermanentImpl.java index 9ccd5be737d..857d451efff 100644 --- a/Mage/src/mage/game/permanent/PermanentImpl.java +++ b/Mage/src/mage/game/permanent/PermanentImpl.java @@ -205,7 +205,13 @@ public abstract class PermanentImpl> extends CardImpl @Override public void addCounters(String name, int amount, Game game) { + addCounters(name, amount, game, null); + } + + @Override + public void addCounters(String name, int amount, Game game, ArrayList appliedEffects) { GameEvent event = GameEvent.getEvent(GameEvent.EventType.ADD_COUNTER, objectId, controllerId, name, amount); + event.setAppliedEffects(appliedEffects); if (!game.replaceEvent(event)) { counters.addCounter(name, amount); game.fireEvent(GameEvent.getEvent(EventType.COUNTER_ADDED, objectId, controllerId, name, amount)); @@ -214,7 +220,14 @@ public abstract class PermanentImpl> extends CardImpl @Override public void addCounters(Counter counter, Game game) { - if (!game.replaceEvent(GameEvent.getEvent(GameEvent.EventType.ADD_COUNTER, objectId, controllerId, counter.getName(), counter.getCount()))) { + addCounters(counter, game, null); + } + + @Override + public void addCounters(Counter counter, Game game, ArrayList appliedEffects) { + GameEvent event = GameEvent.getEvent(GameEvent.EventType.ADD_COUNTER, objectId, controllerId, counter.getName(), counter.getCount()); + event.setAppliedEffects(appliedEffects); + if (!game.replaceEvent(event)) { counters.addCounter(counter); game.fireEvent(GameEvent.getEvent(EventType.COUNTER_ADDED, objectId, controllerId, counter.getName(), counter.getCount())); }