From 4868afe0e0d81173d3021e52be90a0de7440f882 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Sat, 19 Feb 2022 17:41:57 -0500 Subject: [PATCH] some changes to payment text generation --- Mage.Sets/src/mage/cards/d/DanceOfTheDead.java | 3 ++- Mage.Sets/src/mage/cards/p/Paralyze.java | 3 ++- .../costs/common/RemoveCounterCost.java | 10 ++++------ .../abilities/effects/common/DoIfCostPaid.java | 18 ++++++------------ .../effects/common/DoWhenCostPaid.java | 14 ++++---------- .../SacrificeOpponentsUnlessPayEffect.java | 3 +-- .../SacrificeSourceUnlessPaysEffect.java | 15 +-------------- Mage/src/main/java/mage/util/CardUtil.java | 7 +++++-- 8 files changed, 25 insertions(+), 48 deletions(-) diff --git a/Mage.Sets/src/mage/cards/d/DanceOfTheDead.java b/Mage.Sets/src/mage/cards/d/DanceOfTheDead.java index 5891d52b4be..7b7e0567351 100644 --- a/Mage.Sets/src/mage/cards/d/DanceOfTheDead.java +++ b/Mage.Sets/src/mage/cards/d/DanceOfTheDead.java @@ -34,6 +34,7 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCardInGraveyard; import mage.target.common.TargetCreaturePermanent; +import mage.util.CardUtil; /** * @@ -277,6 +278,6 @@ class DanceOfTheDeadDoIfCostPaidEffect extends DoIfCostPaid { @Override public String getText(Mode mode) { - return "that player may " + getCostText() + ". If they do, " + executingEffects.getText(mode); + return "that player may " + CardUtil.addCostVerb(cost.getText()) + ". If they do, " + executingEffects.getText(mode); } } diff --git a/Mage.Sets/src/mage/cards/p/Paralyze.java b/Mage.Sets/src/mage/cards/p/Paralyze.java index 08d23301f3d..781c9ac6ea7 100644 --- a/Mage.Sets/src/mage/cards/p/Paralyze.java +++ b/Mage.Sets/src/mage/cards/p/Paralyze.java @@ -18,6 +18,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import mage.util.CardUtil; /** * @@ -81,6 +82,6 @@ class ParalyzeEffect extends DoIfCostPaid { @Override public String getText(Mode mode) { - return "that player may " + getCostText() + ". If they do, " + executingEffects.getText(mode); + return "that player may " + CardUtil.addCostVerb(cost.getText()) + ". If they do, " + executingEffects.getText(mode); } } diff --git a/Mage/src/main/java/mage/abilities/costs/common/RemoveCounterCost.java b/Mage/src/main/java/mage/abilities/costs/common/RemoveCounterCost.java index 63e91293e11..8c423662572 100644 --- a/Mage/src/main/java/mage/abilities/costs/common/RemoveCounterCost.java +++ b/Mage/src/main/java/mage/abilities/costs/common/RemoveCounterCost.java @@ -23,10 +23,9 @@ import java.util.UUID; */ public class RemoveCounterCost extends CostImpl { - protected TargetPermanent target; - private String name; - private CounterType counterTypeToRemove; - protected int countersToRemove; + protected final TargetPermanent target; + private final CounterType counterTypeToRemove; + protected final int countersToRemove; public RemoveCounterCost(TargetPermanent target) { this(target, null); @@ -47,7 +46,6 @@ public class RemoveCounterCost extends CostImpl { public RemoveCounterCost(final RemoveCounterCost cost) { super(cost); this.target = cost.target.copy(); - this.name = cost.name; this.countersToRemove = cost.countersToRemove; this.counterTypeToRemove = cost.counterTypeToRemove; } @@ -128,7 +126,7 @@ public class RemoveCounterCost extends CostImpl { } private String setText() { - StringBuilder sb = new StringBuilder("Remove "); + StringBuilder sb = new StringBuilder("remove "); if (counterTypeToRemove != null) { sb.append(CardUtil.numberToText(countersToRemove, counterTypeToRemove.getArticle())).append(' ').append(counterTypeToRemove.getName()); } else { diff --git a/Mage/src/main/java/mage/abilities/effects/common/DoIfCostPaid.java b/Mage/src/main/java/mage/abilities/effects/common/DoIfCostPaid.java index 418b3e0eaa4..6ef58bb99b5 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/DoIfCostPaid.java +++ b/Mage/src/main/java/mage/abilities/effects/common/DoIfCostPaid.java @@ -17,7 +17,7 @@ public class DoIfCostPaid extends OneShotEffect { protected Effects executingEffects = new Effects(); protected Effects otherwiseEffects = new Effects(); // used for Imprison - private final Cost cost; + protected final Cost cost; private final String chooseUseText; private final boolean optional; @@ -88,7 +88,7 @@ public class DoIfCostPaid extends OneShotEffect { if (!effectText.isEmpty() && effectText.charAt(effectText.length() - 1) == '.') { effectText = effectText.substring(0, effectText.length() - 1); } - message = getCostText() + (effectText.isEmpty() ? "" : " and " + effectText) + "?"; + message = CardUtil.addCostVerb(cost.getText()) + (effectText.isEmpty() ? "" : " and " + effectText) + "?"; message = Character.toUpperCase(message.charAt(0)) + message.substring(1); } else { message = chooseUseText; @@ -155,19 +155,13 @@ public class DoIfCostPaid extends OneShotEffect { if (!staticText.isEmpty()) { return staticText; } - return (optional ? "you may " : "") + getCostText() + ". If you do, " + executingEffects.getText(mode) + return (optional ? "you may " : "") + + CardUtil.addCostVerb(cost.getText()) + + ". If you do, " + + executingEffects.getText(mode) + (!otherwiseEffects.isEmpty() ? " If you don't, " + otherwiseEffects.getText(mode) : ""); } - protected String getCostText() { - StringBuilder sb = new StringBuilder(); - String costText = cost.getText(); - if (!CardUtil.checkCostWords(costText)) { - sb.append("pay "); - } - return sb.append(costText).toString(); - } - @Override public void setValue(String key, Object value) { super.setValue(key, value); diff --git a/Mage/src/main/java/mage/abilities/effects/common/DoWhenCostPaid.java b/Mage/src/main/java/mage/abilities/effects/common/DoWhenCostPaid.java index cdc3d4bdc1d..b44e018038b 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/DoWhenCostPaid.java +++ b/Mage/src/main/java/mage/abilities/effects/common/DoWhenCostPaid.java @@ -74,16 +74,10 @@ public class DoWhenCostPaid extends OneShotEffect { if (!staticText.isEmpty()) { return staticText; } - return (optional ? "you may " : "") + getCostText() + ". When you do, " + CardUtil.getTextWithFirstCharLowerCase(ability.getRule()); - } - - private String getCostText() { - StringBuilder sb = new StringBuilder(); - String costText = cost.getText(); - if (!CardUtil.checkCostWords(costText)) { - sb.append("pay "); - } - return sb.append(costText).toString(); + return (optional ? "you may " : "") + + CardUtil.addCostVerb(cost.getText()) + + ". When you do, " + + CardUtil.getTextWithFirstCharLowerCase(ability.getRule()); } @Override diff --git a/Mage/src/main/java/mage/abilities/effects/common/SacrificeOpponentsUnlessPayEffect.java b/Mage/src/main/java/mage/abilities/effects/common/SacrificeOpponentsUnlessPayEffect.java index 6dee86ae8cd..9eea1cc657b 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/SacrificeOpponentsUnlessPayEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/SacrificeOpponentsUnlessPayEffect.java @@ -175,8 +175,7 @@ public class SacrificeOpponentsUnlessPayEffect extends OneShotEffect { sb.append(" unless they "); if (cost != null) { - sb.append(CardUtil.checkCostWords(cost.getText()) ? "" : "pay "); - sb.append(cost.getText()); + sb.append(CardUtil.addCostVerb(cost.getText())); } else { sb.append("pay {X}"); } diff --git a/Mage/src/main/java/mage/abilities/effects/common/SacrificeSourceUnlessPaysEffect.java b/Mage/src/main/java/mage/abilities/effects/common/SacrificeSourceUnlessPaysEffect.java index 488c627d097..8b62985126e 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/SacrificeSourceUnlessPaysEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/SacrificeSourceUnlessPaysEffect.java @@ -14,8 +14,6 @@ import mage.players.Player; import mage.util.CardUtil; import mage.util.ManaUtil; -import java.util.Locale; - /** * Created by IntelliJ IDEA. User: Loki Date: 21.12.10 Time: 9:21 */ @@ -92,17 +90,6 @@ public class SacrificeSourceUnlessPaysEffect extends OneShotEffect { if (staticText != null && !staticText.isEmpty()) { return staticText; } - - StringBuilder sb = new StringBuilder("sacrifice {this} unless you "); - String costText = cost != null ? cost.getText() : "{X}"; - - if (CardUtil.checkCostWords(costText)) { - sb.append(costText.substring(0, 1).toLowerCase(Locale.ENGLISH)); - sb.append(costText.substring(1)); - } else { - sb.append("pay ").append(costText); - } - - return sb.toString(); + return "sacrifice {this} unless you " + CardUtil.addCostVerb(cost != null ? cost.getText() : "{X}"); } } diff --git a/Mage/src/main/java/mage/util/CardUtil.java b/Mage/src/main/java/mage/util/CardUtil.java index b44a88e9760..7d39d184c27 100644 --- a/Mage/src/main/java/mage/util/CardUtil.java +++ b/Mage/src/main/java/mage/util/CardUtil.java @@ -1284,8 +1284,11 @@ public final class CardUtil { return zcc; } - public static boolean checkCostWords(String text) { - return text != null && costWords.stream().anyMatch(text.toLowerCase(Locale.ENGLISH)::startsWith); + public static String addCostVerb(String text) { + if (costWords.stream().anyMatch(text.toLowerCase(Locale.ENGLISH)::startsWith)) { + return text; + } + return "pay " + text; } /**