diff --git a/Mage/src/mage/abilities/Abilities.java b/Mage/src/mage/abilities/Abilities.java index f2af3631928..10791916159 100644 --- a/Mage/src/mage/abilities/Abilities.java +++ b/Mage/src/mage/abilities/Abilities.java @@ -260,5 +260,5 @@ public interface Abilities extends List, Serializable { public Abilities copy(); public Map getReplacementEffects(Zone zone); - public Map getEffects(Zone zone, EffectType effectType); + public Map getEffects(Game game, Zone zone, EffectType effectType); } diff --git a/Mage/src/mage/abilities/AbilitiesImpl.java b/Mage/src/mage/abilities/AbilitiesImpl.java index 421da0c75d5..db187826677 100644 --- a/Mage/src/mage/abilities/AbilitiesImpl.java +++ b/Mage/src/mage/abilities/AbilitiesImpl.java @@ -176,14 +176,12 @@ public class AbilitiesImpl extends ArrayList implements Ab } @Override - public Map getEffects(Zone zone, EffectType effectType) { + public Map getEffects(Game game, Zone zone, EffectType effectType) { Map effects = new HashMap(); for (T ability: this) { if (ability instanceof StaticAbility && ability.getZone().match(zone)) { - for (Effect effect: ability.getEffects()) { - if (effect.getEffectType() == effectType) { - effects.put(effect, ability); - } + for (Effect effect: ability.getEffects(game, effectType)) { + effects.put(effect, ability); } } } diff --git a/Mage/src/mage/abilities/effects/ContinuousEffects.java b/Mage/src/mage/abilities/effects/ContinuousEffects.java index 4e0bae81f2b..f5401e227c8 100644 --- a/Mage/src/mage/abilities/effects/ContinuousEffects.java +++ b/Mage/src/mage/abilities/effects/ContinuousEffects.java @@ -218,14 +218,14 @@ public class ContinuousEffects implements Serializable { for (Card card: game.getCards()) { Zone zone = game.getState().getZone(card.getId()); if (zone == Zone.HAND || zone == Zone.GRAVEYARD) { - for (Entry entry: card.getAbilities().getEffects(zone, EffectType.CONTINUOUS).entrySet()) { + for (Entry entry: card.getAbilities().getEffects(game, zone, EffectType.CONTINUOUS).entrySet()) { layerEffects.add((ContinuousEffect)entry.getKey()); abilityMap.put(entry.getKey().getId(), entry.getValue()); } } } for (Permanent permanent: game.getBattlefield().getAllPermanents()) { - for (Entry entry: permanent.getAbilities().getEffects(Zone.BATTLEFIELD, EffectType.CONTINUOUS).entrySet()) { + for (Entry entry: permanent.getAbilities().getEffects(game, Zone.BATTLEFIELD, EffectType.CONTINUOUS).entrySet()) { layerEffects.add((ContinuousEffect)entry.getKey()); abilityMap.put(entry.getKey().getId(), entry.getValue()); } @@ -247,7 +247,7 @@ public class ContinuousEffects implements Serializable { List effects = new ArrayList(); //get all applicable Requirement effects on the battlefield for (Permanent perm: game.getBattlefield().getActivePermanents(permanent.getControllerId(), game)) { - for (Entry entry: perm.getAbilities().getEffects(Zone.BATTLEFIELD, EffectType.REQUIREMENT).entrySet()) { + for (Entry entry: perm.getAbilities().getEffects(game, Zone.BATTLEFIELD, EffectType.REQUIREMENT).entrySet()) { if (((RequirementEffect)entry.getKey()).applies(permanent, entry.getValue(), game)) { effects.add((RequirementEffect)entry.getKey()); abilityMap.put(entry.getKey().getId(), entry.getValue()); @@ -265,7 +265,7 @@ public class ContinuousEffects implements Serializable { List effects = new ArrayList(); //get all applicable Restriction effects on the battlefield for (Permanent perm: game.getBattlefield().getActivePermanents(permanent.getControllerId(), game)) { - for (Entry entry: perm.getAbilities().getEffects(Zone.BATTLEFIELD, EffectType.RESTRICTION).entrySet()) { + for (Entry entry: perm.getAbilities().getEffects(game, Zone.BATTLEFIELD, EffectType.RESTRICTION).entrySet()) { if (((RestrictionEffect)entry.getKey()).applies(permanent, entry.getValue(), game)) { effects.add((RestrictionEffect)entry.getKey()); abilityMap.put(entry.getKey().getId(), entry.getValue());