diff --git a/forge-game/src/main/java/forge/game/trigger/Trigger.java b/forge-game/src/main/java/forge/game/trigger/Trigger.java index b5eaa5248bf..e25699fb28c 100644 --- a/forge-game/src/main/java/forge/game/trigger/Trigger.java +++ b/forge-game/src/main/java/forge/game/trigger/Trigger.java @@ -146,17 +146,13 @@ public abstract class Trigger extends TriggerReplacementBase { */ @Override public final String toString() { - return toString(false); - } - - public final String toString(boolean active) { if (this.mapParams.containsKey("TriggerDescription") && !this.isSuppressed()) { StringBuilder sb = new StringBuilder(); String desc = this.mapParams.get("TriggerDescription"); - desc = desc.replace("CARDNAME", active ? getHostCard().toString() : getHostCard().getName()); + desc = desc.replace("CARDNAME", getHostCard().getName()); if (getHostCard().getEffectSource() != null) { - desc = desc.replace("EFFECTSOURCE", active ? getHostCard().getEffectSource().toString() : getHostCard().getEffectSource().getName()); + desc = desc.replace("EFFECTSOURCE", getHostCard().getEffectSource().getName()); } sb.append(desc); if (!this.triggerRemembered.isEmpty()) { 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 b9ee766204e..b5cc9e57b68 100644 --- a/forge-game/src/main/java/forge/game/trigger/WrappedAbility.java +++ b/forge-game/src/main/java/forge/game/trigger/WrappedAbility.java @@ -191,20 +191,12 @@ public class WrappedAbility extends Ability { @Override public String toUnsuppressedString() { - String strg = this.getStackDescription(); - /* use augmented stack description as string for wrapped things */ - String card = regtrig.getHostCard().toString(); - if (!strg.contains(card) && strg.contains(" this ")) { - /* a hack for Evolve and similar that don't have CARDNAME */ - return card + ": " + strg; - } else { - return strg; - } + return regtrig.toString(); } @Override public String getStackDescription() { - final StringBuilder sb = new StringBuilder(regtrig.replaceAbilityText(regtrig.toString(true), this)); + final StringBuilder sb = new StringBuilder(regtrig.replaceAbilityText(toUnsuppressedString(), this)); if (usesTargeting()) { sb.append(" (Targeting "); for (final GameObject o : this.getTargets().getTargets()) { diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java index f4fd53ee233..a302da0f876 100644 --- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java +++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java @@ -1200,9 +1200,16 @@ public class PlayerControllerHuman final String firstStr = orderedSAs.get(0).toString(); boolean needPrompt = false; String saLookupKey = firstStr; + if (orderedSAs.get(0).getHostCard() != null) { + saLookupKey += " - " + orderedSAs.get(0).getHostCard().getId(); + } char delim = (char)5; for (int i = 1; i < orderedSAs.size(); i++) { - final String saStr = orderedSAs.get(i).toString(); + SpellAbility currentSa = orderedSAs.get(i); + String saStr = currentSa.toString(); + if (currentSa.getHostCard() != null) { + saStr += " - " + currentSa.getHostCard().getId(); + } if (!needPrompt && !saStr.equals(firstStr)) { needPrompt = true; //prompt by default unless all abilities are the same }