diff --git a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java index da73cbaba50..d05e918d042 100644 --- a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java +++ b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java @@ -588,8 +588,7 @@ public class PlayerControllerAi extends PlayerController { } @Override - public String chooseSector(Card assignee, String ai) { - final List sectors = Arrays.asList("Alpha", "Beta", "Gamma"); + public String chooseSector(Card assignee, String ai, List sectors) { return Aggregates.random(sectors); } diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index 76be99b3bc7..f2e6b62f67f 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -1583,9 +1583,10 @@ public class GameAction { String sector = p.getController().chooseSector(assignee, "Assign"); assignee.assignSector(sector); if (sb.length() == 0) { - sb.append(p).append(" assigns:\n"); + sb.append(p).append(" ").append(Localizer.getInstance().getMessage("lblAssigns")).append("\n"); } - sb.append(assignee).append(" ").append(sector).append("\n"); + String creature = CardTranslation.getTranslatedName(assignee.getName()) + " (" + assignee.getId() + ")"; + sb.append(creature).append(" ").append(sector).append("\n"); } if (sb.length() > 0) { notifyOfValue(null, p, sb.toString(), p); diff --git a/forge-game/src/main/java/forge/game/player/PlayerController.java b/forge-game/src/main/java/forge/game/player/PlayerController.java index cfc676e22d0..ae46721fbb5 100644 --- a/forge-game/src/main/java/forge/game/player/PlayerController.java +++ b/forge-game/src/main/java/forge/game/player/PlayerController.java @@ -1,5 +1,6 @@ package forge.game.player; +import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.Map; @@ -183,7 +184,11 @@ public abstract class PlayerController { return chooseSomeType(kindOfType, sa, validTypes, invalidTypes, false); } - public abstract String chooseSector(Card assignee, String ai); + public abstract String chooseSector(Card assignee, String ai, List sectors); + public final String chooseSector(Card assignee, String ai) { + final List sectors = Arrays.asList("Alpha", "Beta", "Gamma"); + return chooseSector(assignee, ai, sectors); + } public abstract Object vote(SpellAbility sa, String prompt, List options, ListMultimap votes, Player forPlayer); diff --git a/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java b/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java index a840a5f1189..11a54ec0284 100644 --- a/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java +++ b/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java @@ -494,8 +494,7 @@ public class PlayerControllerForTests extends PlayerController { } @Override - public String chooseSector(Card assignee, String ai) { - final List sectors = Arrays.asList("Alpha", "Beta", "Gamma"); + public String chooseSector(Card assignee, String ai, List sectors) { return chooseItem(sectors); } diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index fc27f0766f0..2521d0b4b6f 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -1231,6 +1231,8 @@ lblSelectANumber=Wähle eine Zahl lblCut=Ausschneiden lblCopy=Kopieren lblPaste=Einfügen +#GameAction.java +lblAssigns=assigns: #ListChooser.java lblSearch=Suche #InputBase.java @@ -1342,6 +1344,8 @@ lblThereNoCardInPlayerZone=Es sind kein Karten in {0} {1} lblPutCardsOnTheTopLibraryOrGraveyard=Lege {0} oben auf Bibliothek oder Friedhof? lblLibrary=Bibliothek lblGraveyard=Friedhof +lblAssignSectorCreature=Assign {0} to a sector +lblChooseSectorEffect=Choose a sector lblTop=Oben drauf lblBottom=Unten drunter lblNColorManaFromCard={0} {1} Mana von {2} diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index 4b2dc10895b..e9269222560 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -1232,6 +1232,8 @@ lblSelectANumber=Select a number lblCut=Cut lblCopy=Copy lblPaste=Paste +#GameAction.java +lblAssigns=assigns: #ListChooser.java lblSearch=Search #InputBase.java @@ -1344,6 +1346,8 @@ lblThereNoCardInPlayerZone=There are no cards in {0} {1} lblPutCardsOnTheTopLibraryOrGraveyard=Put {0} on the top of library or graveyard? lblLibrary=Library lblGraveyard=Graveyard +lblAssignSectorCreature=Assign {0} to a sector +lblChooseSectorEffect=Choose a sector lblTop=Top lblBottom=Bottom lblNColorManaFromCard={0} {1} mana from {2} diff --git a/forge-gui/res/languages/es-ES.properties b/forge-gui/res/languages/es-ES.properties index f9f5d7a844b..3a44b8672fb 100644 --- a/forge-gui/res/languages/es-ES.properties +++ b/forge-gui/res/languages/es-ES.properties @@ -1231,6 +1231,8 @@ lblSelectANumber=Selecciona un número lblCut=Cortar lblCopy=Copiar lblPaste=Pegar +#GameAction.java +lblAssigns=assigns: #ListChooser.java lblSearch=Buscar #InputBase.java @@ -1342,6 +1344,8 @@ lblThereNoCardInPlayerZone=No hay cartas en {0} {1} lblPutCardsOnTheTopLibraryOrGraveyard=¿Poner {0} en la parte superior de la biblioteca o en el cementerio? lblLibrary=Biblioteca lblGraveyard=Cementerio +lblAssignSectorCreature=Assign {0} to a sector +lblChooseSectorEffect=Choose a sector lblTop=Superior lblBottom=Fondo lblNColorManaFromCard={0} {1} maná de {2} diff --git a/forge-gui/res/languages/fr-FR.properties b/forge-gui/res/languages/fr-FR.properties index 909101ea843..2812e845073 100644 --- a/forge-gui/res/languages/fr-FR.properties +++ b/forge-gui/res/languages/fr-FR.properties @@ -1233,6 +1233,8 @@ lblSelectANumber=Sélectionner un numéro lblCut=Couper lblCopy=Copier lblPaste=Coller +#GameAction.java +lblAssigns=assigns: #ListChooser.java lblSearch=Rechercher #InputBase.java diff --git a/forge-gui/res/languages/it-IT.properties b/forge-gui/res/languages/it-IT.properties index 0529e866d8c..f6fa83c9c3c 100644 --- a/forge-gui/res/languages/it-IT.properties +++ b/forge-gui/res/languages/it-IT.properties @@ -1230,6 +1230,8 @@ lblSelectANumber=Seleziona un numero lblCut=Taglia lblCopy=Copia lblPaste=Incolla +#GameAction.java +lblAssigns=assigns: #ListChooser.java lblSearch=Ricerca #InputBase.java @@ -1342,6 +1344,8 @@ lblThereNoCardInPlayerZone=Non ci sono carte in {0} {1} lblPutCardsOnTheTopLibraryOrGraveyard=Metti {0} in cima al grimorio o nel cimitero? lblLibrary=Grimorio lblGraveyard=Cimitero +lblAssignSectorCreature=Assign {0} to a sector +lblChooseSectorEffect=Choose a sector lblTop=Cima lblBottom=Fondo lblNColorManaFromCard={0} {1} mana da {2} diff --git a/forge-gui/res/languages/ja-JP.properties b/forge-gui/res/languages/ja-JP.properties index fecd6c619c6..b44bcc55617 100644 --- a/forge-gui/res/languages/ja-JP.properties +++ b/forge-gui/res/languages/ja-JP.properties @@ -1232,6 +1232,8 @@ lblSelectANumber=数字を選択してください lblCut=切り取り lblCopy=コピー lblPaste=貼り付け +#GameAction.java +lblAssigns=assigns: #ListChooser.java lblSearch=検索 #InputBase.java @@ -1343,6 +1345,8 @@ lblThereNoCardInPlayerZone={0} {1}にカードがありません lblPutCardsOnTheTopLibraryOrGraveyard=ライブラリまたは墓地の一番上に{0}を置きますか? lblLibrary=ライブラリー lblGraveyard=墓地 +lblAssignSectorCreature=Assign {0} to a sector +lblChooseSectorEffect=Choose a sector lblTop=タップ lblBottom=ボトム lblNColorManaFromCard={2}から {0} {1} のマナ diff --git a/forge-gui/res/languages/pt-BR.properties b/forge-gui/res/languages/pt-BR.properties index 15be37a0af0..1f03e60e6e5 100644 --- a/forge-gui/res/languages/pt-BR.properties +++ b/forge-gui/res/languages/pt-BR.properties @@ -1260,6 +1260,8 @@ lblSelectANumber=Selecione um número lblCut=Cortar lblCopy=Copiar lblPaste=Colar +#GameAction.java +lblAssigns=assigns: #ListChooser.java lblSearch=Buscar #InputBase.java @@ -1373,6 +1375,8 @@ lblThereNoCardInPlayerZone=Sem cartas em {0} {1} lblPutCardsOnTheTopLibraryOrGraveyard=Colocar {0} no topo do grimório ou cemitério? lblLibrary=Grimório lblGraveyard=Cemitério +lblAssignSectorCreature=Assign {0} to a sector +lblChooseSectorEffect=Choose a sector lblTop=Topo lblBottom=Fundo lblNColorManaFromCard={0} {1} mana de {2} diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties index be0a39cba5c..c03c1f1dcf7 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -1232,6 +1232,8 @@ lblSelectANumber=选择一个数 lblCut=剪切 lblCopy=复制 lblPaste=粘贴 +#GameAction.java +lblAssigns=assigns: #ListChooser.java lblSearch=搜索 #InputBase.java @@ -1344,6 +1346,8 @@ lblThereNoCardInPlayerZone={0}的{1}中没有牌 lblPutCardsOnTheTopLibraryOrGraveyard=将{0}放到牌库顶还是坟场? lblLibrary=牌库 lblGraveyard=坟场 +lblAssignSectorCreature=Assign {0} to a sector +lblChooseSectorEffect=Choose a sector lblTop=顶 lblBottom=底 lblNColorManaFromCard={2}产{0}个{1}法术力 diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java index cf4ed75f2c2..f1b1b785153 100644 --- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java +++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java @@ -1365,12 +1365,13 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont } @Override - public String chooseSector(Card assignee, String ai) { - final List sectors = Arrays.asList("Alpha", "Beta", "Gamma"); - // turn this into two separate localized prompts - String prompt = "Choose sector"; + public String chooseSector(Card assignee, String ai, List sectors) { + String prompt; if (assignee != null) { - prompt = prompt + " for " + assignee; + String creature = CardTranslation.getTranslatedName(assignee.getName()) + " (" + assignee.getId() + ")"; + prompt = Localizer.getInstance().getMessage("lblAssignSectorCreature", creature); + } else { + prompt = Localizer.getInstance().getMessage("lblChooseSectorEffect"); } return getGui().one(prompt, sectors); }