From 92e6c303adb578bde1051092e4cd52ceef21029c Mon Sep 17 00:00:00 2001 From: CCTV-1 Date: Fri, 27 Dec 2019 15:22:01 +0800 Subject: [PATCH] update translation text to use have placeholder string --- .../game/ability/effects/AbandonEffect.java | 2 +- .../game/ability/effects/AddTurnEffect.java | 2 +- .../ability/effects/AssignGroupEffect.java | 2 +- .../game/ability/effects/AttachEffect.java | 6 ++-- .../game/ability/effects/BidLifeEffect.java | 2 +- .../effects/ChangeCombatantsEffect.java | 2 +- .../ability/effects/ChangeTargetsEffect.java | 4 +-- .../ability/effects/ChangeZoneAllEffect.java | 14 ++------ .../ability/effects/ChangeZoneEffect.java | 34 ++++++++++++------- .../ability/effects/ChooseCardEffect.java | 6 ++-- .../ability/effects/ChooseCardNameEffect.java | 4 +-- .../ability/effects/ChooseColorEffect.java | 16 ++++----- .../ability/effects/ChooseNumberEffect.java | 4 +-- .../game/ability/effects/CloneEffect.java | 2 +- .../ability/effects/ControlGainEffect.java | 2 +- .../ability/effects/CopyPermanentEffect.java | 6 ++-- .../effects/CopySpellAbilityEffect.java | 4 +-- .../ability/effects/CountersMoveEffect.java | 34 +++++-------------- .../ability/effects/CountersPutEffect.java | 2 +- .../effects/CountersPutOrRemoveEffect.java | 2 +- .../ability/effects/CountersRemoveEffect.java | 9 ++--- .../ability/effects/DamageDealEffect.java | 2 +- .../forge/game/ability/effects/DigEffect.java | 17 ++++------ .../ability/effects/DigMultipleEffect.java | 3 +- .../game/ability/effects/DigUntilEffect.java | 2 +- .../game/ability/effects/DiscardEffect.java | 5 ++- .../game/ability/effects/DrawEffect.java | 2 +- .../game/ability/effects/EncodeEffect.java | 8 ++--- .../game/ability/effects/ManaEffect.java | 6 ++-- .../game/ability/effects/MillEffect.java | 2 +- .../ability/effects/MultiplePilesEffect.java | 2 +- .../game/ability/effects/PlayEffect.java | 3 +- .../game/ability/effects/PumpEffect.java | 2 +- .../ability/effects/RollPlanarDiceEffect.java | 2 +- .../ability/effects/RunSVarAbilityEffect.java | 6 ++-- .../game/ability/effects/SacrificeEffect.java | 28 +++++++-------- .../game/ability/effects/ScryEffect.java | 8 ++--- .../game/ability/effects/ShuffleEffect.java | 2 +- .../ability/effects/TapOrUntapEffect.java | 2 +- .../game/ability/effects/TokenEffect.java | 2 +- 40 files changed, 115 insertions(+), 148 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/AbandonEffect.java b/forge-game/src/main/java/forge/game/ability/effects/AbandonEffect.java index b6bf52a8478..7e41ba9618e 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/AbandonEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/AbandonEffect.java @@ -24,7 +24,7 @@ public class AbandonEffect extends SpellAbilityEffect { Player controller = source.getController(); boolean isOptional = sa.hasParam("Optional"); - if (isOptional && !controller.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblWouldYoulikeAbandon") + " " + source + "?")) { + if (isOptional && !controller.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblWouldYoulikeAbandonConfirm", source.toString()))) { return; } diff --git a/forge-game/src/main/java/forge/game/ability/effects/AddTurnEffect.java b/forge-game/src/main/java/forge/game/ability/effects/AddTurnEffect.java index 9edf0d3ecbd..2a1353e03be 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/AddTurnEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/AddTurnEffect.java @@ -62,7 +62,7 @@ public class AddTurnEffect extends SpellAbilityEffect { extra.setCantSetSchemesInMotion(true); } if (sa.hasParam("ShowMessage")) { - p.getGame().getAction().nofityOfValue(sa, p, p + " " + Localizer.getInstance().getMessage("lblTakesExtraTurn"), null); + p.getGame().getAction().nofityOfValue(sa, p, Localizer.getInstance().getMessage("lblPlayerTakesExtraTurn", p.toString()), null); } } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/AssignGroupEffect.java b/forge-game/src/main/java/forge/game/ability/effects/AssignGroupEffect.java index 03a455900a3..1f392ec35c4 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/AssignGroupEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/AssignGroupEffect.java @@ -50,7 +50,7 @@ public class AssignGroupEffect extends SpellAbilityEffect { Multimap result = ArrayListMultimap.create(); for (GameObject g : defined) { - final String title = Localizer.getInstance().getMessage("lblChooseAbilityFor") + " " + g.toString(); + final String title = Localizer.getInstance().getMessage("lblChooseAbilityForObject", g.toString()); Map params = Maps.newHashMap(); params.put("Affected", g); diff --git a/forge-game/src/main/java/forge/game/ability/effects/AttachEffect.java b/forge-game/src/main/java/forge/game/ability/effects/AttachEffect.java index 78b1b475dd8..4f805200be7 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/AttachEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/AttachEffect.java @@ -61,7 +61,7 @@ public class AttachEffect extends SpellAbilityEffect { // If Cast Targets will be checked on the Stack for (final Card attachment : attachments) { - String message = Localizer.getInstance().getMessage("lblDoYouWantAttach") + " " + attachment + " " + Localizer.getInstance().getMessage("lblTo") + " " + attachTo + "?"; + String message = Localizer.getInstance().getMessage("lblDoYouWantAttachSourceToTarget", attachment.toString(), attachTo.toString()); if ( sa.hasParam("Optional") && !p.getController().confirmAction(sa, null, message) ) continue; handleAttachment(attachment, attachTo, sa); @@ -174,7 +174,7 @@ public class AttachEffect extends SpellAbilityEffect { players.add(player); } } - final Player pa = p.getController().chooseSingleEntityForEffect(players, aura, source + " - " + Localizer.getInstance().getMessage("lblSelectAPlayerAttachTo")); + final Player pa = p.getController().chooseSingleEntityForEffect(players, aura, Localizer.getInstance().getMessage("lblSelectAPlayerAttachSourceTo", source.toString())); if (pa != null) { handleAura(source, pa); return true; @@ -187,7 +187,7 @@ public class AttachEffect extends SpellAbilityEffect { return false; } - final Card o = p.getController().chooseSingleEntityForEffect(list, aura, source + " - " + Localizer.getInstance().getMessage("lblSelectACardAttachTo")); + final Card o = p.getController().chooseSingleEntityForEffect(list, aura, Localizer.getInstance().getMessage("lblSelectACardAttachSourceTo", source.toString())); if (o != null) { handleAura(source, o); //source.enchantEntity((Card) o); diff --git a/forge-game/src/main/java/forge/game/ability/effects/BidLifeEffect.java b/forge-game/src/main/java/forge/game/ability/effects/BidLifeEffect.java index 1468724219c..22391ec5f5d 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/BidLifeEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/BidLifeEffect.java @@ -60,7 +60,7 @@ public class BidLifeEffect extends SpellAbilityEffect { if (result) { // a different choose number bid += p.getController().chooseNumber(sa, Localizer.getInstance().getMessage("lblBidLife") + ":", 1, 9); winner = p; - host.getGame().getAction().nofityOfValue(sa, p, Localizer.getInstance().getMessage("lblTopBidWith") + " " + bid + " " + Localizer.getInstance().getMessage("lbllife"), p); + host.getGame().getAction().nofityOfValue(sa, p, Localizer.getInstance().getMessage("lblTopBidWithValueLife", String.valueOf(bid)), p); } } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeCombatantsEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeCombatantsEffect.java index 5f82bd43f42..5c2c5c254f4 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeCombatantsEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeCombatantsEffect.java @@ -45,7 +45,7 @@ public class ChangeCombatantsEffect extends SpellAbilityEffect { final GameEntity originalDefender = combat.getDefenderByAttacker(c); final FCollectionView defs = combat.getDefenders(); final GameEntity defender = sa.getActivatingPlayer().getController().chooseSingleEntityForEffect(defs, sa, - Localizer.getInstance().getMessage("lblChooseDefenderToAttackWith") + " " + c, false); + Localizer.getInstance().getMessage("lblChooseDefenderToAttackWithCard", c.toString()), false); if (originalDefender != null && !originalDefender.equals(defender)) { AttackingBand ab = combat.getBandOfAttacker(c); if (ab != null) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeTargetsEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeTargetsEffect.java index ee8c24184ff..d194043e9dc 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeTargetsEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeTargetsEffect.java @@ -51,8 +51,8 @@ public class ChangeTargetsEffect extends SpellAbilityEffect { // Redirect rules read 'you MAY choose new targets' ... okay! // TODO: Don't even ask to change targets, if the SA and subs don't actually have targets boolean isOptional = sa.hasParam("Optional"); - if (isOptional && !chooser.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantChangeTargets") + " " + tgtSA.getHostCard() + "?")) { - continue; + if (isOptional && !chooser.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantChangeAbilityTargets", tgtSA.getHostCard().toString()))) { + continue; } if (changesOneTarget) { // 1. choose a target of target spell diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java index c14492ddc09..cfe26c4814e 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java @@ -99,19 +99,9 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect { final String targets = Lang.joinHomogenous(cards); final String message; if (sa.hasParam("OptionQuestion")) { - message = TextUtil.fastReplace(sa.getParam("OptionQuestion"), "TARGETS", targets); + message = TextUtil.fastReplace(sa.getParam("OptionQuestion"), "TARGETS", targets); } else { - final StringBuilder sb = new StringBuilder(); - - sb.append(Localizer.getInstance().getMessage("lblMove") + " "); - sb.append(targets); - sb.append(" " + Localizer.getInstance().getMessage("lblFrom") + " "); - sb.append(Lang.joinHomogenous(origin)); - sb.append(" " + Localizer.getInstance().getMessage("lblTo") + " "); - sb.append(destination); - sb.append("?"); - - message = sb.toString(); + message = Localizer.getInstance().getMessage("lblMoveTargetFromOriginToDestination", targets, Lang.joinHomogenous(origin), destination.toString()); } if (!sa.getActivatingPlayer().getController().confirmAction(sa, null, message)) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java index 5bad714d73f..3e486f35043 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java @@ -440,7 +440,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { hostCard.addRemembered(CardUtil.getLKICopy(tgtC)); } - final String prompt = TextUtil.concatWithSpace(Localizer.getInstance().getMessage("lblDoYouWantMove"), tgtC.toString(), Localizer.getInstance().getMessage("lblFrom"), origin.toString(), Localizer.getInstance().getMessage("lblTo"), TextUtil.addSuffix(destination.toString(),"?")); + final String prompt = TextUtil.concatWithSpace(Localizer.getInstance().getMessage("lblDoYouWantMoveTargetFromOriToDest", tgtC.toString(), origin.toString(), destination.toString())); if (optional && !player.getController().confirmAction(sa, null, prompt) ) continue; @@ -504,7 +504,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { list = CardLists.getValidCards(game.getCardsIn(ZoneType.Battlefield), sa.getParam("AttachedTo"), tgtC.getController(), tgtC); } if (!list.isEmpty()) { - Card attachedTo = player.getController().chooseSingleEntityForEffect(list, sa, tgtC + " - " + Localizer.getInstance().getMessage("lblSelectACardAttachTo")); + Card attachedTo = player.getController().chooseSingleEntityForEffect(list, sa, Localizer.getInstance().getMessage("lblSelectACardAttachSourceTo", tgtC.toString())); tgtC.attachToEntity(attachedTo); } else { // When it should enter the battlefield attached to an illegal permanent it fails continue; @@ -514,7 +514,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { if (sa.hasParam("AttachedToPlayer")) { FCollectionView list = AbilityUtils.getDefinedPlayers(hostCard, sa.getParam("AttachedToPlayer"), sa); if (!list.isEmpty()) { - Player attachedTo = player.getController().chooseSingleEntityForEffect(list, sa, tgtC + " - " + Localizer.getInstance().getMessage("lblSelectAPlayerAttachTo")); + Player attachedTo = player.getController().chooseSingleEntityForEffect(list, sa, Localizer.getInstance().getMessage("lblSelectAPlayerAttachSourceTo", tgtC.toString())); tgtC.attachToEntity(attachedTo); } else { // When it should enter the battlefield attached to an illegal player it fails @@ -561,7 +561,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { } } } else { - defender = player.getController().chooseSingleEntityForEffect(e, sa, Localizer.getInstance().getMessage("lblDeclareDefenderFor") + " " + movedCard ); + defender = player.getController().chooseSingleEntityForEffect(e, sa, Localizer.getInstance().getMessage("lblDeclareDefenderForCard", movedCard.toString())); } if (defender != null) { combat.addAttacker(movedCard, defender); @@ -750,7 +750,14 @@ public class ChangeZoneEffect extends SpellAbilityEffect { final boolean optional = sa.hasParam("Optional"); if (optional) { - String message = MessageUtil.formatMessage(defined ? Localizer.getInstance().getMessage("lblPutThatCardFrom") + " {player's} " + Lang.joinHomogenous(origin).toLowerCase() + " " + Localizer.getInstance().getMessage("lblTo") + " " + destination.name().toLowerCase() : Localizer.getInstance().getMessage("lblSearch") + " {player's} " + Lang.joinHomogenous(origin).toLowerCase() + "?", decider, player); + String prompt; + if (defined) { + prompt = Localizer.getInstance().getMessage("lblPutThatCardFromPlayerOriginToDestination", "{player's}", Lang.joinHomogenous(origin).toLowerCase(), destination.name().toLowerCase()); + } + else { + prompt = Localizer.getInstance().getMessage("lblSearchPlayerZoneConfirm", "{player's}", Lang.joinHomogenous(origin).toLowerCase()); + } + String message = MessageUtil.formatMessage(prompt , decider, player); if (!decider.getController().confirmAction(sa, PlayerActionConfirmMode.ChangeZoneGeneral, message)) { return; } @@ -822,7 +829,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { continue; } SpellAbility tgtSA = decider.getController().getAbilityToPlay(tgtCard, sas); - if (!decider.getController().confirmAction(tgtSA, null, Localizer.getInstance().getMessage("lblDoYouWantPlay") + " " + tgtCard + "?")) { + if (!decider.getController().confirmAction(tgtSA, null, Localizer.getInstance().getMessage("lblDoYouWantPlayCard", tgtCard.toString()))) { continue; } // if played, that card cannot be found @@ -854,7 +861,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { final boolean champion = sa.hasParam("Champion"); final boolean forget = sa.hasParam("ForgetChanged"); final boolean imprint = sa.hasParam("Imprint"); - String selectPrompt = sa.hasParam("SelectPrompt") ? sa.getParam("SelectPrompt") : MessageUtil.formatMessage(Localizer.getInstance().getMessage("lblSelectCardFrom") + " {player's} " + Lang.joinHomogenous(origin).toLowerCase(), decider, player); + String selectPrompt = sa.hasParam("SelectPrompt") ? sa.getParam("SelectPrompt") : MessageUtil.formatMessage(Localizer.getInstance().getMessage("lblSelectCardFromPlayerZone", "{player's}", Lang.joinHomogenous(origin).toLowerCase()), decider, player); final String totalcmc = sa.getParam("WithTotalCMC"); int totcmc = AbilityUtils.calculateAmount(source, totalcmc, sa); @@ -867,9 +874,10 @@ public class ChangeZoneEffect extends SpellAbilityEffect { if (! sa.hasParam("SelectPrompt")) { // new default messaging for multi select if (fetchList.size() > changeNum) { - selectPrompt = MessageUtil.formatMessage(Localizer.getInstance().getMessage("lblSelectUpTo") + " " + changeNum + " " + Localizer.getInstance().getMessage("lblCardsFrom") + " {player's} " + Lang.joinHomogenous(origin).toLowerCase(), decider, player); + //Select up to %changeNum cards from %players %origin + selectPrompt = MessageUtil.formatMessage(Localizer.getInstance().getMessage("lblSelectUpToNumCardFromPlayerZone", String.valueOf(changeNum), "{player's}", Lang.joinHomogenous(origin).toLowerCase()), decider, player); } else { - selectPrompt = MessageUtil.formatMessage(Localizer.getInstance().getMessage("lblSelectCardsFrom") + " {player's} " + Lang.joinHomogenous(origin).toLowerCase(), decider, player); + selectPrompt = MessageUtil.formatMessage(Localizer.getInstance().getMessage("lblSelectCardsFromPlayerZone", "{player's}", Lang.joinHomogenous(origin).toLowerCase()), decider, player); } } // ensure that selection is within maximum allowed changeNum @@ -931,7 +939,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { if (c == null) { final int num = Math.min(fetchList.size(), changeNum - i); - String message = Localizer.getInstance().getMessage("lblCancelSearchUpTo") + " " + num + " " + Localizer.getInstance().getMessage("lblMoreCard") + (num != 1 ? "s" : "") + " " + Localizer.getInstance().getMessage("lblCanBeSelected"); + String message = Localizer.getInstance().getMessage("lblCancelSearchUpToSelectNumCards", String.valueOf(num)); if (fetchList.isEmpty() || decider.getController().confirmAction(sa, PlayerActionConfirmMode.ChangeZoneGeneral, message)) { break; @@ -1002,7 +1010,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { if (!list.isEmpty()) { Card attachedTo = null; if (list.size() > 1) { - attachedTo = decider.getController().chooseSingleEntityForEffect(list, sa, c + " - " + Localizer.getInstance().getMessage("lblSelectACardAttachTo")); + attachedTo = decider.getController().chooseSingleEntityForEffect(list, sa, Localizer.getInstance().getMessage("lblSelectACardAttachSourceTo", c.toString())); } else { attachedTo = list.get(0); @@ -1020,7 +1028,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { if (sa.hasParam("AttachedToPlayer")) { FCollectionView list = AbilityUtils.getDefinedPlayers(source, sa.getParam("AttachedToPlayer"), sa); if (!list.isEmpty()) { - Player attachedTo = player.getController().chooseSingleEntityForEffect(list, sa, c + " - " + Localizer.getInstance().getMessage("lblSelectAPlayerAttachTo")); + Player attachedTo = player.getController().chooseSingleEntityForEffect(list, sa, Localizer.getInstance().getMessage("lblSelectACardAttachSourceTo", c.toString())); c.attachToEntity(attachedTo); } else { // When it should enter the battlefield attached to an illegal permanent it fails @@ -1043,7 +1051,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { } } } else { - defender = player.getController().chooseSingleEntityForEffect(e, sa, Localizer.getInstance().getMessage("lblDeclareDefenderFor") + " " + c ); + defender = player.getController().chooseSingleEntityForEffect(e, sa, Localizer.getInstance().getMessage("lblDeclareDefenderForCard", c.toString())); } if (defender != null) { combat.addAttacker(c, defender); diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChooseCardEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChooseCardEffect.java index 020ba61fbbb..2c13373cecc 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChooseCardEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChooseCardEffect.java @@ -83,7 +83,7 @@ public class ChooseCardEffect extends SpellAbilityEffect { for (final String type : CardType.getBasicTypes()) { final CardCollectionView cl = CardLists.getType(land, type); if (!cl.isEmpty()) { - final String prompt = "Choose " + Lang.nounWithAmount(1, type); + final String prompt = Localizer.getInstance().getMessage("lblChoose") + " " + Lang.nounWithAmount(1, type); Card c = p.getController().chooseSingleEntityForEffect(cl, sa, prompt, false); if (c != null) { chosen.add(c); @@ -99,8 +99,8 @@ public class ChooseCardEffect extends SpellAbilityEffect { int chosenP = 0; while (!creature.isEmpty()) { Card c = p.getController().chooseSingleEntityForEffect(creature, sa, - Localizer.getInstance().getMessage("lblSelectCreatureWithTotalPowerLessOrEqualTo") + " " + (totP - chosenP - negativeNum) - + "\r\n(" + Localizer.getInstance().getMessage("lblSelected") + ":" + chosenPool + ")\r\n(" + Localizer.getInstance().getMessage("lblTotalPower") + ": " + chosenP + ")", chosenP <= totP); + Localizer.getInstance().getMessage("lblSelectCreatureWithTotalPowerLessOrEqualToNum", (totP - chosenP - negativeNum)) + + "\r\n(" + Localizer.getInstance().getMessage("lblSelected") + ":" + chosenPool + ")\r\n(" + Localizer.getInstance().getMessage("lblTotalPowerNum", chosenP) + ")", chosenP <= totP); if (c == null) { if (p.getController().confirmAction(sa, PlayerActionConfirmMode.OptionalChoose, Localizer.getInstance().getMessage("lblCancelChooseConfirm"))) { break; diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChooseCardNameEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChooseCardNameEffect.java index dd72c9835ea..9e2f06a8958 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChooseCardNameEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChooseCardNameEffect.java @@ -104,7 +104,7 @@ public class ChooseCardNameEffect extends SpellAbilityEffect { } else { // use CardFace because you might name a alternate name //"name a card" in mtg card oracle text is "choose a card name",change text - final String message = validDesc.equals("card") ? Localizer.getInstance().getMessage("lblChooseACardName") : Localizer.getInstance().getMessage("lblChooseA") + validDesc + Localizer.getInstance().getMessage("lblCardName") + "."; + final String message = validDesc.equals("card") ? Localizer.getInstance().getMessage("lblChooseACardName") : Localizer.getInstance().getMessage("lblChooseASpecificCard", validDesc); Predicate cpp = Predicates.alwaysTrue(); if (sa.hasParam("ValidCards")) { @@ -116,7 +116,7 @@ public class ChooseCardNameEffect extends SpellAbilityEffect { host.setNamedCard(chosen); if(!randomChoice) { - p.getGame().getAction().nofityOfValue(sa, host, p.getName() + " " + Localizer.getInstance().getMessage("lblPicked") + " " + chosen, p); + p.getGame().getAction().nofityOfValue(sa, host, Localizer.getInstance().getMessage("lblPlayerPickedChosen", p.getName(), chosen), p); p.setNamedCard(chosen); } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChooseColorEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChooseColorEffect.java index 8d91adfaaaa..365cc2f862a 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChooseColorEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChooseColorEffect.java @@ -50,27 +50,25 @@ public class ChooseColorEffect extends SpellAbilityEffect { List chosenColors; int cntMin = sa.hasParam("TwoColors") ? 2 : 1; int cntMax = sa.hasParam("TwoColors") ? 2 : sa.hasParam("OrColors") ? colorChoices.size() : 1; - String prompt; + String prompt = null; if (cntMax == 1) { prompt = Localizer.getInstance().getMessage("lblChooseAColor"); } else { - prompt = Localizer.getInstance().getMessage("lblChoose") + " " + Lang.getNumeral(cntMin); if (cntMax > cntMin) { - if (cntMax >= MagicColor.NUMBER_OR_COLORS) { - prompt += " " + Localizer.getInstance().getMessage("lblOrMore"); - } else { - prompt += " " + Localizer.getInstance().getMessage("lblTo") + " " + Lang.getNumeral(cntMax); - } + if (cntMax >= MagicColor.NUMBER_OR_COLORS) { + prompt = Localizer.getInstance().getMessage("lblAtLastChooseNumColors", Lang.getNumeral(cntMin)); + } else { + prompt = Localizer.getInstance().getMessage("lblChooseSpecifiedRangeColors", Lang.getNumeral(cntMin), Lang.getNumeral(cntMax)); + } } - prompt += " " + Localizer.getInstance().getMessage("lblColors"); } chosenColors = p.getController().chooseColors(prompt, sa, cntMin, cntMax, colorChoices); if (chosenColors.isEmpty()) { return; } card.setChosenColors(chosenColors); - p.getGame().getAction().nofityOfValue(sa, card, p.getName() + " " + Localizer.getInstance().getMessage("lblPicked") + " " + Lang.joinHomogenous(chosenColors), p); + p.getGame().getAction().nofityOfValue(sa, card, Localizer.getInstance().getMessage("lblPlayerPickedChosen", p.getName(), Lang.joinHomogenous(chosenColors)), p); } } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChooseNumberEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChooseNumberEffect.java index 63e5ae38259..d54b3579625 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChooseNumberEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChooseNumberEffect.java @@ -73,7 +73,7 @@ public class ChooseNumberEffect extends SpellAbilityEffect { card.setChosenNumber(chosen); } if (sa.hasParam("Notify")) { - p.getGame().getAction().nofityOfValue(sa, card, p.getName() + " " + Localizer.getInstance().getMessage("lblPicked") + " " + chosen, p); + p.getGame().getAction().nofityOfValue(sa, card, Localizer.getInstance().getMessage("lblPlayerPickedChosen", p.getName(), chosen), p); } } } @@ -86,7 +86,7 @@ public class ChooseNumberEffect extends SpellAbilityEffect { for (Entry ev : chooseMap.entrySet()) { int num = ev.getValue(); Player player = ev.getKey(); - sb.append(player).append(" " + Localizer.getInstance().getMessage("lblChose") + " ").append(num); + sb.append(Localizer.getInstance().getMessage("lblPlayerChoseNum", player.getName(), String.valueOf(num))); sb.append("\r\n"); if (num > highest) { highestNum.clear(); diff --git a/forge-game/src/main/java/forge/game/ability/effects/CloneEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CloneEffect.java index a06f15dbec5..2edf442ac8f 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CloneEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CloneEffect.java @@ -94,7 +94,7 @@ public class CloneEffect extends SpellAbilityEffect { } final boolean optional = sa.hasParam("Optional"); - if (optional && !host.getController().getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantCopy") + " " + cardToCopy + "?")) { + if (optional && !host.getController().getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantCopyCard", cardToCopy))) { return; } diff --git a/forge-game/src/main/java/forge/game/ability/effects/ControlGainEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ControlGainEffect.java index 74ce08933ea..ba781a3f6a7 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ControlGainEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ControlGainEffect.java @@ -228,7 +228,7 @@ public class ControlGainEffect extends SpellAbilityEffect { final FCollectionView e = combat.getDefenders(); final GameEntity defender = sa.getActivatingPlayer().getController().chooseSingleEntityForEffect(e, sa, - Localizer.getInstance().getMessage("lblDeclareDefenderFor") + " " + tgtC); + Localizer.getInstance().getMessage("lblDeclareDefenderForCard", tgtC.toString())); if (defender != null) { combat.addAttacker(tgtC, defender); diff --git a/forge-game/src/main/java/forge/game/ability/effects/CopyPermanentEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CopyPermanentEffect.java index ef0cabec2e8..5cf859810d2 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CopyPermanentEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CopyPermanentEffect.java @@ -207,12 +207,12 @@ public class CopyPermanentEffect extends SpellAbilityEffect { GameEntity defender; if ("True".equals(attacked)) { FCollectionView defs = game.getCombat().getDefenders(); - defender = c.getController().getController().chooseSingleEntityForEffect(defs, sa, Localizer.getInstance().getMessage("lblChooseDefenderToAttackWith") + " " + c, false); + defender = c.getController().getController().chooseSingleEntityForEffect(defs, sa, Localizer.getInstance().getMessage("lblChooseDefenderToAttackWithCard", c.toString()), false); } else { defender = AbilityUtils.getDefinedPlayers(host, sa.getParam("CopyAttacking"), sa).get(0); if (sa.hasParam("ChoosePlayerOrPlaneswalker") && defender != null) { FCollectionView defs = game.getCombat().getDefendersControlledBy((Player) defender); - defender = c.getController().getController().chooseSingleEntityForEffect(defs, sa, Localizer.getInstance().getMessage("lblChooseDefenderToAttackWith") + " " + c + " {" + Localizer.getInstance().getMessage("lblDefender") + ": " + defender + "}", false); + defender = c.getController().getController().chooseSingleEntityForEffect(defs, sa, Localizer.getInstance().getMessage("lblChooseDefenderToAttackWithCard", c.toString()) + " {" + Localizer.getInstance().getMessage("lblDefender") + ": " + defender + "}", false); } } game.getCombat().addAttacker(copyInPlay, defender); @@ -244,7 +244,7 @@ public class CopyPermanentEffect extends SpellAbilityEffect { list = CardLists.getValidCards(list, sa.getParam("AttachedTo"), copyInPlay.getController(), copyInPlay); } if (!list.isEmpty()) { - Card attachedTo = activator.getController().chooseSingleEntityForEffect(list, sa, copyInPlay + " - " + Localizer.getInstance().getMessage("lblSelectACardAttachTo")); + Card attachedTo = activator.getController().chooseSingleEntityForEffect(list, sa, Localizer.getInstance().getMessage("lblSelectACardAttachSourceTo", copyInPlay.toString())); copyInPlay.attachToEntity(attachedTo); } else { diff --git a/forge-game/src/main/java/forge/game/ability/effects/CopySpellAbilityEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CopySpellAbilityEffect.java index 2e5288996f0..4333aae28e3 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CopySpellAbilityEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CopySpellAbilityEffect.java @@ -67,7 +67,7 @@ public class CopySpellAbilityEffect extends SpellAbilityEffect { } boolean isOptional = sa.hasParam("Optional"); - if (isOptional && !controller.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoyouWantCopyTheSpell") + " " + card + "?")) { + if (isOptional && !controller.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoyouWantCopyTheSpell", card.toString()))) { return; } @@ -85,7 +85,7 @@ public class CopySpellAbilityEffect extends SpellAbilityEffect { final int spellCount = Integer.parseInt(sa.getParam("CopyMultipleSpells")); for (int multi = 0; multi < spellCount && !tgtSpells.isEmpty(); multi++) { - String prompt = Localizer.getInstance().getMessage("lblSelectMultiSpellCopyToStack").replace("%d", Lang.getOrdinal(multi + 1)); + String prompt = Localizer.getInstance().getMessage("lblSelectMultiSpellCopyToStack", Lang.getOrdinal(multi + 1)); SpellAbility chosen = controller.getController().chooseSingleSpellForEffect(tgtSpells, sa, prompt, ImmutableMap.of()); SpellAbility copiedSpell = CardFactory.copySpellAbilityAndPossiblyHost(card, chosen.getHostCard(), chosen, true); diff --git a/forge-game/src/main/java/forge/game/ability/effects/CountersMoveEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CountersMoveEffect.java index d01f55be7ef..8bd8dd1fe81 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CountersMoveEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CountersMoveEffect.java @@ -110,11 +110,7 @@ public class CountersMoveEffect extends SpellAbilityEffect { // only select cards if the counterNum is any if (counterNum.equals("Any")) { - StringBuilder sb = new StringBuilder(); - - sb.append(Localizer.getInstance().getMessage("lblChooseTakeCountersCard").replace("%s", cType.getName())); - - srcCards = player.getController().chooseCardsForEffect(srcCards, sa, sb.toString(), 0, srcCards.size(), true); + srcCards = player.getController().chooseCardsForEffect(srcCards, sa, Localizer.getInstance().getMessage("lblChooseTakeCountersCard", cType.getName()), 0, srcCards.size(), true); } for (Card src : srcCards) { @@ -136,10 +132,7 @@ public class CountersMoveEffect extends SpellAbilityEffect { params.put("CounterType", cType); params.put("Source", src); params.put("Target", dest); - StringBuilder sb = new StringBuilder(); - sb.append(Localizer.getInstance().getMessage("lblTakeHowMany") + " ").append(cType.getName()); - sb.append(" " + Localizer.getInstance().getMessage("lblCountersFrom") + " ").append(src).append("?"); - cnum = player.getController().chooseNumber(sa, sb.toString(), 0, cmax, params); + cnum = player.getController().chooseNumber(sa, Localizer.getInstance().getMessage("lblTakeHowManyTargetCounterFromCard", cType.getName(), src.toString()), 0, cmax, params); } else { cnum = AbilityUtils.calculateAmount(host, counterNum, sa); } @@ -173,12 +166,8 @@ public class CountersMoveEffect extends SpellAbilityEffect { tgtCards = CardLists.getValidCards(tgtCards, sa.getParam("ValidDefined"), player, host, sa); if (counterNum.equals("Any")) { - StringBuilder sb = new StringBuilder(); - sb.append(Localizer.getInstance().getMessage("lblChooseCardToGet") + " ").append(cType.getName()); - sb.append(" " + Localizer.getInstance().getMessage("lblCountersFrom") + " ").append(source).append("."); - - tgtCards = player.getController().chooseCardsForEffect( - tgtCards, sa, sb.toString(), 0, tgtCards.size(), true); + tgtCards = player.getController().chooseCardsForEffect(tgtCards, sa, + Localizer.getInstance().getMessage("lblChooseCardToGetCountersFrom", cType.getName(), source.toString()), 0, tgtCards.size(), true); } boolean updateSource = false; @@ -202,9 +191,7 @@ public class CountersMoveEffect extends SpellAbilityEffect { params.put("CounterType", cType); params.put("Source", source); params.put("Target", cur); - StringBuilder sb = new StringBuilder(); - sb.append(Localizer.getInstance().getMessage("lblPutHowMany") + " ").append(cType.getName()).append(" " + Localizer.getInstance().getMessage("lblCountersOn") + " ").append(cur).append("?"); - int cnum = player.getController().chooseNumber(sa, sb.toString(), 0, source.getCounters(cType), params); + int cnum = player.getController().chooseNumber(sa, Localizer.getInstance().getMessage("lblPutHowManyTargetCounterOnCard", cType.getName(), cur.toString()), 0, source.getCounters(cType), params); if (cnum > 0) { source.subtractCounter(cType, cnum); @@ -262,10 +249,7 @@ public class CountersMoveEffect extends SpellAbilityEffect { params.put("CounterType", cType); params.put("Source", source); params.put("Target", cur); - StringBuilder sb = new StringBuilder(); - sb.append(Localizer.getInstance().getMessage("lblTakeHowMany") + " ").append(cType.getName()); - sb.append(" " + Localizer.getInstance().getMessage("lblCountersFrom") + " ").append(source).append("?"); - cntToMove = pc.chooseNumber(sa, sb.toString(), 0, cntToMove, params); + cntToMove = pc.chooseNumber(sa, Localizer.getInstance().getMessage("lblTakeHowManyTargetCounterFromCard", cType.getName(), source.toString()), 0, cntToMove, params); } if (source.getCounters(cType) >= cntToMove) { @@ -298,10 +282,8 @@ public class CountersMoveEffect extends SpellAbilityEffect { params.put("CounterType", chosenType); params.put("Source", source); params.put("Target", dest); - StringBuilder sb = new StringBuilder(); - sb.append(Localizer.getInstance().getMessage("lblTakeHowMany") + " ").append(chosenType.getName()).append(" " + Localizer.getInstance().getMessage("lblCounters") + "?"); - int chosenAmount = pc.chooseNumber( - sa, sb.toString(), 0, Math.min(tgtCounters.get(chosenType), cntToMove), params); + int chosenAmount = pc.chooseNumber(sa, Localizer.getInstance().getMessage("lblTakeHowManyTargetCounters", chosenType.getName()), + 0, Math.min(tgtCounters.get(chosenType), cntToMove), params); if (chosenAmount > 0) { dest.addCounter(chosenType, chosenAmount, player, true, table); diff --git a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java index bdb4eb95f3c..b4fd88d8ae5 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java @@ -236,7 +236,7 @@ public class CountersPutEffect extends SpellAbilityEffect { continue; } - String message = Localizer.getInstance().getMessage("lblDoYouWantPutTargetP1P1CountersOn").replace("%d", String.valueOf(counterAmount)) + " " + gameCard + " ?"; + String message = Localizer.getInstance().getMessage("lblDoYouWantPutTargetP1P1CountersOnCard", String.valueOf(counterAmount), gameCard.toString()); Player chooser = pc.chooseSingleEntityForEffect(activator.getOpponents(), sa, Localizer.getInstance().getMessage("lblChooseAnOpponent")); if (chooser.getController().confirmAction(sa, PlayerActionConfirmMode.Tribute, message)) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/CountersPutOrRemoveEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CountersPutOrRemoveEffect.java index b02f91f0c0d..61e89d134ec 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CountersPutOrRemoveEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CountersPutOrRemoveEffect.java @@ -102,7 +102,7 @@ public class CountersPutOrRemoveEffect extends SpellAbilityEffect { CounterType chosenType = pc.chooseCounterType(list, sa, prompt, params); params.put("CounterType", chosenType); - prompt = Localizer.getInstance().getMessage("lblWhatToDoWithTargetCounter").replace("%s", chosenType.getName()) + " "; + prompt = Localizer.getInstance().getMessage("lblWhatToDoWithTargetCounter", chosenType.getName()) + " "; Boolean putCounter = pc.chooseBinary(sa, prompt, BinaryChoiceType.AddOrRemove, params); if (putCounter) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/CountersRemoveEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CountersRemoveEffect.java index 7855b68162c..5698fb50bb0 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CountersRemoveEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CountersRemoveEffect.java @@ -130,10 +130,7 @@ public class CountersRemoveEffect extends SpellAbilityEffect { srcCards = game.getCardsIn(ZoneType.Battlefield); srcCards = CardLists.getValidCards(srcCards, sa.getParam("ValidSource"), player, card, sa); if (num.equals("Any")) { - StringBuilder sb = new StringBuilder(); - sb.append(Localizer.getInstance().getMessage("lblChooseCardtoTakeTargetCounters").replace("%s", counterType.getName())); - - srcCards = player.getController().chooseCardsForEffect(srcCards, sa, sb.toString(), 0, srcCards.size(), true); + srcCards = player.getController().chooseCardsForEffect(srcCards, sa, Localizer.getInstance().getMessage("lblChooseCardsToTakeTargetCounters", counterType.getName()), 0, srcCards.size(), true); } } else { srcCards = getTargetCards(sa); @@ -173,7 +170,7 @@ public class CountersRemoveEffect extends SpellAbilityEffect { Map params = Maps.newHashMap(); params.put("Target", gameCard); params.put("CounterType", type); - String title = Localizer.getInstance().getMessage("lblSelectRemoveCountersNumberOfTarget").replace("%s", type); + String title = Localizer.getInstance().getMessage("lblSelectRemoveCountersNumberOfTarget", type); cntToRemove = pc.chooseNumber(sa, title, 0, cntToRemove, params); } @@ -217,7 +214,7 @@ public class CountersRemoveEffect extends SpellAbilityEffect { String prompt = Localizer.getInstance().getMessage("lblSelectCountersTypeToRemove"); CounterType chosenType = pc.chooseCounterType( ImmutableList.copyOf(tgtCounters.keySet()), sa, prompt, params); - prompt = Localizer.getInstance().getMessage("lblSelectRemoveCountersNumberOfTarget").replace("%s", chosenType.getName()); + prompt = Localizer.getInstance().getMessage("lblSelectRemoveCountersNumberOfTarget", chosenType.getName()); int max = Math.min(cntToRemove, tgtCounters.get(chosenType)); params = Maps.newHashMap(); params.put("Target", entity); diff --git a/forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java index 0c537c98898..5ba5f4d8203 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java @@ -84,7 +84,7 @@ public class DamageDealEffect extends DamageBaseEffect { List tgts = getTargets(sa); if (sa.hasParam("OptionalDecider")) { Player decider = Iterables.getFirst(AbilityUtils.getDefinedPlayers(hostCard, sa.getParam("OptionalDecider"), sa), null); - if (decider != null && !decider.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoyouWantDealTargetDamageTo").replace("%d", String.valueOf(dmg)) + " " + tgts + " ?")) { + if (decider != null && !decider.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoyouWantDealTargetDamageToTarget", String.valueOf(dmg), tgts.toString()))) { return; } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java index 15099d80991..bac2d4a7887 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java @@ -222,17 +222,17 @@ public class DigEffect extends SpellAbilityEffect { } chooser.getController().endTempShowCards(); if (!movedCards.isEmpty()) { - game.getAction().reveal(movedCards, chooser, true, chooser + " " + Localizer.getInstance().getMessage("lblPicked") + " "); + game.getAction().reveal(movedCards, chooser, true, Localizer.getInstance().getMessage("lblPlayerPickedChosen", chooser.getName(), "")); } } else if (allButOne) { movedCards = new CardCollection(valid); String prompt; if (destZone2.equals(ZoneType.Library) && libraryPosition2 == 0) { - prompt = Localizer.getInstance().getMessage("lblChooseACardToLeaveTargetLibraryTop").replace("%s", "{player's}"); + prompt = Localizer.getInstance().getMessage("lblChooseACardToLeaveTargetLibraryTop", "{player's}"); } else { - prompt = Localizer.getInstance().getMessage("lblChooseACardLeaveTarget").replace("%s", "{player's}") + " " + destZone2.name(); + prompt = Localizer.getInstance().getMessage("lblChooseACardLeaveTargetZone", "{player's}", destZone2.name()); } Card chosen = chooser.getController().chooseSingleEntityForEffect(valid, delayedReveal, sa, prompt, false, p); @@ -246,12 +246,12 @@ public class DigEffect extends SpellAbilityEffect { if (sa.hasParam("PrimaryPrompt")) { prompt = sa.getParam("PrimaryPrompt"); } else { - prompt = Localizer.getInstance().getMessage("lblChooseCardsPutInto") + " " + destZone1.name(); + prompt = Localizer.getInstance().getMessage("lblChooseCardsPutIntoZone", destZone1.name()); if (destZone1.equals(ZoneType.Library)) { if (libraryPosition == -1) { - prompt = Localizer.getInstance().getMessage("lblChooseCardPutOnTargetLibarayBottom").replace("%s", "{player's}"); + prompt = Localizer.getInstance().getMessage("lblChooseCardPutOnTargetLibarayBottom", "{player's}"); } else if (libraryPosition == 0) { - prompt = Localizer.getInstance().getMessage("lblChooseCardPutOnTargetLibarayTop").replace("%s", "{player's}"); + prompt = Localizer.getInstance().getMessage("lblChooseCardPutOnTargetLibarayTop", "{player's}"); } } } @@ -276,10 +276,7 @@ public class DigEffect extends SpellAbilityEffect { } if (!changeValid.isEmpty() && !sa.hasParam("ExileFaceDown") && !sa.hasParam("NoReveal")) { - game.getAction().reveal(movedCards, chooser, true, - chooser + " " + Localizer.getInstance().getMessage("lblPicked") + " " + - (movedCards.size() == 1 ? Localizer.getInstance().getMessage("lblThisCard") : Localizer.getInstance().getMessage("lblTheseCards")) + - " " + Localizer.getInstance().getMessage("lblFrom") + " "); + game.getAction().reveal(movedCards, chooser, true, Localizer.getInstance().getMessage("lblPlayerPickedCardFrom", chooser.getName())); } } if (sa.hasParam("ForgetOtherRemembered")) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/DigMultipleEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DigMultipleEffect.java index b7afd1cc9cb..dfeccc06ade 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DigMultipleEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DigMultipleEffect.java @@ -82,8 +82,7 @@ public class DigMultipleEffect extends SpellAbilityEffect { CardCollection chosen = chooser.getController().chooseCardsForEffectMultiple(validMap, sa, Localizer.getInstance().getMessage("lblChooseCards")); if (!chosen.isEmpty()) { - game.getAction().reveal(chosen, chooser, true, - chooser + " " + Localizer.getInstance().getMessage("lblPicked") + " " + (chosen.size() == 1 ? Localizer.getInstance().getMessage("lblThisCard") : Localizer.getInstance().getMessage("lblTheseCards")) + " " + Localizer.getInstance().getMessage("lblFrom") + " "); + game.getAction().reveal(chosen, chooser, true, Localizer.getInstance().getMessage("lblPlayerPickedCardFrom", chooser.getName())); } for (Card c : chosen) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/DigUntilEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DigUntilEffect.java index 62b82dc6a44..dfa8b989fd5 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DigUntilEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DigUntilEffect.java @@ -160,7 +160,7 @@ public class DigUntilEffect extends SpellAbilityEffect { final Card c = itr.next(); final ZoneType origin = c.getZone().getZoneType(); if (optionalFound && !p.getController().confirmAction(sa, null, - Localizer.getInstance().getMessage("lblDoYouWantPutCardTo") + " " + foundDest.name() + "?")) { + Localizer.getInstance().getMessage("lblDoYouWantPutCardToZone", foundDest.name()))) { continue; } else { Card m = null; diff --git a/forge-game/src/main/java/forge/game/ability/effects/DiscardEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DiscardEffect.java index a44f1c6c6ad..cff66313247 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DiscardEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DiscardEffect.java @@ -206,7 +206,7 @@ public class DiscardEffect extends SpellAbilityEffect { if (!p.canDiscardBy(sa)) { continue; } - String message = Localizer.getInstance().getMessage("lblWouldYouLikeRandomDiscardTargetCard").replace("%d", String.valueOf(numCards)); + String message = Localizer.getInstance().getMessage("lblWouldYouLikeRandomDiscardTargetCard", String.valueOf(numCards)); boolean runDiscard = !sa.hasParam("Optional") || p.getController().confirmAction(sa, PlayerActionConfirmMode.Random, message); if (runDiscard) { @@ -326,8 +326,7 @@ public class DiscardEffect extends SpellAbilityEffect { } if (mode.startsWith("Reveal") ) { - p.getController().reveal(toBeDiscarded, ZoneType.Hand, p, - chooser + " " + Localizer.getInstance().getMessage("lblHasChosen") + " " + (toBeDiscarded.size() == 1 ? Localizer.getInstance().getMessage("lblThisCard") : Localizer.getInstance().getMessage("lblTheseCards")) + " " + Localizer.getInstance().getMessage("lblFrom") + " "); + p.getController().reveal(toBeDiscarded, ZoneType.Hand, p, Localizer.getInstance().getMessage("lblPlayerHasChosenCardsFrom", chooser.getName())); } for (Card card : toBeDiscarded) { if (card == null) { continue; } diff --git a/forge-game/src/main/java/forge/game/ability/effects/DrawEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DrawEffect.java index 9684f09190f..c1912191dad 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DrawEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DrawEffect.java @@ -50,7 +50,7 @@ public class DrawEffect extends SpellAbilityEffect { for (final Player p : getDefinedPlayersOrTargeted(sa)) { if ((tgt == null) || p.canBeTargetedBy(sa)) - if (optional && !p.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantDraw") + " " + Lang.nounWithAmount(numCards, " card") + "?")) + if (optional && !p.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantDrawCards", Lang.nounWithAmount(numCards, " card")))) continue; int actualNum = numCards; diff --git a/forge-game/src/main/java/forge/game/ability/effects/EncodeEffect.java b/forge-game/src/main/java/forge/game/ability/effects/EncodeEffect.java index 550b77e7711..89b6344abdd 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/EncodeEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/EncodeEffect.java @@ -45,9 +45,7 @@ public class EncodeEffect extends SpellAbilityEffect { // Handle choice of whether or not to encoded - final StringBuilder sb = new StringBuilder(); - sb.append(Localizer.getInstance().getMessage("lblDoYouWantExile") + " ").append(host).append(" " + Localizer.getInstance().getMessage("lblAndEncodeOntoAYouControlCreature")); - if (!player.getController().confirmAction(sa, null, sb.toString())) { + if (!player.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantExileCardAndEncodeOntoYouCreature", host.toString()))) { return; } @@ -58,11 +56,11 @@ public class EncodeEffect extends SpellAbilityEffect { Card choice = player.getController().chooseSingleEntityForEffect(choices, sa, Localizer.getInstance().getMessage("lblChooseACreatureYouControlToEncode") + " ", true); if (choice == null) { - return; + return; } StringBuilder codeLog = new StringBuilder(); - codeLog.append(Localizer.getInstance().getMessage("lblEncoding") + " ").append(host.toString()).append(" " + Localizer.getInstance().getMessage("lblTo") + " ").append(choice.toString()); + codeLog.append("Encoding ").append(host.toString()).append(" to ").append(choice.toString()); game.getGameLog().add(GameLogEntryType.STACK_RESOLVE, codeLog.toString()); // store hostcard in encoded array diff --git a/forge-game/src/main/java/forge/game/ability/effects/ManaEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ManaEffect.java index a4812c22ddc..b55bcc90385 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ManaEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ManaEffect.java @@ -112,7 +112,7 @@ public class ManaEffect extends SpellAbilityEffect { return; } - game.action.nofityOfValue(sa, card, activator + " " + Localizer.getInstance().getMessage("lblPicked") + " " + choiceString, activator); + game.action.nofityOfValue(sa, card, Localizer.getInstance().getMessage("lblPlayerPickedChosen", activator.getName(), choiceString), activator); abMana.setExpressChoice(choiceString.toString()); } } @@ -142,7 +142,7 @@ public class ManaEffect extends SpellAbilityEffect { } choice = MagicColor.toShortString(val); - game.action.nofityOfValue(sa, card, act + " " + Localizer.getInstance().getMessage("lblPicked") + " " + choice, act); + game.action.nofityOfValue(sa, card, Localizer.getInstance().getMessage("lblPlayerPickedChosen", act.getName(), choice), act); abMana.setExpressChoice(choice); } } @@ -173,7 +173,7 @@ public class ManaEffect extends SpellAbilityEffect { if (cs.isMonoColor()) sb.append(MagicColor.toShortString(s.getColorMask())); else /* (cs.isMulticolor()) */ { - byte chosenColor = sa.getActivatingPlayer().getController().chooseColor(Localizer.getInstance().getMessage("lblChooseSingleColorFrom") + " " + s.toString(), sa, cs); + byte chosenColor = sa.getActivatingPlayer().getController().chooseColor(Localizer.getInstance().getMessage("lblChooseSingleColorFromTarget", s.toString()), sa, cs); sb.append(MagicColor.toShortString(chosenColor)); } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/MillEffect.java b/forge-game/src/main/java/forge/game/ability/effects/MillEffect.java index 8fb24cf9163..e8e0079a9bb 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/MillEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/MillEffect.java @@ -40,7 +40,7 @@ public class MillEffect extends SpellAbilityEffect { for (final Player p : getTargetPlayers(sa)) { if (!sa.usesTargeting() || p.canBeTargetedBy(sa)) { if (sa.hasParam("Optional")) { - final String prompt = TextUtil.concatWithSpace(Localizer.getInstance().getMessage("lblDoYouWantPutLibraryCardsTo"), TextUtil.addSuffix(destination.toString(),"?")); + final String prompt = TextUtil.concatWithSpace(Localizer.getInstance().getMessage("lblDoYouWantPutLibraryCardsTo", destination.toString())); if (!p.getController().confirmAction(sa, null, prompt)) { continue; } diff --git a/forge-game/src/main/java/forge/game/ability/effects/MultiplePilesEffect.java b/forge-game/src/main/java/forge/game/ability/effects/MultiplePilesEffect.java index 7bc72c9142e..ec3de6b43eb 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/MultiplePilesEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/MultiplePilesEffect.java @@ -86,7 +86,7 @@ public class MultiplePilesEffect extends SpellAbilityEffect { for (int i = 1; i < piles; i++) { int size = pool.size(); - CardCollectionView pile = p.getController().chooseCardsForEffect(pool, sa, Localizer.getInstance().getMessage("lblChooseCardsInPile") + " " + i, 0, size, false); + CardCollectionView pile = p.getController().chooseCardsForEffect(pool, sa, Localizer.getInstance().getMessage("lblChooseCardsInTargetPile", String.valueOf(i)), 0, size, false); pileList.add(pile); pool.removeAll(pile); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java index 9d65e3a36a5..49c1fceccc3 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java @@ -3,7 +3,6 @@ package forge.game.ability.effects; import java.util.ArrayList; import java.util.List; -import forge.util.TextUtil; import org.apache.commons.lang3.StringUtils; import com.google.common.base.Predicate; @@ -163,7 +162,7 @@ public class PlayEffect extends SpellAbilityEffect { game.getAction().revealTo(tgtCard, activator); } - if (optional && !controller.getController().confirmAction(sa, null, TextUtil.concatWithSpace(Localizer.getInstance().getMessage("lblDoYouWantPlay"), TextUtil.addSuffix(tgtCard.toString(),"?")))) { + if (optional && !controller.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantPlayCard", tgtCard.toString()))) { if (wasFaceDown) { tgtCard.turnFaceDownNoUpdate(); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java index 9d81c13e010..3f46f2aebd4 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java @@ -328,7 +328,7 @@ public class PumpEffect extends SpellAbilityEffect { final String targets = Lang.joinHomogenous(tgtCards); final String message = sa.hasParam("OptionQuestion") ? TextUtil.fastReplace(sa.getParam("OptionQuestion"), "TARGETS", targets) - : TextUtil.concatNoSpace(Localizer.getInstance().getMessage("lblApplyPumpTo") + " ", targets, "?"); + : Localizer.getInstance().getMessage("lblApplyPumpToTarget", targets); if (!sa.getActivatingPlayer().getController().confirmAction(sa, null, message)) { return; diff --git a/forge-game/src/main/java/forge/game/ability/effects/RollPlanarDiceEffect.java b/forge-game/src/main/java/forge/game/ability/effects/RollPlanarDiceEffect.java index 5493a77bb34..6f71242efdd 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/RollPlanarDiceEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/RollPlanarDiceEffect.java @@ -26,7 +26,7 @@ public class RollPlanarDiceEffect extends SpellAbilityEffect { game.getPhaseHandler().incPlanarDiceRolledthisTurn(); } PlanarDice result = PlanarDice.roll(activator, null); - String message = activator.getName() + " " + Localizer.getInstance().getMessage("lblRolled") + " " + result.toString(); + String message = Localizer.getInstance().getMessage("lblPlayerRolledResult", activator.getName(), result.toString()); game.getAction().nofityOfValue(sa, activator, message, null); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/RunSVarAbilityEffect.java b/forge-game/src/main/java/forge/game/ability/effects/RunSVarAbilityEffect.java index e812e83a209..ab24cfa830d 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/RunSVarAbilityEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/RunSVarAbilityEffect.java @@ -18,14 +18,14 @@ public class RunSVarAbilityEffect extends SpellAbilityEffect { String sVars = sa.getParam("SVars"); List cards = getTargetCards(sa); if (sVars == null || cards.isEmpty()) { - return; + return; } List validSA = new ArrayList<>(); final boolean isTrigger = sa.hasParam("IsTrigger"); for (final Card tgtC : cards) { if (!tgtC.hasSVar(sVars)) { - continue; - } + continue; + } final SpellAbility actualSA = AbilityFactory.getAbility(tgtC.getSVar(sVars), tgtC); actualSA.setTrigger(isTrigger); actualSA.setActivatingPlayer(sa.getActivatingPlayer()); diff --git a/forge-game/src/main/java/forge/game/ability/effects/SacrificeEffect.java b/forge-game/src/main/java/forge/game/ability/effects/SacrificeEffect.java index b5411646c17..f4a84e42a43 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/SacrificeEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/SacrificeEffect.java @@ -157,21 +157,21 @@ public class SacrificeEffect extends SpellAbilityEffect { game.getTriggerHandler().runTrigger(TriggerType.Exploited, runParams, false); } if (wasDestroyed || wasSacrificed) { - countSacrificed++; - if (remSacrificed) { - card.addRemembered(lKICopy); - } + countSacrificed++; + if (remSacrificed) { + card.addRemembered(lKICopy); + } } } } if (remSVar != null) { - card.setSVar(remSVar, String.valueOf(countSacrificed)); - SpellAbility root = sa; - do { - root.setSVar(remSVar, String.valueOf(countSacrificed)); - root = root.getSubAbility(); - } while (root != null); + card.setSVar(remSVar, String.valueOf(countSacrificed)); + SpellAbility root = sa; + do { + root.setSVar(remSVar, String.valueOf(countSacrificed)); + root = root.getSubAbility(); + } while (root != null); } } @@ -194,10 +194,10 @@ public class SacrificeEffect extends SpellAbilityEffect { final int amount = AbilityUtils.calculateAmount(sa.getHostCard(), num, sa); if (valid.equals("Self")) { - sb.append(Localizer.getInstance().getMessage("lblSacrifice") + " ").append(sa.getHostCard().toString()); + sb.append("Sacrifices ").append(sa.getHostCard().toString()); } else if (valid.equals("Card.AttachedBy")) { final Card toSac = sa.getHostCard().getEnchantingCard(); - sb.append(toSac.getController()).append(" " + Localizer.getInstance().getMessage("lblSacrifice") + " ").append(toSac).append("."); + sb.append(toSac.getController()).append(" Sacrifices ").append(toSac).append("."); } else { for (final Player p : tgts) { sb.append(p.getName()).append(" "); @@ -209,9 +209,9 @@ public class SacrificeEffect extends SpellAbilityEffect { } if (sa.hasParam("Destroy")) { - sb.append(Localizer.getInstance().getMessage("lblDestroys") + " "); + sb.append("Destroys "); } else { - sb.append(Localizer.getInstance().getMessage("lblSacrifice") + " "); + sb.append("Sacrifices "); } sb.append(amount).append(" ").append(msg).append("."); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/ScryEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ScryEffect.java index aeb03cb8d95..a0436020c2f 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ScryEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ScryEffect.java @@ -42,10 +42,10 @@ public class ScryEffect extends SpellAbilityEffect { // Optional here for spells that have optional multi-player scrying for (final Player p : getTargetPlayers(sa)) { - if ( (!sa.usesTargeting() || p.canBeTargetedBy(sa)) && - (!isOptional || p.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWanttoScry"))) ) { - players.add(p); - } + if ( (!sa.usesTargeting() || p.canBeTargetedBy(sa)) && + (!isOptional || p.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWanttoScry"))) ) { + players.add(p); + } } sa.getActivatingPlayer().getGame().getAction().scry(players, num, sa); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/ShuffleEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ShuffleEffect.java index 1b5b4514920..b774c93d2d2 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ShuffleEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ShuffleEffect.java @@ -21,7 +21,7 @@ public class ShuffleEffect extends SpellAbilityEffect { for (final Player p : tgtPlayers) { if ((tgt == null) || p.canBeTargetedBy(sa)) { - boolean mustShuffle = !optional || sa.getActivatingPlayer().getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblHaveTargetShuffle").replace("%s", p + "")); + boolean mustShuffle = !optional || sa.getActivatingPlayer().getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblHaveTargetShuffle", p.getName())); if (mustShuffle) p.shuffle(sa); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/TapOrUntapEffect.java b/forge-game/src/main/java/forge/game/ability/effects/TapOrUntapEffect.java index 872cb003a21..c70faeb6390 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/TapOrUntapEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/TapOrUntapEffect.java @@ -39,7 +39,7 @@ public class TapOrUntapEffect extends SpellAbilityEffect { for (final Card tgtC : tgtCards) { if (tgtC.isInPlay() && ((tgt == null) || tgtC.canBeTargetedBy(sa))) { // If the effected card is controlled by the same controller of the SA, default to untap. - boolean tap = pc.chooseBinary(sa, Localizer.getInstance().getMessage("lblTapOrUntap") + " " + tgtC + "?", PlayerController.BinaryChoiceType.TapOrUntap, + boolean tap = pc.chooseBinary(sa, Localizer.getInstance().getMessage("lblTapOrUntapTarget", tgtC), PlayerController.BinaryChoiceType.TapOrUntap, !tgtC.getController().equals(sa.getActivatingPlayer()) ); if (tap) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/TokenEffect.java b/forge-game/src/main/java/forge/game/ability/effects/TokenEffect.java index 76dcdbbd966..38d780d8b9f 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/TokenEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/TokenEffect.java @@ -480,7 +480,7 @@ public class TokenEffect extends SpellAbilityEffect { // into battlefield attacking only should work if you are the attacking player if (combat.getAttackingPlayer().equals(controller)) { final FCollectionView defs = combat.getDefenders(); - final GameEntity defender = controller.getController().chooseSingleEntityForEffect(defs, sa, Localizer.getInstance().getMessage("lblChooseDefenderToAttackWith") + " " + c, false); + final GameEntity defender = controller.getController().chooseSingleEntityForEffect(defs, sa, Localizer.getInstance().getMessage("lblChooseDefenderToAttackWithCard", c.toString()), false); combat.addAttacker(c, defender); combatChanged = true; }