From 47865f255f7b5686d3d59a76f2968cb2fa8f67e9 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 4 Nov 2022 12:25:07 -0400 Subject: [PATCH] LifeGainEffect.getStackDescription handle Defined/Targeted coming up empty --- .../game/ability/effects/LifeGainEffect.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/LifeGainEffect.java b/forge-game/src/main/java/forge/game/ability/effects/LifeGainEffect.java index 5bd9fc5b00f..08a50416ce5 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/LifeGainEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/LifeGainEffect.java @@ -18,20 +18,22 @@ public class LifeGainEffect extends SpellAbilityEffect { protected String getStackDescription(SpellAbility sa) { final StringBuilder sb = new StringBuilder(); final String amountStr = sa.getParam("LifeAmount"); + final String spellDesc = sa.getParam("SpellDescription"); sb.append(Lang.joinHomogenous(getDefinedPlayersOrTargeted(sa))); - sb.append(getDefinedPlayersOrTargeted(sa).size() > 1 ? " gain " : " gains "); - if (!StringUtils.isNumeric(amountStr) && sa.hasParam("SpellDescription") && - sa.getParam("SpellDescription").contains("life equal to")) { - String xDesc = sa.getParam("SpellDescription"); - xDesc = xDesc.substring(xDesc.indexOf("life equal to")); - sb.append(xDesc); - } else if (!amountStr.equals("AFLifeLost") || sa.hasSVar(amountStr)) { - final int amount = AbilityUtils.calculateAmount(sa.getHostCard(), amountStr, sa); - - sb.append(amount).append(" life."); + if (sb.length() == 0 && spellDesc != null) { + return (spellDesc); } else { - sb.append("life equal to the life lost this way."); + sb.append(getDefinedPlayersOrTargeted(sa).size() > 1 ? " gain " : " gains "); + if (!StringUtils.isNumeric(amountStr) && spellDesc != null && spellDesc.contains("life equal to")) { + sb.append(spellDesc.substring(spellDesc.indexOf("life equal to"))); + } else if (!amountStr.equals("AFLifeLost") || sa.hasSVar(amountStr)) { + final int amount = AbilityUtils.calculateAmount(sa.getHostCard(), amountStr, sa); + + sb.append(amount).append(" life."); + } else { + sb.append("life equal to the life lost this way."); + } } return sb.toString();