diff --git a/Mage/src/main/java/mage/abilities/AbilityImpl.java b/Mage/src/main/java/mage/abilities/AbilityImpl.java index 361a6c4ec4e..6edcbfc98a7 100644 --- a/Mage/src/main/java/mage/abilities/AbilityImpl.java +++ b/Mage/src/main/java/mage/abilities/AbilityImpl.java @@ -152,6 +152,9 @@ public abstract class AbilityImpl implements Ability { boolean result = true; //20100716 - 117.12 if (checkIfClause(game)) { + // Ability has started resolving. Fire event. + // Used for abilities counting the number of resolutions like Ashling the Pilgrim. + game.fireEvent(new GameEvent(GameEvent.EventType.RESOLVING_ABILITY, this.getOriginalId(), this.getSourceId(), this.getControllerId())); if (this instanceof TriggeredAbility) { for (UUID modeId : this.getModes().getSelectedModes()) { this.getModes().setActiveMode(modeId); diff --git a/Mage/src/main/java/mage/game/events/GameEvent.java b/Mage/src/main/java/mage/game/events/GameEvent.java index 171da250078..7c467e3b409 100644 --- a/Mage/src/main/java/mage/game/events/GameEvent.java +++ b/Mage/src/main/java/mage/game/events/GameEvent.java @@ -150,7 +150,7 @@ public class GameEvent implements Serializable { SPELL_CAST, ACTIVATE_ABILITY, ACTIVATED_ABILITY, TRIGGERED_ABILITY, - RESOLVED_ABILITY, + RESOLVING_ABILITY, COPY_STACKOBJECT, COPIED_STACKOBJECT, /* ADD_MANA targetId id of the ability that added the mana diff --git a/Mage/src/main/java/mage/game/stack/StackAbility.java b/Mage/src/main/java/mage/game/stack/StackAbility.java index b35a664bb21..cb4149bcfef 100644 --- a/Mage/src/main/java/mage/game/stack/StackAbility.java +++ b/Mage/src/main/java/mage/game/stack/StackAbility.java @@ -82,7 +82,6 @@ public class StackAbility extends StackObjImpl implements Ability { @Override public boolean resolve(Game game) { if (ability.getTargets().stillLegal(ability, game) || !canFizzle()) { - game.fireEvent(new GameEvent(GameEvent.EventType.RESOLVED_ABILITY, ability.getOriginalId(), ability.getSourceId(), ability.getControllerId())); boolean result = ability.resolve(game); game.getStack().remove(this, game); return result; diff --git a/Mage/src/main/java/mage/watchers/common/AbilityResolvedWatcher.java b/Mage/src/main/java/mage/watchers/common/AbilityResolvedWatcher.java index dfa3d5daab4..953e4d64df1 100644 --- a/Mage/src/main/java/mage/watchers/common/AbilityResolvedWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/AbilityResolvedWatcher.java @@ -22,7 +22,7 @@ public class AbilityResolvedWatcher extends Watcher { @Override public void watch(GameEvent event, Game game) { - if (event.getType() == GameEvent.EventType.RESOLVED_ABILITY) { + if (event.getType() == GameEvent.EventType.RESOLVING_ABILITY) { resolutionMap.merge(event.getTargetId().toString() + game.getState().getZoneChangeCounter(event.getSourceId()), 1, Integer::sum); } }