diff --git a/Mage/src/mage/MageObject.java b/Mage/src/mage/MageObject.java index e93a1877f8a..f749d21d52c 100644 --- a/Mage/src/mage/MageObject.java +++ b/Mage/src/mage/MageObject.java @@ -27,6 +27,7 @@ public interface MageObject extends MageItem, Serializable { public MageInt getPower(); public MageInt getToughness(); + public void adjustChoices(Ability ability, Game game); public void adjustCosts(Ability ability, Game game); public void adjustTargets(Ability ability, Game game); diff --git a/Mage/src/mage/MageObjectImpl.java b/Mage/src/mage/MageObjectImpl.java index 834af39bcfe..1e7e2923c42 100644 --- a/Mage/src/mage/MageObjectImpl.java +++ b/Mage/src/mage/MageObjectImpl.java @@ -143,6 +143,9 @@ public abstract class MageObjectImpl> implements Mag return manaCost; } + @Override + public void adjustChoices(Ability ability, Game game) {} + @Override public void adjustCosts(Ability ability, Game game) {} diff --git a/Mage/src/mage/abilities/AbilityImpl.java b/Mage/src/mage/abilities/AbilityImpl.java index 61281e9c045..7b78b872237 100644 --- a/Mage/src/mage/abilities/AbilityImpl.java +++ b/Mage/src/mage/abilities/AbilityImpl.java @@ -159,11 +159,15 @@ public abstract class AbilityImpl> implements Ability { if (!modes.choose(game, this)) return false; //20100716 - 601.2b + Card card = game.getCard(sourceId); + if (card != null) { + card.adjustChoices(this, game); + } if (getChoices().size() > 0 && getChoices().choose(game, this) == false) { logger.debug("activate failed - choice"); return false; } - Card card = game.getCard(sourceId); + if (card != null) { card.adjustTargets(this, game); } diff --git a/Mage/src/mage/game/command/Emblem.java b/Mage/src/mage/game/command/Emblem.java index 112edf722bf..96af44686c2 100644 --- a/Mage/src/mage/game/command/Emblem.java +++ b/Mage/src/mage/game/command/Emblem.java @@ -145,6 +145,9 @@ public class Emblem implements CommandObject { return MageInt.EmptyMageInt; } + @Override + public void adjustChoices(Ability ability, Game game) {} + @Override public void adjustCosts(Ability ability, Game game) {} diff --git a/Mage/src/mage/game/stack/Spell.java b/Mage/src/mage/game/stack/Spell.java index 6fd9fca47c3..131973d987b 100644 --- a/Mage/src/mage/game/stack/Spell.java +++ b/Mage/src/mage/game/stack/Spell.java @@ -377,6 +377,9 @@ public class Spell> implements StackObject, Card { return new Spell(this.card.copy(), this.ability.copySpell(), this.controllerId, this.fromZone); } + @Override + public void adjustChoices(Ability ability, Game game) {} + @Override public void adjustCosts(Ability ability, Game game) {} diff --git a/Mage/src/mage/game/stack/StackAbility.java b/Mage/src/mage/game/stack/StackAbility.java index 4266f292158..63f602e804e 100644 --- a/Mage/src/mage/game/stack/StackAbility.java +++ b/Mage/src/mage/game/stack/StackAbility.java @@ -294,6 +294,9 @@ public class StackAbility implements StackObject, Ability { this.expansionSetCode = expansionSetCode; } + @Override + public void adjustChoices(Ability ability, Game game) {} + @Override public void adjustCosts(Ability ability, Game game) {}