diff --git a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java index 973f8295000..4bb7438c090 100644 --- a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java +++ b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java @@ -178,7 +178,9 @@ public class PlayerControllerAi extends PlayerController { } @Override - public boolean confirmTrigger(SpellAbility sa, Trigger regtrig, Map triggerParams, boolean isMandatory) { + public boolean confirmTrigger(WrappedAbility wrapper, Map triggerParams, boolean isMandatory) { + final SpellAbility sa = wrapper.getWrappedAbility(); + final Trigger regtrig = wrapper.getTrigger(); if (sa.getHostCard().getName().equals("Deathmist Raptor")) { return true; } diff --git a/forge-game/src/main/java/forge/game/player/PlayerController.java b/forge-game/src/main/java/forge/game/player/PlayerController.java index edc8def760f..de675d5a64f 100644 --- a/forge-game/src/main/java/forge/game/player/PlayerController.java +++ b/forge-game/src/main/java/forge/game/player/PlayerController.java @@ -122,7 +122,7 @@ public abstract class PlayerController { public abstract boolean confirmAction(SpellAbility sa, PlayerActionConfirmMode mode, String message); public abstract boolean confirmBidAction(SpellAbility sa, PlayerActionConfirmMode bidlife, String string, int bid, Player winner); public abstract boolean confirmStaticApplication(Card hostCard, GameEntity affected, String logic, String message); - public abstract boolean confirmTrigger(SpellAbility sa, Trigger regtrig, Map triggerParams, boolean isMandatory); + public abstract boolean confirmTrigger(WrappedAbility sa, Map triggerParams, boolean isMandatory); public abstract Player chooseStartingPlayer(boolean isFirstGame); public abstract CardCollection orderBlockers(Card attacker, CardCollection blockers); diff --git a/forge-game/src/main/java/forge/game/trigger/WrappedAbility.java b/forge-game/src/main/java/forge/game/trigger/WrappedAbility.java index 27f1407b6ec..871d7aee257 100644 --- a/forge-game/src/main/java/forge/game/trigger/WrappedAbility.java +++ b/forge-game/src/main/java/forge/game/trigger/WrappedAbility.java @@ -440,7 +440,7 @@ public class WrappedAbility extends Ability { TriggerHandler th = game.getTriggerHandler(); - if (decider != null && !decider.getController().confirmTrigger(sa, regtrig, triggerParams, this.isMandatory())) { + if (decider != null && !decider.getController().confirmTrigger(this, triggerParams, this.isMandatory())) { return; } diff --git a/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java b/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java index 9ec70da3de0..8cf1d04cc82 100644 --- a/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java +++ b/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java @@ -208,7 +208,7 @@ public class PlayerControllerForTests extends PlayerController { } @Override - public boolean confirmTrigger(SpellAbility sa, Trigger regtrig, Map triggerParams, boolean isMandatory) { + public boolean confirmTrigger(WrappedAbility wrapper, Map triggerParams, boolean isMandatory) { return true; } diff --git a/forge-gui/src/main/java/forge/match/input/InputConfirm.java b/forge-gui/src/main/java/forge/match/input/InputConfirm.java index 2960f2c4714..ea179068bc8 100644 --- a/forge-gui/src/main/java/forge/match/input/InputConfirm.java +++ b/forge-gui/src/main/java/forge/match/input/InputConfirm.java @@ -19,6 +19,8 @@ package forge.match.input; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.game.trigger.Trigger; +import forge.game.trigger.WrappedAbility; import forge.model.FModel; import forge.player.PlayerControllerHuman; import forge.properties.ForgePreferences; @@ -63,14 +65,21 @@ public class InputConfirm extends InputSyncronizedBase { @Override protected final void showMessage() { getController().getGui().updateButtons(getOwner(), yesButtonText, noButtonText, true, true, defaultYes); - if ( FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DETAILED_SPELLDESC_IN_PROMPT) && - (sa!=null) ) { - showMessage(sa.getStackDescription() + "\n" + message, sa.getView()); - } else { - showMessage(message, (sa!=null)?sa.getView():null); - } - } + + if ( FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DETAILED_SPELLDESC_IN_PROMPT) && + (sa!=null) ) { + System.out.println("Triggera " + sa.isTrigger() + sa.isWrapper() + sa.getHostCard() + " :: " + sa.toString()); + System.out.println("Triggerb " + sa + " :: " + sa.getStackDescription()); + + final StringBuilder sb = new StringBuilder(); + sb.append(sa.getStackDescription()).append("\n").append(message); + showMessage(sb.toString(), sa.getView()); + } else { + showMessage(message, (sa!=null)?sa.getView():null); + } + } + /** {@inheritDoc} */ @Override protected final void onOk() { diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java index 1ecef640171..ba4d7a78aff 100644 --- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java +++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java @@ -503,7 +503,9 @@ public class PlayerControllerHuman } @Override - public boolean confirmTrigger(final SpellAbility sa, final Trigger regtrig, final Map triggerParams, final boolean isMandatory) { + public boolean confirmTrigger(final WrappedAbility wrapper, final Map triggerParams, final boolean isMandatory) { + final SpellAbility sa = wrapper.getWrappedAbility(); + final Trigger regtrig = wrapper.getTrigger(); if (getGui().shouldAlwaysAcceptTrigger(regtrig.getId())) { return true; } @@ -518,7 +520,8 @@ public class PlayerControllerHuman final StringBuilder buildQuestion = new StringBuilder("Use triggered ability of "); buildQuestion.append(regtrig.getHostCard().toString()).append("?"); - if (!FModel.getPreferences().getPrefBoolean(FPref.UI_COMPACT_PROMPT)) { + if (!FModel.getPreferences().getPrefBoolean(FPref.UI_COMPACT_PROMPT) && + !FModel.getPreferences().getPrefBoolean(FPref.UI_DETAILED_SPELLDESC_IN_PROMPT) ) { //append trigger description unless prompt is compact buildQuestion.append("\n("); buildQuestion.append(triggerParams.get("TriggerDescription").replace("CARDNAME", regtrig.getHostCard().getName())); @@ -537,7 +540,7 @@ public class PlayerControllerHuman } // pfps: trigger is on stack so do we really need to put it in the prompt area? - final InputConfirm inp = new InputConfirm(this, buildQuestion.toString(),sa); + final InputConfirm inp = new InputConfirm(this, buildQuestion.toString(), wrapper); inp.showAndWait(); return inp.getResult(); }