diff --git a/Mage.Client/src/main/java/mage/client/cards/Cards.java b/Mage.Client/src/main/java/mage/client/cards/Cards.java index f3241bc0039..7b27867cfa0 100644 --- a/Mage.Client/src/main/java/mage/client/cards/Cards.java +++ b/Mage.Client/src/main/java/mage/client/cards/Cards.java @@ -168,8 +168,13 @@ } } if (card instanceof StackAbilityView) { + // replace ability by original card CardView tmp = ((StackAbilityView) card).getSourceCard(); tmp.overrideRules(card.getRules()); + tmp.setChoosable(card.isChoosable()); + tmp.setPlayable(card.isPlayable()); + tmp.setPlayableAmount(card.getPlayableAmount()); + tmp.setSelected(card.isSelected()); tmp.setIsAbility(true); tmp.overrideTargets(card.getTargets()); tmp.overrideId(card.getId()); diff --git a/Mage.Client/src/main/java/mage/client/components/ext/dlg/impl/StackDialog.java b/Mage.Client/src/main/java/mage/client/components/ext/dlg/impl/StackDialog.java index d18b5c78c9f..6175b4e8a8e 100644 --- a/Mage.Client/src/main/java/mage/client/components/ext/dlg/impl/StackDialog.java +++ b/Mage.Client/src/main/java/mage/client/components/ext/dlg/impl/StackDialog.java @@ -112,8 +112,13 @@ public class StackDialog extends IDialogPanel { for (CardView card : cards.values()) { if (card instanceof StackAbilityView) { + // replace ability by original card CardView tmp = ((StackAbilityView) card).getSourceCard(); tmp.overrideRules(card.getRules()); + tmp.setChoosable(card.isChoosable()); + tmp.setPlayable(card.isPlayable()); + tmp.setPlayableAmount(card.getPlayableAmount()); + tmp.setSelected(card.isSelected()); tmp.setIsAbility(true); tmp.overrideTargets(card.getTargets()); tmp.overrideId(card.getId()); diff --git a/Mage.Common/src/main/java/mage/view/StackAbilityView.java b/Mage.Common/src/main/java/mage/view/StackAbilityView.java index 4c2d6fc275e..cfe29e4786a 100644 --- a/Mage.Common/src/main/java/mage/view/StackAbilityView.java +++ b/Mage.Common/src/main/java/mage/view/StackAbilityView.java @@ -27,6 +27,8 @@ public class StackAbilityView extends CardView { private static final long serialVersionUID = 1L; + // in GUI: that's view will be replaced by sourceCard, so don't forget to sync settings like + // selectable, chooseable, etc. Search by getSourceCard private final CardView sourceCard; public StackAbilityView(Game game, StackAbility ability, String sourceName, CardView sourceCard) {