From 1a4e67273feb044eea1a0f5d6c658e17246f9a63 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Tue, 8 Nov 2022 19:57:42 -0500 Subject: [PATCH] Card.keywordsToText() improve Ward parsing --- forge-game/src/main/java/forge/game/card/Card.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index c2df8c3f5c5..ae97b41aaf8 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -2256,15 +2256,13 @@ public class Card extends GameEntity implements Comparable, IHasSVars { } else if (keyword.startsWith("Ward")) { final String[] k = keyword.split(":"); final Cost cost = new Cost(k[1], false); + final boolean onlyMana = cost.isOnlyManaCost(); + final boolean complex = k[1].contains("X") || k[1].contains("Sac<"); + final String extra = k.length > 2 ? ", " + k[2] + "." : ""; - StringBuilder sbCost = new StringBuilder(k[0]); - if (!cost.isOnlyManaCost()) { - sbCost.append("—"); - } else { - sbCost.append(" "); - } - sbCost.append(cost.toSimpleString()); - sbLong.append(sbCost).append(" (").append(inst.getReminderText()).append(")"); + sbLong.append(k[0]).append(onlyMana ? " " : "—").append(cost.toSimpleString()); + sbLong.append(onlyMana? "" : ".").append(extra); + sbLong.append(!complex ? " (" + (inst.getReminderText()) + ")" : ""); sbLong.append("\r\n"); } else if (keyword.endsWith(" offering")) { String offeringType = keyword.split(" ")[0];