diff --git a/forge-game/src/main/java/forge/game/replacement/ReplacementEffect.java b/forge-game/src/main/java/forge/game/replacement/ReplacementEffect.java index 3a62c623aab..ef6d5e1b0fc 100644 --- a/forge-game/src/main/java/forge/game/replacement/ReplacementEffect.java +++ b/forge-game/src/main/java/forge/game/replacement/ReplacementEffect.java @@ -216,7 +216,13 @@ public abstract class ReplacementEffect extends TriggerReplacementBase { public String getDescription() { if (hasParam("Description") && !this.isSuppressed()) { String desc = AbilityUtils.applyDescriptionTextChangeEffects(getParam("Description"), this); - String currentName = getHostCard().getName(); + String currentName; + if (this.isIntrinsic() && !this.getHostCard().isMutated() && cardState != null) { + currentName = cardState.getName(); + } + else { + currentName = getHostCard().getName(); + } desc = CardTranslation.translateSingleDescriptionText(desc, currentName); desc = TextUtil.fastReplace(desc, "CARDNAME", CardTranslation.getTranslatedName(currentName)); desc = TextUtil.fastReplace(desc, "NICKNAME", Lang.getInstance().getNickName(CardTranslation.getTranslatedName(currentName))); diff --git a/forge-game/src/main/java/forge/game/spellability/SpellAbility.java b/forge-game/src/main/java/forge/game/spellability/SpellAbility.java index cd0e1746df2..1f31fdd7d4c 100644 --- a/forge-game/src/main/java/forge/game/spellability/SpellAbility.java +++ b/forge-game/src/main/java/forge/game/spellability/SpellAbility.java @@ -842,7 +842,14 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit } String desc = node.getDescription(); if (node.getHostCard() != null) { - String currentName = node.getHostCard().getName(); + String currentName; + // if alternate state is viewed while card uses original + if (node.isIntrinsic() && !node.getHostCard().isMutated() && node.cardState != null) { + currentName = node.cardState.getName(); + } + else { + currentName = node.getHostCard().getName(); + } desc = CardTranslation.translateMultipleDescriptionText(desc, currentName); desc = TextUtil.fastReplace(desc, "CARDNAME", CardTranslation.getTranslatedName(currentName)); desc = TextUtil.fastReplace(desc, "NICKNAME", Lang.getInstance().getNickName(CardTranslation.getTranslatedName(currentName))); diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbility.java b/forge-game/src/main/java/forge/game/staticability/StaticAbility.java index 7b20550252a..7790f8ec25f 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbility.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbility.java @@ -208,7 +208,13 @@ public class StaticAbility extends CardTraitBase implements IIdentifiable, Clone @Override public final String toString() { if (hasParam("Description") && !this.isSuppressed()) { - String currentName = this.hostCard.getName(); + String currentName; + if (this.isIntrinsic() && !this.getHostCard().isMutated() && cardState != null) { + currentName = cardState.getName(); + } + else { + currentName = getHostCard().getName(); + } String desc = CardTranslation.translateSingleDescriptionText(getParam("Description"), currentName); desc = TextUtil.fastReplace(desc, "CARDNAME", CardTranslation.getTranslatedName(currentName)); desc = TextUtil.fastReplace(desc, "NICKNAME", Lang.getInstance().getNickName(CardTranslation.getTranslatedName(currentName))); 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 5357dd681ab..537390ee31d 100644 --- a/forge-game/src/main/java/forge/game/trigger/Trigger.java +++ b/forge-game/src/main/java/forge/game/trigger/Trigger.java @@ -131,7 +131,13 @@ public abstract class Trigger extends TriggerReplacementBase { if (hasParam("TriggerDescription") && !this.isSuppressed()) { StringBuilder sb = new StringBuilder(); - String currentName = getHostCard().getName(); + String currentName; + if (this.isIntrinsic() && !this.getHostCard().isMutated() && cardState != null) { + currentName = cardState.getName(); + } + else { + currentName = getHostCard().getName(); + } String desc = getParam("TriggerDescription"); if (!desc.contains("ABILITY")) { desc = CardTranslation.translateSingleDescriptionText(getParam("TriggerDescription"), currentName);