From 3ef64779dd37f0e4b06ff806e8ead65dbb0af93d Mon Sep 17 00:00:00 2001 From: Christian 'ketura' McCarty Date: Sun, 8 Dec 2024 12:45:18 -0600 Subject: [PATCH] The HTGG is a UX issue of not putting a good default in. Added default parameter to ChooseANumber and updated both HTGG to use it. Also added message to end of form popup reminding people they don't have to double-fill the replay --- .../main/resources/cards/official/set03/set03-Elven.hjson | 1 + .../unofficial/pc/errata/set03/set03-Elven-errata.hjson | 1 + .../cards/build/field/effect/appender/ChooseANumber.java | 6 ++++-- .../src/main/java/com/gempukku/lotro/game/GameRecorder.java | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set03/set03-Elven.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set03/set03-Elven.hjson index 4174ee2c3..5d237ac14 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set03/set03-Elven.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set03/set03-Elven.hjson @@ -308,6 +308,7 @@ text: Choose how many times to heal {healingAlly} from: 0 to: 2 + default: 2 memorize: healing } { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set03/set03-Elven-errata.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set03/set03-Elven-errata.hjson index 7798b58d4..dd565b6cb 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set03/set03-Elven-errata.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set03/set03-Elven-errata.hjson @@ -149,6 +149,7 @@ } secondNumber: 2 } + default: 2 memorize: heals } { diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ChooseANumber.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ChooseANumber.java index 6754e5479..797382eb7 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ChooseANumber.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ChooseANumber.java @@ -17,13 +17,14 @@ import org.json.simple.JSONObject; public class ChooseANumber implements EffectAppenderProducer { @Override public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException { - FieldUtils.validateAllowedFields(effectObject, "player", "text", "from", "to", "memorize"); + FieldUtils.validateAllowedFields(effectObject, "player", "text", "from", "to", "default", "memorize"); final String player = FieldUtils.getString(effectObject.get("player"), "player", "you"); final String displayText = FieldUtils.getString(effectObject.get("text"), "text", "Choose a number"); final ValueSource fromSource = ValueResolver.resolveEvaluator(effectObject.get("from"), 0, environment); Object to = effectObject.get("to"); final ValueSource toSource = to != null ? ValueResolver.resolveEvaluator(to, environment) : null; + final ValueSource defaultSource = ValueResolver.resolveEvaluator(effectObject.get("default"), 0, environment); final String memorize = FieldUtils.getString(effectObject.get("memorize"), "memorize"); @@ -37,9 +38,10 @@ public class ChooseANumber implements EffectAppenderProducer { protected Effect createEffect(boolean cost, CostToEffectAction action, ActionContext actionContext) { int min = fromSource.getEvaluator(actionContext).evaluateExpression(actionContext.getGame(), null); Integer max = toSource != null ? toSource.getEvaluator(actionContext).evaluateExpression(actionContext.getGame(), null) : null; + int defaultAmount = defaultSource.getEvaluator(actionContext).evaluateExpression(actionContext.getGame(), null); return new PlayoutDecisionEffect(playerSource.getPlayer(actionContext), new IntegerAwaitingDecision(1, GameUtils.substituteText(displayText, actionContext), - min, max) { + min, max, defaultAmount) { @Override public void decisionMade(String result) throws DecisionResultInvalidException { actionContext.setValueToMemory(memorize, String.valueOf(getValidatedResult(result))); diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/GameRecorder.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/GameRecorder.java index d0a6ac942..c6b9370e2 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/GameRecorder.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/GameRecorder.java @@ -105,7 +105,7 @@ public class GameRecorder { String winnerURL = "https://play.lotrtcgpc.net/gemp-lotr/game.html%3FreplayId%3D" + winnerName + "$" + playerRecordingId.get(winnerName); String loserURL = "https://play.lotrtcgpc.net/gemp-lotr/game.html%3FreplayId%3D" + loserName + "$" + playerRecordingId.get(loserName); url += winnerURL + "%20" + loserURL; - lotroGame.sendMessageToPlayers("Thank you for playing! If you have any feedback, bugs, or other issues to report about this match, please do so using this form."); + lotroGame.sendMessageToPlayers("Thank you for playing! If you have any feedback, bugs, or other issues to report about this match, please do so using this form.

If you use this link, it will fill in the replay for you automatically.
"); // } };