From a1e659f10035c630ea61c16d1fa1cd4fb15a834a Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 20 Apr 2022 20:13:41 -0400 Subject: [PATCH] AbilityFactory : better auto target prompt generation --- .../java/forge/game/ability/AbilityFactory.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/AbilityFactory.java b/forge-game/src/main/java/forge/game/ability/AbilityFactory.java index 71cc985d233..420107c2121 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityFactory.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityFactory.java @@ -17,6 +17,7 @@ */ package forge.game.ability; +import java.util.Arrays; import java.util.List; import java.util.Map; @@ -329,9 +330,16 @@ public final class AbilityFactory { final String max = mapParams.containsKey("TargetMax") ? mapParams.get("TargetMax") : "1"; // TgtPrompt should only be needed for more complicated ValidTgts - final String prompt = mapParams.containsKey("TgtPrompt") ? mapParams.get("TgtPrompt") : "Select target " + - (CardType.CoreType.isValidEnum(mapParams.get("ValidTgts")) ? mapParams.get("ValidTgts").toLowerCase() : - mapParams.get("ValidTgts")); + String tgtWhat = mapParams.get("ValidTgts"); + final String[] commonStuff = new String[] { + //list of common one word non-core type ValidTgts that should be lowercase in the target prompt + "Player", "Opponent" + }; + if (Arrays.asList(commonStuff).contains(tgtWhat) || CardType.CoreType.isValidEnum(tgtWhat)) { + tgtWhat = tgtWhat.toLowerCase(); + } + final String prompt = mapParams.containsKey("TgtPrompt") ? mapParams.get("TgtPrompt") : + "Select target " + tgtWhat; TargetRestrictions abTgt = new TargetRestrictions(prompt, mapParams.get("ValidTgts").split(","), min, max);