From 0b37b4e54340ee0a64ffa407a352fcf2a3ca9f00 Mon Sep 17 00:00:00 2001 From: klaxnek Date: Tue, 22 Oct 2019 14:20:46 +0200 Subject: [PATCH 01/20] Translate Stack text --- forge-gui-mobile/src/forge/screens/match/views/VStack.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/forge-gui-mobile/src/forge/screens/match/views/VStack.java b/forge-gui-mobile/src/forge/screens/match/views/VStack.java index 100b9cc46b2..0e1b41e1fce 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VStack.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VStack.java @@ -38,6 +38,7 @@ import forge.toolbox.FDisplayObject; import forge.toolbox.FEvent; import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FLabel; +import forge.util.Localizer; import forge.util.collect.FCollectionView; import forge.util.Utils; @@ -98,7 +99,7 @@ public class VStack extends FDropDown { if (stackSize != stack.size()) { int oldStackSize = stackSize; stackSize = stack.size(); - getMenuTab().setText("Stack (" + stackSize + ")"); + getMenuTab().setText(Localizer.getInstance().getMessage("lblStack") + " (" + stackSize + ")"); if (stackSize > 0) { if (!isVisible()) { From b9c65fb8ee77e9a0df22f01c756c60257b7243ba Mon Sep 17 00:00:00 2001 From: klaxnek Date: Tue, 22 Oct 2019 14:22:03 +0200 Subject: [PATCH 02/20] Translated Empty (Stack) --- forge-gui-mobile/src/forge/screens/match/views/VStack.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui-mobile/src/forge/screens/match/views/VStack.java b/forge-gui-mobile/src/forge/screens/match/views/VStack.java index 0e1b41e1fce..d37c64f4c8c 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VStack.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VStack.java @@ -134,7 +134,7 @@ public class VStack extends FDropDown { final FCollectionView stack = MatchController.instance.getGameView().getStack(); if (stack.isEmpty()) { //show label if stack empty - FLabel label = add(new FLabel.Builder().text("[Empty]").font(FONT).align(Align.center).build()); + FLabel label = add(new FLabel.Builder().text("[" + Localizer.getInstance().getMessage("lblEmpty") + "]").font(FONT).align(Align.center).build()); float height = Math.round(label.getAutoSizeBounds().height) + 2 * PADDING; label.setBounds(x, y, width, height); From bbd2940b63eba78099d7e1aa137a3a28f5d894f0 Mon Sep 17 00:00:00 2001 From: klaxnek Date: Tue, 22 Oct 2019 14:40:03 +0200 Subject: [PATCH 03/20] Translated scry log --- .../src/main/java/forge/game/GameLogFormatter.java | 11 +++++------ forge-gui/res/languages/de-DE.properties | 6 +++++- forge-gui/res/languages/en-US.properties | 6 +++++- forge-gui/res/languages/es-ES.properties | 6 +++++- forge-gui/res/languages/zh-CN.properties | 6 +++++- 5 files changed, 25 insertions(+), 10 deletions(-) diff --git a/forge-game/src/main/java/forge/game/GameLogFormatter.java b/forge-game/src/main/java/forge/game/GameLogFormatter.java index 0e100e9db4f..bbb53376148 100644 --- a/forge-game/src/main/java/forge/game/GameLogFormatter.java +++ b/forge-game/src/main/java/forge/game/GameLogFormatter.java @@ -33,11 +33,11 @@ import forge.game.player.RegisteredPlayer; import forge.game.spellability.TargetChoices; import forge.game.zone.ZoneType; import forge.util.Lang; +import forge.util.Localizer; import forge.util.maps.MapOfLists; public class GameLogFormatter extends IGameEventVisitor.Base { private final GameLog log; - public GameLogFormatter(GameLog gameLog) { log = gameLog; } @@ -52,16 +52,15 @@ public class GameLogFormatter extends IGameEventVisitor.Base { @Override public GameLogEntry visit(GameEventScry ev) { + final Localizer localizer = Localizer.getInstance(); String scryOutcome = ""; - String toTop = Lang.nounWithAmount(ev.toTop, "card") + " to the top of the library"; - String toBottom = Lang.nounWithAmount(ev.toBottom, "card") + " to the bottom of the library"; if (ev.toTop > 0 && ev.toBottom > 0) { - scryOutcome = ev.player.toString() + " scried " + toTop + " and " + toBottom; + scryOutcome = localizer.getMessage("lblLogScryTopBottomLibrary").replace("%s", ev.player.toString()).replace("%top", String.valueOf(ev.toTop)).replace("%bottom", String.valueOf(ev.toBottom)); } else if (ev.toBottom == 0) { - scryOutcome = ev.player.toString() + " scried " + toTop; + scryOutcome = localizer.getMessage("lblLogScryTopLibrary").replace("%s", ev.player.toString()).replace("%top", String.valueOf(ev.toTop)); } else { - scryOutcome = ev.player.toString() + " scried " + toBottom; + scryOutcome = localizer.getMessage("lblLogScryBottomLibrary").replace("%s", ev.player.toString()).replace("%bottom", String.valueOf(ev.toBottom)); } return new GameLogEntry(GameLogEntryType.STACK_RESOLVE, scryOutcome); diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index 8c1a97153cd..a115720a09e 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -1201,4 +1201,8 @@ lblPuzzleText1=Puzzle Mode loads in a puzzle that you have to win in a predeterm lblPuzzleText2=To begin, press the Start button below, then select a puzzle from a list. lblPuzzleText3=Your objective will be displayed in a pop-up window when the puzzle starts and also specified on a special effect card which will be placed in your command zone. lblChooseAPuzzle=Choose a puzzle -lblLoadingThePuzzle=Loading the puzzle... \ No newline at end of file +lblLoadingThePuzzle=Loading the puzzle... +#GameLogFormatter.java +lblLogScryTopBottomLibrary=%s scried %top card(s) to the top of the library and %bottom card(s) to the bottom of the library +lblLogScryTopLibrary=%s scried %top card(s) to the top of the library +lblLogScryBottomLibrary=%s scried %bottom card(s) to the bottom of the library \ No newline at end of file diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index c4e19660003..bfc2a56b1f2 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -1201,4 +1201,8 @@ lblPuzzleText1=Puzzle Mode loads in a puzzle that you have to win in a predeterm lblPuzzleText2=To begin, press the Start button below, then select a puzzle from a list. lblPuzzleText3=Your objective will be displayed in a pop-up window when the puzzle starts and also specified on a special effect card which will be placed in your command zone. lblChooseAPuzzle=Choose a puzzle -lblLoadingThePuzzle=Loading the puzzle... \ No newline at end of file +lblLoadingThePuzzle=Loading the puzzle... +#GameLogFormatter.java +lblLogScryTopBottomLibrary=%s scried %top card(s) to the top of the library and %bottom card(s) to the bottom of the library +lblLogScryTopLibrary=%s scried %top card(s) to the top of the library +lblLogScryBottomLibrary=%s scried %bottom card(s) to the bottom of the library \ No newline at end of file diff --git a/forge-gui/res/languages/es-ES.properties b/forge-gui/res/languages/es-ES.properties index 392ad81affe..9cdb7396d41 100644 --- a/forge-gui/res/languages/es-ES.properties +++ b/forge-gui/res/languages/es-ES.properties @@ -1201,4 +1201,8 @@ lblPuzzleText1=En el Modo Puzzle se carga un rompecabezas que tienes que ganar e lblPuzzleText2=Para comenzar, pulsa el botón Inicio y selecciona un puzzle de una lista. lblPuzzleText3=Tu objetivo se mostrará en una ventana emergente cuando se inicie el puzzle y también se especificará en una carta de efectos especiales que se colocará en tu zona de comandos. lblChooseAPuzzle=Elige un puzzle -lblLoadingThePuzzle=Cargando el puzzle... \ No newline at end of file +lblLoadingThePuzzle=Cargando el puzzle... +#GameLogFormatter.java +lblLogScryTopBottomLibrary=%s adivinó %top carta(s) de la parte superior de la biblioteca y %bottom carta(s) de la parte inferior de la biblioteca +lblLogScryTopLibrary=%s adivinó %top carta(s) de la parte superior de la biblioteca +lblLogScryBottomLibrary=%s adivinó %bottom carta(s) de la parte inferior de la biblioteca \ No newline at end of file diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties index 19fa169b2c9..9ec13e066ab 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -1201,4 +1201,8 @@ lblPuzzleText1=解谜模式会加载一个谜题,你必须在预定的时间/ lblPuzzleText2=首先,按下面的开始按钮,然后从列表中选择一个谜题。 lblPuzzleText3=当解谜开始的时候,该谜题的要求将会显示在弹窗中,并且还会在指挥官区域放置一张特殊效应卡指示这个谜题的要求。 lblChooseAPuzzle=选择一个谜题 -lblLoadingThePuzzle=加载新的谜题中 \ No newline at end of file +lblLoadingThePuzzle=加载新的谜题中 +#GameLogFormatter.java +lblLogScryTopBottomLibrary=%s scried %top card(s) to the top of the library and %bottom card(s) to the bottom of the library +lblLogScryTopLibrary=%s scried %top card(s) to the top of the library +lblLogScryBottomLibrary=%s scried %bottom card(s) to the bottom of the library \ No newline at end of file From 1497345a79905b0c3ca57d8f585ac906a5b05f61 Mon Sep 17 00:00:00 2001 From: klaxnek Date: Tue, 22 Oct 2019 20:29:50 +0200 Subject: [PATCH 04/20] Translate GameLogFormatter. Mulligan and didn't attack --- forge-game/src/main/java/forge/game/GameLogFormatter.java | 5 +++-- forge-gui/res/languages/de-DE.properties | 4 +++- forge-gui/res/languages/en-US.properties | 4 +++- forge-gui/res/languages/es-ES.properties | 4 +++- forge-gui/res/languages/zh-CN.properties | 4 +++- 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/forge-game/src/main/java/forge/game/GameLogFormatter.java b/forge-game/src/main/java/forge/game/GameLogFormatter.java index bbb53376148..1b5740fe138 100644 --- a/forge-game/src/main/java/forge/game/GameLogFormatter.java +++ b/forge-game/src/main/java/forge/game/GameLogFormatter.java @@ -217,6 +217,7 @@ public class GameLogFormatter extends IGameEventVisitor.Base { @Override public GameLogEntry visit(final GameEventAttackersDeclared ev) { final StringBuilder sb = new StringBuilder(); + final Localizer localizer = Localizer.getInstance(); // Loop through Defenders // Append Defending Player/Planeswalker @@ -232,7 +233,7 @@ public class GameLogFormatter extends IGameEventVisitor.Base { sb.append(" to attack ").append(k).append("."); } if (sb.length() == 0) { - sb.append(ev.player).append(" didn't attack this turn."); + sb.append(localizer.getMessage("lblPlayerDidntAttackThisTurn").replace("%s", ev.player.toString())); } return new GameLogEntry(GameLogEntryType.COMBAT, sb.toString()); } @@ -280,7 +281,7 @@ public class GameLogFormatter extends IGameEventVisitor.Base { @Override public GameLogEntry visit(GameEventMulligan ev) { - String message = ev.player.toString() + " has mulliganed down to " + ev.player.getZone(ZoneType.Hand).size() + " cards."; + String message = String.format(Localizer.getInstance().getMessage("lblPlayerHasMulliganedDownToNCards"), ev.player.getZone(ZoneType.Hand).size()).replace("%s", ev.player.toString()); return new GameLogEntry(GameLogEntryType.MULLIGAN, message); } diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index a115720a09e..a32adb7cd14 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -1205,4 +1205,6 @@ lblLoadingThePuzzle=Loading the puzzle... #GameLogFormatter.java lblLogScryTopBottomLibrary=%s scried %top card(s) to the top of the library and %bottom card(s) to the bottom of the library lblLogScryTopLibrary=%s scried %top card(s) to the top of the library -lblLogScryBottomLibrary=%s scried %bottom card(s) to the bottom of the library \ No newline at end of file +lblLogScryBottomLibrary=%s scried %bottom card(s) to the bottom of the library +lblPlayerHasMulliganedDownToNCards=%s has mulliganed down to %d cards. +lblPlayerDidntAttackThisTurn=%s didn't attack this turn. \ No newline at end of file diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index bfc2a56b1f2..aa41a81ee97 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -1205,4 +1205,6 @@ lblLoadingThePuzzle=Loading the puzzle... #GameLogFormatter.java lblLogScryTopBottomLibrary=%s scried %top card(s) to the top of the library and %bottom card(s) to the bottom of the library lblLogScryTopLibrary=%s scried %top card(s) to the top of the library -lblLogScryBottomLibrary=%s scried %bottom card(s) to the bottom of the library \ No newline at end of file +lblLogScryBottomLibrary=%s scried %bottom card(s) to the bottom of the library +lblPlayerHasMulliganedDownToNCards=%s has mulliganed down to %d cards. +lblPlayerDidntAttackThisTurn=%s didn't attack this turn. \ No newline at end of file diff --git a/forge-gui/res/languages/es-ES.properties b/forge-gui/res/languages/es-ES.properties index 9cdb7396d41..8696273b931 100644 --- a/forge-gui/res/languages/es-ES.properties +++ b/forge-gui/res/languages/es-ES.properties @@ -1205,4 +1205,6 @@ lblLoadingThePuzzle=Cargando el puzzle... #GameLogFormatter.java lblLogScryTopBottomLibrary=%s adivinó %top carta(s) de la parte superior de la biblioteca y %bottom carta(s) de la parte inferior de la biblioteca lblLogScryTopLibrary=%s adivinó %top carta(s) de la parte superior de la biblioteca -lblLogScryBottomLibrary=%s adivinó %bottom carta(s) de la parte inferior de la biblioteca \ No newline at end of file +lblLogScryBottomLibrary=%s adivinó %bottom carta(s) de la parte inferior de la biblioteca +lblPlayerHasMulliganedDownToNCards=%s ha hecho mulligan a %d cartas. +lblPlayerDidntAttackThisTurn=%s no atacó este turno. \ No newline at end of file diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties index 9ec13e066ab..95185183c98 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -1205,4 +1205,6 @@ lblLoadingThePuzzle=加载新的谜题中 #GameLogFormatter.java lblLogScryTopBottomLibrary=%s scried %top card(s) to the top of the library and %bottom card(s) to the bottom of the library lblLogScryTopLibrary=%s scried %top card(s) to the top of the library -lblLogScryBottomLibrary=%s scried %bottom card(s) to the bottom of the library \ No newline at end of file +lblLogScryBottomLibrary=%s scried %bottom card(s) to the bottom of the library +lblPlayerHasMulliganedDownToNCards=%s has mulliganed down to %d cards. +lblPlayerDidntAttackThisTurn=%s didn't attack this turn. \ No newline at end of file From cfc8b7fb2808acd8b98bace1636677eb84e8fa07 Mon Sep 17 00:00:00 2001 From: klaxnek Date: Tue, 22 Oct 2019 21:18:30 +0200 Subject: [PATCH 05/20] Mobile: Translate Minor things --- .../src/forge/itemmanager/filters/FormatFilter.java | 8 +++++--- .../itemmanager/filters/HistoricFormatSelect.java | 3 ++- .../src/forge/itemmanager/views/ImageView.java | 4 ++-- forge-gui/res/languages/de-DE.properties | 10 +++++++++- forge-gui/res/languages/en-US.properties | 10 +++++++++- forge-gui/res/languages/es-ES.properties | 10 +++++++++- forge-gui/res/languages/zh-CN.properties | 10 +++++++++- 7 files changed, 45 insertions(+), 10 deletions(-) diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/FormatFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/FormatFilter.java index fe9483f34cb..72eba51f635 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/FormatFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/FormatFilter.java @@ -19,6 +19,7 @@ import forge.toolbox.FGroupList; import forge.toolbox.FList; import forge.toolbox.FEvent.FEventHandler; import forge.util.Callback; +import forge.util.Localizer; import forge.util.TextUtil; import forge.util.Utils; @@ -40,13 +41,14 @@ public abstract class FormatFilter extends ItemFilter itemManager0) { super(itemManager0); + final Localizer localizer = Localizer.getInstance(); cbxFormats.setFont(FSkinFont.get(12)); - cbxFormats.addItem("All Sets/Formats"); + cbxFormats.addItem(localizer.getMessage("lblAllSetsFormats")); for (GameFormat format : FModel.getFormats().getFilterList()) { cbxFormats.addItem(format); } - cbxFormats.addItem("Other Formats..."); - cbxFormats.addItem("Choose Sets..."); + cbxFormats.addItem(localizer.getMessage("lblOtherFormats")); + cbxFormats.addItem(localizer.getMessage("lblChooseSets")); selectedFormat = cbxFormats.getText(); cbxFormats.setChangedHandler(new FEventHandler() { diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/HistoricFormatSelect.java b/forge-gui-mobile/src/forge/itemmanager/filters/HistoricFormatSelect.java index ad7831603fa..80bae301afb 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/HistoricFormatSelect.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/HistoricFormatSelect.java @@ -12,6 +12,7 @@ import forge.screens.settings.SettingsScreen; import forge.toolbox.FGroupList; import forge.toolbox.FList; import forge.util.Callback; +import forge.util.Localizer; import forge.util.Utils; import java.util.Arrays; @@ -32,7 +33,7 @@ public class HistoricFormatSelect extends FScreen { private Runnable onCloseCallBack; public HistoricFormatSelect() { - super("Choose Format"); + super(Localizer.getInstance().getMessage("lblChooseFormat")); for (GameFormat.FormatType group:GameFormat.FormatType.values()){ if (group == GameFormat.FormatType.Historic){ for (GameFormat.FormatSubType subgroup:GameFormat.FormatSubType.values()){ diff --git a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java index 6ab403d951f..9b58a934c94 100644 --- a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java +++ b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java @@ -144,8 +144,8 @@ public class ImageView extends ItemView { } } private final ExpandCollapseButton btnExpandCollapseAll = new ExpandCollapseButton(); - private final FComboBox cbGroupByOptions = new FComboBox<>("Groups: "); - private final FComboBox cbPileByOptions = new FComboBox<>("Piles: "); + private final FComboBox cbGroupByOptions = new FComboBox<>(Localizer.getInstance().getMessage("lblGroups") + " "); + private final FComboBox cbPileByOptions = new FComboBox<>(Localizer.getInstance().getMessage("lblPiles") + " "); public ImageView(ItemManager itemManager0, ItemManagerModel model0) { super(itemManager0, model0); diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index a32adb7cd14..53093558ab8 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -788,6 +788,8 @@ lblCollapseallgroups=Minimiere alle Gruppen lblGroupby=Gruppiere nach lblPileby=Stapel nach lblColumns=Spalten +lblPiles=Piles: +lblGroups=Groups: #CEditorVariant.java, CEditorConstructed.java lblCatalog=Katalog lblAdd=Hinzufügen @@ -1207,4 +1209,10 @@ lblLogScryTopBottomLibrary=%s scried %top card(s) to the top of the library and lblLogScryTopLibrary=%s scried %top card(s) to the top of the library lblLogScryBottomLibrary=%s scried %bottom card(s) to the bottom of the library lblPlayerHasMulliganedDownToNCards=%s has mulliganed down to %d cards. -lblPlayerDidntAttackThisTurn=%s didn't attack this turn. \ No newline at end of file +lblPlayerDidntAttackThisTurn=%s didn't attack this turn. +#FormatFilter.java +lblAllSetsFormats=All Sets/Formats +lblOtherFormats=Other Formats... +lblChooseSets=Choose Sets... +#HistoricFormatSelect.java +lblChooseFormat=Choose Format \ No newline at end of file diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index aa41a81ee97..b9336926727 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -788,6 +788,8 @@ lblCollapseallgroups=Collapse all groups lblGroupby=group by lblPileby=pile by lblColumns=Columns +lblPiles=Piles: +lblGroups=Groups: #CEditorVariant.java, CEditorConstructed.java lblCatalog=Catalog lblAdd=Add @@ -1207,4 +1209,10 @@ lblLogScryTopBottomLibrary=%s scried %top card(s) to the top of the library and lblLogScryTopLibrary=%s scried %top card(s) to the top of the library lblLogScryBottomLibrary=%s scried %bottom card(s) to the bottom of the library lblPlayerHasMulliganedDownToNCards=%s has mulliganed down to %d cards. -lblPlayerDidntAttackThisTurn=%s didn't attack this turn. \ No newline at end of file +lblPlayerDidntAttackThisTurn=%s didn't attack this turn. +#FormatFilter.java +lblAllSetsFormats=All Sets/Formats +lblOtherFormats=Other Formats... +lblChooseSets=Choose Sets... +#HistoricFormatSelect.java +lblChooseFormat=Choose Format \ No newline at end of file diff --git a/forge-gui/res/languages/es-ES.properties b/forge-gui/res/languages/es-ES.properties index 8696273b931..c5a3a087d55 100644 --- a/forge-gui/res/languages/es-ES.properties +++ b/forge-gui/res/languages/es-ES.properties @@ -788,6 +788,8 @@ lblCollapseallgroups=Contraer todos los grupos lblGroupby=agrupar por lblPileby=apilar por lblColumns=Columnas +lblPiles=Apilar: +lblGroups=Agrupar: #CEditorVariant.java, CEditorConstructed.java lblCatalog=Catálogo lblAdd=Añadir @@ -1207,4 +1209,10 @@ lblLogScryTopBottomLibrary=%s adivinó %top carta(s) de la parte superior de la lblLogScryTopLibrary=%s adivinó %top carta(s) de la parte superior de la biblioteca lblLogScryBottomLibrary=%s adivinó %bottom carta(s) de la parte inferior de la biblioteca lblPlayerHasMulliganedDownToNCards=%s ha hecho mulligan a %d cartas. -lblPlayerDidntAttackThisTurn=%s no atacó este turno. \ No newline at end of file +lblPlayerDidntAttackThisTurn=%s no atacó este turno. +#FormatFilter.java +lblAllSetsFormats=Todos los Sets/Formatos +lblOtherFormats=Otros Formatos... +lblChooseSets=Selecciona Sets... +#HistoricFormatSelect.java +lblChooseFormat=Selecciona Formato \ No newline at end of file diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties index 95185183c98..aaeb805b70e 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -788,6 +788,8 @@ lblCollapseallgroups=折叠所有组 lblGroupby=分组 lblPileby=堆积 lblColumns=行 +lblPiles=Piles: +lblGroups=Groups: #CEditorVariant.java, CEditorConstructed.java lblCatalog=目录 lblAdd=添加 @@ -1207,4 +1209,10 @@ lblLogScryTopBottomLibrary=%s scried %top card(s) to the top of the library and lblLogScryTopLibrary=%s scried %top card(s) to the top of the library lblLogScryBottomLibrary=%s scried %bottom card(s) to the bottom of the library lblPlayerHasMulliganedDownToNCards=%s has mulliganed down to %d cards. -lblPlayerDidntAttackThisTurn=%s didn't attack this turn. \ No newline at end of file +lblPlayerDidntAttackThisTurn=%s didn't attack this turn. +#FormatFilter.java +lblAllSetsFormats=All Sets/Formats +lblOtherFormats=Other Formats... +lblChooseSets=Choose Sets... +#HistoricFormatSelect.java +lblChooseFormat=Choose Format \ No newline at end of file From 63b6d665a19c7f05d03480a9a334cd2d8f0a810e Mon Sep 17 00:00:00 2001 From: klaxnek Date: Tue, 22 Oct 2019 21:22:40 +0200 Subject: [PATCH 06/20] Mobile: Merge duplicated case in switch (QuestDraft with Draft) --- forge-gui-mobile/src/forge/deck/FDeckEditor.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/forge-gui-mobile/src/forge/deck/FDeckEditor.java b/forge-gui-mobile/src/forge/deck/FDeckEditor.java index 4df93c636c4..04e6a421bab 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckEditor.java +++ b/forge-gui-mobile/src/forge/deck/FDeckEditor.java @@ -189,6 +189,7 @@ public class FDeckEditor extends TabPageScreen { new DeckSectionPage(DeckSection.Sideboard) }; case Draft: + case QuestDraft: return new DeckEditorPage[] { new DraftPackPage(), new DeckSectionPage(DeckSection.Main), @@ -231,12 +232,6 @@ public class FDeckEditor extends TabPageScreen { new DeckSectionPage(DeckSection.Main, ItemManagerConfig.QUEST_DECK_EDITOR), new DeckSectionPage(DeckSection.Sideboard, ItemManagerConfig.QUEST_DECK_EDITOR) }; - case QuestDraft: - return new DeckEditorPage[] { - new DraftPackPage(), - new DeckSectionPage(DeckSection.Main), - new DeckSectionPage(DeckSection.Sideboard, ItemManagerConfig.DRAFT_POOL) - }; case PlanarConquest: return new DeckEditorPage[] { new CatalogPage(ItemManagerConfig.CONQUEST_COLLECTION, localizer.getMessage("lblCollection"), FSkinImage.SPELLBOOK), From 408c9df2df972dfb70cbf8ff9d9559e1579608f9 Mon Sep 17 00:00:00 2001 From: klaxnek Date: Tue, 22 Oct 2019 21:24:13 +0200 Subject: [PATCH 07/20] Mobile: Merged duplicated switch --- forge-gui-mobile/src/forge/deck/FDeckEditor.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/forge-gui-mobile/src/forge/deck/FDeckEditor.java b/forge-gui-mobile/src/forge/deck/FDeckEditor.java index 04e6a421bab..5d62040ca72 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckEditor.java +++ b/forge-gui-mobile/src/forge/deck/FDeckEditor.java @@ -1736,6 +1736,7 @@ public class FDeckEditor extends TabPageScreen { DeckPreferences.setPlanarDeck(deckStr); break; case Draft: + case QuestDraft: DeckPreferences.setDraftDeck(deckStr); break; case Sealed: @@ -1745,10 +1746,6 @@ public class FDeckEditor extends TabPageScreen { FModel.getQuest().setCurrentDeck(model.toString()); FModel.getQuest().save(); break; - case QuestDraft: - FModel.getQuest().setCurrentDeck(model.toString()); - FModel.getQuest().save(); - break; default: break; } From 3369db81509ce92d497512e6e1dcdf6669ccb5be Mon Sep 17 00:00:00 2001 From: klaxnek Date: Tue, 22 Oct 2019 22:45:03 +0200 Subject: [PATCH 08/20] Translated Trigger Abilities (1) --- .../java/forge/game/GameLogFormatter.java | 2 +- .../java/forge/game/trigger/TriggerAdapt.java | 3 +- .../forge/game/trigger/TriggerAttached.java | 3 +- .../game/trigger/TriggerAttackerBlocked.java | 5 +- .../TriggerAttackerBlockedByCreature.java | 5 +- .../trigger/TriggerAttackerUnblocked.java | 3 +- .../trigger/TriggerAttackerUnblockedOnce.java | 5 +- .../trigger/TriggerAttackersDeclared.java | 3 +- .../forge/game/trigger/TriggerAttacks.java | 3 +- .../game/trigger/TriggerBecomeMonarch.java | 3 +- .../game/trigger/TriggerBecomeMonstrous.java | 3 +- .../game/trigger/TriggerBecomeRenowned.java | 3 +- .../game/trigger/TriggerBecomesTarget.java | 5 +- .../trigger/TriggerBecomesTargetOnce.java | 5 +- .../game/trigger/TriggerBlockersDeclared.java | 3 +- .../forge/game/trigger/TriggerBlocks.java | 3 +- .../forge/game/trigger/TriggerChampioned.java | 3 +- .../trigger/TriggerChangesController.java | 3 +- .../game/trigger/TriggerChangesZone.java | 3 +- .../game/trigger/TriggerChangesZoneAll.java | 3 +- .../game/trigger/TriggerCounterAdded.java | 3 +- .../game/trigger/TriggerCounterAddedAll.java | 3 +- .../game/trigger/TriggerCounterAddedOnce.java | 5 +- .../game/trigger/TriggerCounterRemoved.java | 3 +- .../trigger/TriggerCounterRemovedOnce.java | 5 +- .../forge/game/trigger/TriggerCountered.java | 5 +- .../forge/game/trigger/TriggerCrewed.java | 5 +- .../java/forge/game/trigger/TriggerPhase.java | 3 +- .../forge/itemmanager/views/ImageView.java | 2 +- .../forge/itemmanager/views/ItemListView.java | 3 +- forge-gui/res/languages/de-DE.properties | 16 +++++- forge-gui/res/languages/en-US.properties | 49 ++++++++++++++++++- forge-gui/res/languages/es-ES.properties | 49 ++++++++++++++++++- forge-gui/res/languages/zh-CN.properties | 16 +++++- 34 files changed, 193 insertions(+), 43 deletions(-) diff --git a/forge-game/src/main/java/forge/game/GameLogFormatter.java b/forge-game/src/main/java/forge/game/GameLogFormatter.java index 1b5740fe138..f244600cc88 100644 --- a/forge-game/src/main/java/forge/game/GameLogFormatter.java +++ b/forge-game/src/main/java/forge/game/GameLogFormatter.java @@ -281,7 +281,7 @@ public class GameLogFormatter extends IGameEventVisitor.Base { @Override public GameLogEntry visit(GameEventMulligan ev) { - String message = String.format(Localizer.getInstance().getMessage("lblPlayerHasMulliganedDownToNCards"), ev.player.getZone(ZoneType.Hand).size()).replace("%s", ev.player.toString()); + String message = Localizer.getInstance().getMessage("lblPlayerHasMulliganedDownToNCards").replace("%d", String.valueOf(ev.player.getZone(ZoneType.Hand).size())).replace("%s", ev.player.toString()); return new GameLogEntry(GameLogEntryType.MULLIGAN, message); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAdapt.java b/forge-game/src/main/java/forge/game/trigger/TriggerAdapt.java index c25347d75e4..81b8b35f765 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAdapt.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAdapt.java @@ -22,6 +22,7 @@ import java.util.Map; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; /** *

@@ -71,7 +72,7 @@ public class TriggerAdapt extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Adapt: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblAdapt")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAttached.java b/forge-game/src/main/java/forge/game/trigger/TriggerAttached.java index 49f264f48a6..08b18dcc290 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAttached.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAttached.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -83,7 +84,7 @@ public class TriggerAttached extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Attachee: ").append(sa.getTriggeringObject(AbilityKey.Target)); + sb.append(Localizer.getInstance().getMessage("lblAttachee")).append(": ").append(sa.getTriggeringObject(AbilityKey.Target)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlocked.java b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlocked.java index 4c00df15b1f..b77d0939526 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlocked.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlocked.java @@ -23,6 +23,7 @@ import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.card.CardLists; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; /** *

@@ -99,8 +100,8 @@ public class TriggerAttackerBlocked extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Attacker: ").append(sa.getTriggeringObject(AbilityKey.Attacker)).append(", "); - sb.append("Number Blockers: ").append(sa.getTriggeringObject(AbilityKey.NumBlockers)); + sb.append(Localizer.getInstance().getMessage("lblAttacker")).append(": ").append(sa.getTriggeringObject(AbilityKey.Attacker)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblNumberBlockers")).append(": ").append(sa.getTriggeringObject(AbilityKey.NumBlockers)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlockedByCreature.java b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlockedByCreature.java index 3b77fa06423..b8dad166edc 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlockedByCreature.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlockedByCreature.java @@ -22,6 +22,7 @@ import java.util.Map; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; /** *

@@ -95,8 +96,8 @@ public class TriggerAttackerBlockedByCreature extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Attacker: ").append(sa.getTriggeringObject(AbilityKey.Attacker)).append(", "); - sb.append("Blocker: ").append(sa.getTriggeringObject(AbilityKey.Blocker)); + sb.append(Localizer.getInstance().getMessage("lblAttacker")).append(": ").append(sa.getTriggeringObject(AbilityKey.Attacker)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblBlocker")).append(": ").append(sa.getTriggeringObject(AbilityKey.Blocker)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblocked.java b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblocked.java index 4236f7d8d36..9e201617e39 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblocked.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblocked.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -77,7 +78,7 @@ public class TriggerAttackerUnblocked extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Attacker: ").append(sa.getTriggeringObject(AbilityKey.Attacker)); + sb.append(Localizer.getInstance().getMessage("lblAttacker")).append(": ").append(sa.getTriggeringObject(AbilityKey.Attacker)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblockedOnce.java b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblockedOnce.java index edece275c05..b17acd00911 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblockedOnce.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblockedOnce.java @@ -21,6 +21,7 @@ import forge.game.GameEntity; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.List; import java.util.Map; @@ -92,8 +93,8 @@ public class TriggerAttackerUnblockedOnce extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("AttackingPlayer: ").append(sa.getTriggeringObject(AbilityKey.AttackingPlayer)); - sb.append("Defenders: ").append(sa.getTriggeringObject(AbilityKey.Defenders)); + sb.append(Localizer.getInstance().getMessage("lblAttackingPlayer")).append(": ").append(sa.getTriggeringObject(AbilityKey.AttackingPlayer)); + sb.append(Localizer.getInstance().getMessage("lblDefenders")).append(": ").append(sa.getTriggeringObject(AbilityKey.Defenders)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAttackersDeclared.java b/forge-game/src/main/java/forge/game/trigger/TriggerAttackersDeclared.java index 5c4cdf1f6cb..b50ee54a75f 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAttackersDeclared.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAttackersDeclared.java @@ -21,6 +21,7 @@ import forge.game.GameEntity; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.List; import java.util.Map; @@ -94,7 +95,7 @@ public class TriggerAttackersDeclared extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Number Attackers: ").append(sa.getTriggeringObject(AbilityKey.Attackers)); + sb.append(Localizer.getInstance().getMessage("lblNumberAttackers")).append(": ").append(sa.getTriggeringObject(AbilityKey.Attackers)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAttacks.java b/forge-game/src/main/java/forge/game/trigger/TriggerAttacks.java index 20612924991..5634b1f928f 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAttacks.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAttacks.java @@ -22,6 +22,7 @@ import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.player.Player; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.List; import java.util.Map; @@ -139,7 +140,7 @@ public class TriggerAttacks extends Trigger { public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Attacker: ").append(sa.getTriggeringObject(AbilityKey.Attacker)); + sb.append(Localizer.getInstance().getMessage("lblAttacker")).append(": ").append(sa.getTriggeringObject(AbilityKey.Attacker)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerBecomeMonarch.java b/forge-game/src/main/java/forge/game/trigger/TriggerBecomeMonarch.java index 8a631667503..85196ffcb2a 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerBecomeMonarch.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerBecomeMonarch.java @@ -6,6 +6,7 @@ import forge.game.Game; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; public class TriggerBecomeMonarch extends Trigger { @@ -42,7 +43,7 @@ public class TriggerBecomeMonarch extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Player: ").append(sa.getTriggeringObject(AbilityKey.Player)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblPlayer")).append(": ").append(sa.getTriggeringObject(AbilityKey.Player)).append(", "); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerBecomeMonstrous.java b/forge-game/src/main/java/forge/game/trigger/TriggerBecomeMonstrous.java index 0ee053f0c0f..172d04e2468 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerBecomeMonstrous.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerBecomeMonstrous.java @@ -22,6 +22,7 @@ import java.util.Map; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; /** *

@@ -72,7 +73,7 @@ public class TriggerBecomeMonstrous extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Monstrous: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblMonstrous")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerBecomeRenowned.java b/forge-game/src/main/java/forge/game/trigger/TriggerBecomeRenowned.java index 4a7f4fcbde4..fc4c62064cd 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerBecomeRenowned.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerBecomeRenowned.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -72,7 +73,7 @@ public class TriggerBecomeRenowned extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Renowned: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblRenowned")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerBecomesTarget.java b/forge-game/src/main/java/forge/game/trigger/TriggerBecomesTarget.java index bffe201de96..cb56d395650 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerBecomesTarget.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerBecomesTarget.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -96,8 +97,8 @@ public class TriggerBecomesTarget extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Source: ").append(((SpellAbility) sa.getTriggeringObject(AbilityKey.SourceSA)).getHostCard()).append(", "); - sb.append("Target: ").append(sa.getTriggeringObject(AbilityKey.Target)); + sb.append(Localizer.getInstance().getMessage("lblSource")).append(": ").append(((SpellAbility) sa.getTriggeringObject(AbilityKey.SourceSA)).getHostCard()).append(", "); + sb.append(Localizer.getInstance().getMessage("lblTarget")).append(": ").append(sa.getTriggeringObject(AbilityKey.Target)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerBecomesTargetOnce.java b/forge-game/src/main/java/forge/game/trigger/TriggerBecomesTargetOnce.java index 7e897aaf219..5c929279e64 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerBecomesTargetOnce.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerBecomesTargetOnce.java @@ -21,6 +21,7 @@ import forge.game.GameObject; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.List; import java.util.Map; @@ -88,8 +89,8 @@ public class TriggerBecomesTargetOnce extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Source: ").append(((SpellAbility) sa.getTriggeringObject(AbilityKey.SourceSA)).getHostCard()).append(", "); - sb.append("Targets: ").append(sa.getTriggeringObject(AbilityKey.Targets)); + sb.append(Localizer.getInstance().getMessage("lblSource")).append(": ").append(((SpellAbility) sa.getTriggeringObject(AbilityKey.SourceSA)).getHostCard()).append(", "); + sb.append(Localizer.getInstance().getMessage("lblTargets")).append(": ").append(sa.getTriggeringObject(AbilityKey.Targets)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerBlockersDeclared.java b/forge-game/src/main/java/forge/game/trigger/TriggerBlockersDeclared.java index e3beece4401..9a6ebdef762 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerBlockersDeclared.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerBlockersDeclared.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -59,7 +60,7 @@ public class TriggerBlockersDeclared extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Blockers: ").append(sa.getTriggeringObject(AbilityKey.Blockers)); + sb.append(Localizer.getInstance().getMessage("lblBlockers")).append(": ").append(sa.getTriggeringObject(AbilityKey.Blockers)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerBlocks.java b/forge-game/src/main/java/forge/game/trigger/TriggerBlocks.java index 88c4f98c98d..4c7d72c3b2e 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerBlocks.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerBlocks.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -96,7 +97,7 @@ public class TriggerBlocks extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Blocker: ").append(sa.getTriggeringObject(AbilityKey.Blocker)); + sb.append(Localizer.getInstance().getMessage("lblBlocker")).append(": ").append(sa.getTriggeringObject(AbilityKey.Blocker)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerChampioned.java b/forge-game/src/main/java/forge/game/trigger/TriggerChampioned.java index 0d8957a2cfc..53542cb8a5c 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerChampioned.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerChampioned.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -81,7 +82,7 @@ public class TriggerChampioned extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Championed: ").append(sa.getTriggeringObject(AbilityKey.Championed)); + sb.append(Localizer.getInstance().getMessage("lblChampioned")).append(": ").append(sa.getTriggeringObject(AbilityKey.Championed)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerChangesController.java b/forge-game/src/main/java/forge/game/trigger/TriggerChangesController.java index 44a8b0b4470..610da7e7dd2 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerChangesController.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerChangesController.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -80,7 +81,7 @@ public class TriggerChangesController extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Changed Controller: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblChangedController")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerChangesZone.java b/forge-game/src/main/java/forge/game/trigger/TriggerChangesZone.java index 145844de49d..3371d03c786 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerChangesZone.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerChangesZone.java @@ -30,6 +30,7 @@ import forge.util.Expressions; import java.util.Map; import java.util.Set; +import forge.util.Localizer; import org.apache.commons.lang3.ArrayUtils; import com.google.common.collect.Sets; @@ -219,7 +220,7 @@ public class TriggerChangesZone extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Zone Changer: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblZoneChanger")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerChangesZoneAll.java b/forge-game/src/main/java/forge/game/trigger/TriggerChangesZoneAll.java index f84c2e245d3..6d618f3d98a 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerChangesZoneAll.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerChangesZoneAll.java @@ -7,6 +7,7 @@ import forge.game.ability.AbilityKey; import forge.game.card.*; import forge.game.spellability.SpellAbility; import forge.game.zone.ZoneType; +import forge.util.Localizer; public class TriggerChangesZoneAll extends Trigger { @@ -34,7 +35,7 @@ public class TriggerChangesZoneAll extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Amount: ").append(sa.getTriggeringObject(AbilityKey.Amount)); + sb.append(Localizer.getInstance().getMessage("lblAmount")).append(": ").append(sa.getTriggeringObject(AbilityKey.Amount)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerCounterAdded.java b/forge-game/src/main/java/forge/game/trigger/TriggerCounterAdded.java index 5b305ab6e5e..5cc8c980b88 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerCounterAdded.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerCounterAdded.java @@ -25,6 +25,7 @@ import forge.game.card.CounterType; import forge.game.player.Player; import forge.game.spellability.SpellAbility; import forge.util.Expressions; +import forge.util.Localizer; /** *

@@ -127,7 +128,7 @@ public class TriggerCounterAdded extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Added once: "); + sb.append(Localizer.getInstance().getMessage("lblAddedOnce")).append(": "); if (sa.hasTriggeringObject(AbilityKey.Card)) sb.append(sa.getTriggeringObject(AbilityKey.Card)); if (sa.hasTriggeringObject(AbilityKey.Player)) diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerCounterAddedAll.java b/forge-game/src/main/java/forge/game/trigger/TriggerCounterAddedAll.java index d424c8557f3..e80579ae5ec 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerCounterAddedAll.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerCounterAddedAll.java @@ -9,6 +9,7 @@ import forge.game.GameEntityCounterTable; import forge.game.ability.AbilityKey; import forge.game.card.*; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; public class TriggerCounterAddedAll extends Trigger { @@ -41,7 +42,7 @@ public class TriggerCounterAddedAll extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Amount: ").append(sa.getTriggeringObject(AbilityKey.Amount)); + sb.append(Localizer.getInstance().getMessage("lblAmount")).append(": ").append(sa.getTriggeringObject(AbilityKey.Amount)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerCounterAddedOnce.java b/forge-game/src/main/java/forge/game/trigger/TriggerCounterAddedOnce.java index 0244c2f6785..8d349470a72 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerCounterAddedOnce.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerCounterAddedOnce.java @@ -24,6 +24,7 @@ import forge.game.card.Card; import forge.game.card.CounterType; import forge.game.player.Player; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; /** *

@@ -114,13 +115,13 @@ public class TriggerCounterAddedOnce extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Added once: "); + sb.append(Localizer.getInstance().getMessage("lblAddedOnce")).append(": "); if (sa.hasTriggeringObject(AbilityKey.Card)) sb.append(sa.getTriggeringObject(AbilityKey.Card)); if (sa.hasTriggeringObject(AbilityKey.Player)) sb.append(sa.getTriggeringObject(AbilityKey.Player)); - sb.append(" Amount: ").append(sa.getTriggeringObject(AbilityKey.Amount)); + sb.append(" ").append(Localizer.getInstance().getMessage("lblAmount")).append(": ").append(sa.getTriggeringObject(AbilityKey.Amount)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerCounterRemoved.java b/forge-game/src/main/java/forge/game/trigger/TriggerCounterRemoved.java index 5500950474c..a4c7209bfb9 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerCounterRemoved.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerCounterRemoved.java @@ -21,6 +21,7 @@ import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.card.CounterType; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -92,7 +93,7 @@ public class TriggerCounterRemoved extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Removed from: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblRemovedFrom")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerCounterRemovedOnce.java b/forge-game/src/main/java/forge/game/trigger/TriggerCounterRemovedOnce.java index 6cd69c88555..028751ebb00 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerCounterRemovedOnce.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerCounterRemovedOnce.java @@ -21,6 +21,7 @@ import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.card.CounterType; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -84,8 +85,8 @@ public class TriggerCounterRemovedOnce extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Removed from: ").append(sa.getTriggeringObject(AbilityKey.Card)); - sb.append(" Amount: ").append(sa.getTriggeringObject(AbilityKey.Amount)); + sb.append(Localizer.getInstance().getMessage("lblRemovedFrom")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(" ").append(Localizer.getInstance().getMessage("lblAmount")).append(": ").append(sa.getTriggeringObject(AbilityKey.Amount)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerCountered.java b/forge-game/src/main/java/forge/game/trigger/TriggerCountered.java index 0b79ca87704..db4bb45b006 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerCountered.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerCountered.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -108,8 +109,8 @@ public class TriggerCountered extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Countered: ").append(sa.getTriggeringObject(AbilityKey.Card)).append(", "); - sb.append("Cause: ").append(sa.getTriggeringObject(AbilityKey.Cause)); + sb.append(Localizer.getInstance().getMessage("lblCountered")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblCause")).append(": ").append(sa.getTriggeringObject(AbilityKey.Cause)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerCrewed.java b/forge-game/src/main/java/forge/game/trigger/TriggerCrewed.java index 2ad77cbd842..2c93e2a6813 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerCrewed.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerCrewed.java @@ -4,6 +4,7 @@ import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.card.CardCollection; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -45,9 +46,9 @@ public class TriggerCrewed extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Vehicle: ").append(sa.getTriggeringObject(AbilityKey.Vehicle)); + sb.append(Localizer.getInstance().getMessage("lblVehicle")).append(": ").append(sa.getTriggeringObject(AbilityKey.Vehicle)); sb.append(" "); - sb.append("Crew: ").append(sa.getTriggeringObject(AbilityKey.Crew)); + sb.append(Localizer.getInstance().getMessage("lblCrew")).append(": ").append(sa.getTriggeringObject(AbilityKey.Crew)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerPhase.java b/forge-game/src/main/java/forge/game/trigger/TriggerPhase.java index 5a8adfc63de..d059f8205f7 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerPhase.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerPhase.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -69,7 +70,7 @@ public class TriggerPhase extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Phase: ").append(sa.getTriggeringObject(AbilityKey.Player)); + sb.append(Localizer.getInstance().getMessage("lblPhase")).append(": ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } } diff --git a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java index 9b58a934c94..d061dbc78e1 100644 --- a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java +++ b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java @@ -670,7 +670,7 @@ public class ImageView extends ItemView { @Override public String getCaption() { - return "Image View"; + return Localizer.getInstance().getMessage("lblImageView"); } @Override diff --git a/forge-gui-mobile/src/forge/itemmanager/views/ItemListView.java b/forge-gui-mobile/src/forge/itemmanager/views/ItemListView.java index 4db35625d0b..fe737babd46 100644 --- a/forge-gui-mobile/src/forge/itemmanager/views/ItemListView.java +++ b/forge-gui-mobile/src/forge/itemmanager/views/ItemListView.java @@ -34,6 +34,7 @@ import forge.toolbox.FDisplayObject; import forge.toolbox.FList; import com.badlogic.gdx.math.Rectangle; +import forge.util.Localizer; import java.util.ArrayList; import java.util.Collections; @@ -81,7 +82,7 @@ public final class ItemListView extends ItemView { @Override public String getCaption() { - return "List View"; + return Localizer.getInstance().getMessage("lblListView"); } @Override diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index 53093558ab8..2311d819777 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -756,6 +756,7 @@ lblcopiesof=Kopien von #ItemListView.java lblUniqueCardsOnly=Nur eine Version ttUniqueCardsOnly=Schaltet zwischen der Anzeige der neuesten oder aller Versionen einer Karte um. +lblListView=List View #ACEditorBase.java lblAddcard=Karten hinzufügen ttAddcard=Fügt gewählte Karte dem Deck hinzu (oder Doppelklick oder Leertaste drücken) @@ -790,6 +791,7 @@ lblPileby=Stapel nach lblColumns=Spalten lblPiles=Piles: lblGroups=Groups: +lblImageView=Image View #CEditorVariant.java, CEditorConstructed.java lblCatalog=Katalog lblAdd=Hinzufügen @@ -1215,4 +1217,16 @@ lblAllSetsFormats=All Sets/Formats lblOtherFormats=Other Formats... lblChooseSets=Choose Sets... #HistoricFormatSelect.java -lblChooseFormat=Choose Format \ No newline at end of file +lblChooseFormat=Choose Format +#TriggerAdapt.java +lblAdapt=Adapt +#TriggerAttached.java +lblAttachee=Attachee +#TriggerAttackerBlocked.java +lblNumberBlockers=Number Blockers +lblBlocker=Blocker +#TriggerAttackersDeclared.java +lblNumberAttackers=Number Attackers +#TriggerAttackerUnblockedOnce.java +lblAttackingPlayer=AttackingPlayer +lblDefenders=Defenders \ No newline at end of file diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index b9336926727..928760fa0c3 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -756,6 +756,7 @@ lblcopiesof=copies of #ItemListView.java lblUniqueCardsOnly=Unique Cards Only ttUniqueCardsOnly=Toggle whether to show unique cards only +lblListView=List View #ACEditorBase.java lblAddcard=Add card ttAddcard=Add selected card to current deck (or double click the row or hit the spacebar) @@ -790,6 +791,7 @@ lblPileby=pile by lblColumns=Columns lblPiles=Piles: lblGroups=Groups: +lblImageView=Image View #CEditorVariant.java, CEditorConstructed.java lblCatalog=Catalog lblAdd=Add @@ -1215,4 +1217,49 @@ lblAllSetsFormats=All Sets/Formats lblOtherFormats=Other Formats... lblChooseSets=Choose Sets... #HistoricFormatSelect.java -lblChooseFormat=Choose Format \ No newline at end of file +lblChooseFormat=Choose Format +#TriggerAdapt.java +lblAdapt=Adapt +#TriggerAttached.java +lblAttachee=Attachee +#TriggerAttackerBlocked.java +lblNumberBlockers=Number Blockers +lblBlocker=Blocker +#TriggerAttackersDeclared.java +lblNumberAttackers=Number Attackers +#TriggerAttackerUnblockedOnce.java +lblAttackingPlayer=AttackingPlayer +lblDefenders=Defenders +#TriggerBecomeMonarch.java +lblPlayer=Player +#TriggerBecomeMonstrous.java +lblMonstrous=Monstrous +#TriggerBecomeRenowned.java +lblRenowned=Renowned +#TriggerBecomesTarget.java +lblSource=Source +lblTarget=Target +#TriggerBecomesTargetOnce.java +lblTargets=Targets +#TriggerBlockersDeclared.java +lblBlockers=Blockers +#TriggerChampioned.java +lblChampioned=Championed +#TriggerChangesController.java +lblChangedController=Changed Controller +#TriggerChangesZone.java +lblZoneChanger=Zone Changer +#TriggerChangesZoneAll.java +lblAmount=Amount +#TriggerCounterAdded.java +lblAddedOnce=Added once +#TriggerCountered.java +lblCountered=Countered +lblCause=Cause +#TriggerCounteredRemoved.java +lblRemovedFrom=Removed from +#TriggerCrewed.java +lblVehicle=Vehicle +lblCrew=Crew +#TriggerCycled.java +lblCycled=Cycled \ No newline at end of file diff --git a/forge-gui/res/languages/es-ES.properties b/forge-gui/res/languages/es-ES.properties index c5a3a087d55..c047d95babb 100644 --- a/forge-gui/res/languages/es-ES.properties +++ b/forge-gui/res/languages/es-ES.properties @@ -756,6 +756,7 @@ lblcopiesof=copias de #ItemListView.java lblUniqueCardsOnly=Solo Cartas Únicas ttUniqueCardsOnly=Alternar para mostrar solo cartas únicas +lblListView=Vista de Lista #ACEditorBase.java lblAddcard=Añadir carta ttAddcard=Añade la carta seleccionada al mazo actual (o haz doble clic en la fila o presiona la barra espaciadora) @@ -790,6 +791,7 @@ lblPileby=apilar por lblColumns=Columnas lblPiles=Apilar: lblGroups=Agrupar: +lblImageView=Vista de Imágenes #CEditorVariant.java, CEditorConstructed.java lblCatalog=Catálogo lblAdd=Añadir @@ -1215,4 +1217,49 @@ lblAllSetsFormats=Todos los Sets/Formatos lblOtherFormats=Otros Formatos... lblChooseSets=Selecciona Sets... #HistoricFormatSelect.java -lblChooseFormat=Selecciona Formato \ No newline at end of file +lblChooseFormat=Selecciona Formato +#TriggerAdapt.java +lblAdapt=Adaptar +#TriggerAttached.java +lblAttachee=Acoplado +#TriggerAttackerBlocked.java +lblNumberBlockers=Número de Bloqueadores +lblBlocker=Bloqueador +#TriggerAttackersDeclared.java +lblNumberAttackers=Número de Atacantes +#TriggerAttackerUnblockedOnce.java +lblAttackingPlayer=Jugador Atacante +lblDefenders=Defensores +#TriggerBecomeMonarch.java +lblPlayer=Jugador +#TriggerBecomeMonstrous.java +lblMonstrous=Monstruoso +#TriggerBecomeRenowned.java +lblRenowned=Renombrado +#TriggerBecomesTarget.java +lblSource=Origen +lblTarget=Objetivo +#TriggerBecomesTargetOnce.java +lblTargets=Objetivos +#TriggerBlockersDeclared.java +lblBlockers=Bloqueadores +#TriggerChampioned.java +lblChampioned=Promovido +#TriggerChangesController.java +lblChangedController=Controlador Cambiado +#TriggerChangesZone.java +lblZoneChanger=Cambiador de Zona +#TriggerChangesZoneAll.java +lblAmount=Cantidad +#TriggerCounterAdded.java +lblAddedOnce=Añadido una vez +#TriggerCountered.java +lblCountered=Contrarrestado +lblCause=Motivo +#TriggerCounteredRemoved.java +lblRemovedFrom=Eliminado de +#TriggerCrewed.java +lblVehicle=Vehículo +lblCrew=Tripulación +#TriggerCycled.java +lblCycled=Ciclado \ No newline at end of file diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties index aaeb805b70e..27d51590fb1 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -756,6 +756,7 @@ lblcopiesof=副本 #ItemListView.java lblUniqueCardsOnly=每张牌都只显示一个画 ttUniqueCardsOnly=切换是否每张牌都只显示一个画 +lblListView=List View #ACEditorBase.java lblAddcard=添加牌 ttAddcard=将选定的牌添加到当前套牌(双击该行或者空格) @@ -790,6 +791,7 @@ lblPileby=堆积 lblColumns=行 lblPiles=Piles: lblGroups=Groups: +lblImageView=Image View #CEditorVariant.java, CEditorConstructed.java lblCatalog=目录 lblAdd=添加 @@ -1215,4 +1217,16 @@ lblAllSetsFormats=All Sets/Formats lblOtherFormats=Other Formats... lblChooseSets=Choose Sets... #HistoricFormatSelect.java -lblChooseFormat=Choose Format \ No newline at end of file +lblChooseFormat=Choose Format +#TriggerAdapt.java +lblAdapt=Adapt +#TriggerAttached.java +lblAttachee=Attachee +#TriggerAttackerBlocked.java +lblNumberBlockers=Number Blockers +lblBlocker=Blocker +#TriggerAttackersDeclared.java +lblNumberAttackers=Number Attackers +#TriggerAttackerUnblockedOnce.java +lblAttackingPlayer=AttackingPlayer +lblDefenders=Defenders \ No newline at end of file From f17d2bf7fc177e2ebc970b6688a2906a115f854d Mon Sep 17 00:00:00 2001 From: klaxnek Date: Wed, 23 Oct 2019 00:24:15 +0200 Subject: [PATCH 09/20] Translate Trigger Abilities. Finished. --- .../forge/game/trigger/TriggerCycled.java | 3 +- .../game/trigger/TriggerDamageDealtOnce.java | 7 +- .../forge/game/trigger/TriggerDamageDone.java | 7 +- .../game/trigger/TriggerDamageDoneOnce.java | 5 +- .../game/trigger/TriggerDamagePrevented.java | 7 +- .../trigger/TriggerDamagePreventedOnce.java | 5 +- .../forge/game/trigger/TriggerDestroyed.java | 5 +- .../forge/game/trigger/TriggerDevoured.java | 3 +- .../forge/game/trigger/TriggerDiscarded.java | 5 +- .../java/forge/game/trigger/TriggerDrawn.java | 3 +- .../forge/game/trigger/TriggerEvolved.java | 3 +- .../forge/game/trigger/TriggerExerted.java | 3 +- .../forge/game/trigger/TriggerExiled.java | 3 +- .../forge/game/trigger/TriggerExploited.java | 5 +- .../forge/game/trigger/TriggerExplores.java | 3 +- .../java/forge/game/trigger/TriggerFight.java | 3 +- .../game/trigger/TriggerFlippedCoin.java | 3 +- .../game/trigger/TriggerInvestigated.java | 3 +- .../forge/game/trigger/TriggerLandPlayed.java | 3 +- .../forge/game/trigger/TriggerLifeGained.java | 5 +- .../forge/game/trigger/TriggerLifeLost.java | 5 +- .../forge/game/trigger/TriggerLosesGame.java | 3 +- .../trigger/TriggerPayCumulativeUpkeep.java | 3 +- .../forge/game/trigger/TriggerPayLife.java | 5 +- .../forge/game/trigger/TriggerPhaseIn.java | 3 +- .../forge/game/trigger/TriggerPhaseOut.java | 3 +- .../forge/game/trigger/TriggerPlanarDice.java | 3 +- .../game/trigger/TriggerPlaneswalkedFrom.java | 3 +- .../game/trigger/TriggerPlaneswalkedTo.java | 3 +- .../game/trigger/TriggerRegenerated.java | 3 +- .../forge/game/trigger/TriggerRevealed.java | 3 +- .../forge/game/trigger/TriggerSacrificed.java | 3 +- .../java/forge/game/trigger/TriggerScry.java | 3 +- .../game/trigger/TriggerSearchedLibrary.java | 3 +- .../forge/game/trigger/TriggerShuffled.java | 3 +- .../game/trigger/TriggerSpellAbilityCast.java | 7 +- .../game/trigger/TriggerSpellAbilityCopy.java | 7 +- .../forge/game/trigger/TriggerSurveil.java | 3 +- .../java/forge/game/trigger/TriggerTaps.java | 3 +- .../game/trigger/TriggerTapsForMana.java | 5 +- .../game/trigger/TriggerTransformed.java | 3 +- .../forge/game/trigger/TriggerTurnBegin.java | 3 +- .../forge/game/trigger/TriggerTurnFaceUp.java | 3 +- .../forge/game/trigger/TriggerUnattach.java | 5 +- .../forge/game/trigger/TriggerUntaps.java | 3 +- .../java/forge/game/trigger/TriggerVote.java | 3 +- forge-gui/res/languages/de-DE.properties | 112 +++++++++++++++++- forge-gui/res/languages/en-US.properties | 79 +++++++++++- forge-gui/res/languages/es-ES.properties | 79 +++++++++++- forge-gui/res/languages/zh-CN.properties | 112 +++++++++++++++++- 50 files changed, 490 insertions(+), 70 deletions(-) diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerCycled.java b/forge-game/src/main/java/forge/game/trigger/TriggerCycled.java index 32416714316..5da329a6360 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerCycled.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerCycled.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -58,7 +59,7 @@ public class TriggerCycled extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Cycled: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblCycled")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerDamageDealtOnce.java b/forge-game/src/main/java/forge/game/trigger/TriggerDamageDealtOnce.java index 5c6aafa1da8..be92e7a2929 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerDamageDealtOnce.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerDamageDealtOnce.java @@ -22,6 +22,7 @@ import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; import forge.util.Expressions; +import forge.util.Localizer; import java.util.Map; import java.util.Set; @@ -116,9 +117,9 @@ public class TriggerDamageDealtOnce extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Damage Source: ").append(sa.getTriggeringObject(AbilityKey.Source)).append(", "); - sb.append("Damaged: ").append(sa.getTriggeringObject(AbilityKey.Targets)).append(", "); - sb.append("Amount: ").append(sa.getTriggeringObject(AbilityKey.DamageAmount)); + sb.append(Localizer.getInstance().getMessage("lblDamageSource")).append(": ").append(sa.getTriggeringObject(AbilityKey.Source)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblDamaged")).append(": ").append(sa.getTriggeringObject(AbilityKey.Targets)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblAmount")).append(": ").append(sa.getTriggeringObject(AbilityKey.DamageAmount)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerDamageDone.java b/forge-game/src/main/java/forge/game/trigger/TriggerDamageDone.java index 8ec27bb576e..0a41c3b53b4 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerDamageDone.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerDamageDone.java @@ -23,6 +23,7 @@ import forge.game.card.CardUtil; import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbilityStackInstance; import forge.util.Expressions; +import forge.util.Localizer; import java.util.Map; @@ -135,9 +136,9 @@ public class TriggerDamageDone extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Damage Source: ").append(sa.getTriggeringObject(AbilityKey.Source)).append(", "); - sb.append("Damaged: ").append(sa.getTriggeringObject(AbilityKey.Target)).append(", "); - sb.append("Amount: ").append(sa.getTriggeringObject(AbilityKey.DamageAmount)); + sb.append(Localizer.getInstance().getMessage("lblDamageSource")).append(": ").append(sa.getTriggeringObject(AbilityKey.Source)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblDamaged")).append(": ").append(sa.getTriggeringObject(AbilityKey.Target)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblAmount")).append(": ").append(sa.getTriggeringObject(AbilityKey.DamageAmount)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerDamageDoneOnce.java b/forge-game/src/main/java/forge/game/trigger/TriggerDamageDoneOnce.java index 6abc7765a85..96233e6ccf7 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerDamageDoneOnce.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerDamageDoneOnce.java @@ -7,6 +7,7 @@ import forge.game.GameEntity; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; public class TriggerDamageDoneOnce extends Trigger { @@ -67,9 +68,9 @@ public class TriggerDamageDoneOnce extends Trigger { public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); if (sa.getTriggeringObject(AbilityKey.Target) != null) { - sb.append("Damaged: ").append(sa.getTriggeringObject(AbilityKey.Target)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblDamaged")).append(": ").append(sa.getTriggeringObject(AbilityKey.Target)).append(", "); } - sb.append("Amount: ").append(sa.getTriggeringObject(AbilityKey.DamageAmount)); + sb.append(Localizer.getInstance().getMessage("lblAmount")).append(": ").append(sa.getTriggeringObject(AbilityKey.DamageAmount)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerDamagePrevented.java b/forge-game/src/main/java/forge/game/trigger/TriggerDamagePrevented.java index 1c0b739ed7f..d38b52f0675 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerDamagePrevented.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerDamagePrevented.java @@ -22,6 +22,7 @@ import forge.game.card.Card; import forge.game.card.CardUtil; import forge.game.spellability.SpellAbility; import forge.util.Expressions; +import forge.util.Localizer; import java.util.Map; @@ -114,9 +115,9 @@ public class TriggerDamagePrevented extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Damage Source: ").append(sa.getTriggeringObject(AbilityKey.Source)).append(", "); - sb.append("Damage Target: ").append(sa.getTriggeringObject(AbilityKey.Target)).append(", "); - sb.append("Amount: ").append(sa.getTriggeringObject(AbilityKey.DamageAmount)); + sb.append(Localizer.getInstance().getMessage("lblDamageSource")).append(": ").append(sa.getTriggeringObject(AbilityKey.Source)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblDamageTarget")).append(": ").append(sa.getTriggeringObject(AbilityKey.Target)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblAmount")).append(": ").append(sa.getTriggeringObject(AbilityKey.DamageAmount)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerDamagePreventedOnce.java b/forge-game/src/main/java/forge/game/trigger/TriggerDamagePreventedOnce.java index 444978bcbda..72383a0720a 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerDamagePreventedOnce.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerDamagePreventedOnce.java @@ -21,6 +21,7 @@ import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; import forge.util.Expressions; +import forge.util.Localizer; import java.util.Map; @@ -104,8 +105,8 @@ public class TriggerDamagePreventedOnce extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Damage Target: ").append(sa.getTriggeringObject(AbilityKey.Target)).append(", "); - sb.append("Amount: ").append(sa.getTriggeringObject(AbilityKey.DamageAmount)); + sb.append(Localizer.getInstance().getMessage("lblDamageTarget")).append(": ").append(sa.getTriggeringObject(AbilityKey.Target)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblAmount")).append(": ").append(sa.getTriggeringObject(AbilityKey.DamageAmount)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerDestroyed.java b/forge-game/src/main/java/forge/game/trigger/TriggerDestroyed.java index 49e4e26c58f..369c7b7015d 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerDestroyed.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerDestroyed.java @@ -22,6 +22,7 @@ import java.util.Map; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; /** *

@@ -75,8 +76,8 @@ public class TriggerDestroyed extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Destroyed: ").append(sa.getTriggeringObject(AbilityKey.Card)).append(", "); - sb.append("Destroyer: ").append(sa.getTriggeringObject(AbilityKey.Causer)); + sb.append(Localizer.getInstance().getMessage("lblDestroyed")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblDestroyer")).append(": ").append(sa.getTriggeringObject(AbilityKey.Causer)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerDevoured.java b/forge-game/src/main/java/forge/game/trigger/TriggerDevoured.java index 6e27f99f7f8..700e5c83167 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerDevoured.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerDevoured.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -70,7 +71,7 @@ public class TriggerDevoured extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Devoured: ").append(sa.getTriggeringObject(AbilityKey.Devoured)); + sb.append(Localizer.getInstance().getMessage("lblDevoured")).append(": ").append(sa.getTriggeringObject(AbilityKey.Devoured)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerDiscarded.java b/forge-game/src/main/java/forge/game/trigger/TriggerDiscarded.java index 14a181b9510..ef604384410 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerDiscarded.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerDiscarded.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -95,8 +96,8 @@ public class TriggerDiscarded extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Discarded: ").append(sa.getTriggeringObject(AbilityKey.Card)).append(", "); - sb.append("Cause: ").append(sa.getTriggeringObject(AbilityKey.Cause)); + sb.append(Localizer.getInstance().getMessage("lblDiscarded")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblCause")).append(": ").append(sa.getTriggeringObject(AbilityKey.Cause)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerDrawn.java b/forge-game/src/main/java/forge/game/trigger/TriggerDrawn.java index d5f3d06f176..eeb6afaff98 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerDrawn.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerDrawn.java @@ -22,6 +22,7 @@ import forge.game.GameStage; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -88,7 +89,7 @@ public class TriggerDrawn extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Player: ").append(sa.getTriggeringObject(AbilityKey.Player)); + sb.append(Localizer.getInstance().getMessage("lblPlayer")).append(": ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerEvolved.java b/forge-game/src/main/java/forge/game/trigger/TriggerEvolved.java index afcf96c0e81..dd8d536257f 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerEvolved.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerEvolved.java @@ -22,6 +22,7 @@ import java.util.Map; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; /** *

@@ -69,7 +70,7 @@ public class TriggerEvolved extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Evolved: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblEvolved")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerExerted.java b/forge-game/src/main/java/forge/game/trigger/TriggerExerted.java index 4cc5d65f7e9..d17a504b2fc 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerExerted.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerExerted.java @@ -3,6 +3,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.HashMap; import java.util.Map; @@ -39,7 +40,7 @@ public class TriggerExerted extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Exerted: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblExerted")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerExiled.java b/forge-game/src/main/java/forge/game/trigger/TriggerExiled.java index 616bf8a4c7f..107126c2098 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerExiled.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerExiled.java @@ -24,6 +24,7 @@ import forge.game.spellability.SpellAbility; import java.util.Map; +import forge.util.Localizer; import org.apache.commons.lang3.ArrayUtils; /** @@ -104,7 +105,7 @@ public class TriggerExiled extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Exiled: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblExiled")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerExploited.java b/forge-game/src/main/java/forge/game/trigger/TriggerExploited.java index 475b4977056..509c1951a7e 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerExploited.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerExploited.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -81,8 +82,8 @@ public class TriggerExploited extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Exploited: ").append(sa.getTriggeringObject(AbilityKey.Exploited)).append(", "); - sb.append("Exploiter: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblExploited")).append(": ").append(sa.getTriggeringObject(AbilityKey.Exploited)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblExploiter")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerExplores.java b/forge-game/src/main/java/forge/game/trigger/TriggerExplores.java index f330ffeb0bb..90edb8c33c1 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerExplores.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerExplores.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -69,7 +70,7 @@ public class TriggerExplores extends Trigger { public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Explorer: ").append(sa.getTriggeringObject(AbilityKey.Explorer)); + sb.append(Localizer.getInstance().getMessage("lblExplorer")).append(": ").append(sa.getTriggeringObject(AbilityKey.Explorer)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerFight.java b/forge-game/src/main/java/forge/game/trigger/TriggerFight.java index 1aa88c5732f..fbf2a764773 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerFight.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerFight.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -72,7 +73,7 @@ public class TriggerFight extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Fighter: ").append(sa.getTriggeringObject(AbilityKey.Fighter)); + sb.append(Localizer.getInstance().getMessage("lblFighter")).append(": ").append(sa.getTriggeringObject(AbilityKey.Fighter)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerFlippedCoin.java b/forge-game/src/main/java/forge/game/trigger/TriggerFlippedCoin.java index 932354b241f..52c8e9798e5 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerFlippedCoin.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerFlippedCoin.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -79,7 +80,7 @@ public class TriggerFlippedCoin extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Player: ").append(sa.getTriggeringObject(AbilityKey.Player)); + sb.append(Localizer.getInstance().getMessage("lblPlayer")).append(": ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerInvestigated.java b/forge-game/src/main/java/forge/game/trigger/TriggerInvestigated.java index 155d0aacaa6..0ed0ab95e3d 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerInvestigated.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerInvestigated.java @@ -21,6 +21,7 @@ import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.player.Player; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -53,7 +54,7 @@ public class TriggerInvestigated extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Player: ").append(sa.getTriggeringObject(AbilityKey.Player)); + sb.append(Localizer.getInstance().getMessage("lblPlayer")).append(": ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerLandPlayed.java b/forge-game/src/main/java/forge/game/trigger/TriggerLandPlayed.java index ed6ceb30dbc..cb8b32fd694 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerLandPlayed.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerLandPlayed.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -58,7 +59,7 @@ public class TriggerLandPlayed extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Land played: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblLandPlayed")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerLifeGained.java b/forge-game/src/main/java/forge/game/trigger/TriggerLifeGained.java index fe92c615a17..17e934eef05 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerLifeGained.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerLifeGained.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -81,8 +82,8 @@ public class TriggerLifeGained extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Player: ").append(sa.getTriggeringObject(AbilityKey.Player)).append(", "); - sb.append("Gained Amount: ").append(sa.getTriggeringObject(AbilityKey.LifeAmount)); + sb.append(Localizer.getInstance().getMessage("lblPlayer")).append(": ").append(sa.getTriggeringObject(AbilityKey.Player)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblGainedAmount")).append(": ").append(sa.getTriggeringObject(AbilityKey.LifeAmount)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerLifeLost.java b/forge-game/src/main/java/forge/game/trigger/TriggerLifeLost.java index 6a4376b6d1e..cb42ed21581 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerLifeLost.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerLifeLost.java @@ -22,6 +22,7 @@ import java.util.Map; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; /** *

@@ -78,8 +79,8 @@ public class TriggerLifeLost extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Player: ").append(sa.getTriggeringObject(AbilityKey.Player)).append(", "); - sb.append("Lost Amount: ").append(sa.getTriggeringObject(AbilityKey.LifeAmount)); + sb.append(Localizer.getInstance().getMessage("lblPlayer")).append(": ").append(sa.getTriggeringObject(AbilityKey.Player)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblLostAmount")).append(": ").append(sa.getTriggeringObject(AbilityKey.LifeAmount)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerLosesGame.java b/forge-game/src/main/java/forge/game/trigger/TriggerLosesGame.java index 2e2d0ebf58e..9b9c3df538f 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerLosesGame.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerLosesGame.java @@ -3,6 +3,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -48,7 +49,7 @@ public class TriggerLosesGame extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Player: ").append(sa.getTriggeringObject(AbilityKey.Player)); + sb.append(Localizer.getInstance().getMessage("lblPlayer")).append(": ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerPayCumulativeUpkeep.java b/forge-game/src/main/java/forge/game/trigger/TriggerPayCumulativeUpkeep.java index 2c48b559a73..f3789b45f1b 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerPayCumulativeUpkeep.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerPayCumulativeUpkeep.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -79,7 +80,7 @@ public class TriggerPayCumulativeUpkeep extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Mana: ").append(sa.getTriggeringObject(AbilityKey.PayingMana)); + sb.append(Localizer.getInstance().getMessage("lblMana")).append(": ").append(sa.getTriggeringObject(AbilityKey.PayingMana)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerPayLife.java b/forge-game/src/main/java/forge/game/trigger/TriggerPayLife.java index 50bc7d21eea..dec7ee4f3be 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerPayLife.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerPayLife.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -68,8 +69,8 @@ public class TriggerPayLife extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Player: ").append(sa.getTriggeringObject(AbilityKey.Player)).append(", "); - sb.append("paid Amount: ").append(sa.getTriggeringObject(AbilityKey.LifeAmount)); + sb.append(Localizer.getInstance().getMessage("lblPlayer")).append(": ").append(sa.getTriggeringObject(AbilityKey.Player)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblPaidAmount")).append(": ").append(sa.getTriggeringObject(AbilityKey.LifeAmount)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerPhaseIn.java b/forge-game/src/main/java/forge/game/trigger/TriggerPhaseIn.java index 5368c42bd2f..3946cb5eba6 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerPhaseIn.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerPhaseIn.java @@ -3,6 +3,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -35,7 +36,7 @@ public class TriggerPhaseIn extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Phased In: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblPhasedIn")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerPhaseOut.java b/forge-game/src/main/java/forge/game/trigger/TriggerPhaseOut.java index fbc582cae21..bd9d0469d6f 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerPhaseOut.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerPhaseOut.java @@ -3,6 +3,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -43,7 +44,7 @@ public class TriggerPhaseOut extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Phased Out: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblPhasedOut")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerPlanarDice.java b/forge-game/src/main/java/forge/game/trigger/TriggerPlanarDice.java index e811f1b2761..99c63e0ff32 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerPlanarDice.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerPlanarDice.java @@ -4,6 +4,7 @@ import forge.game.PlanarDice; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -62,7 +63,7 @@ public class TriggerPlanarDice extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Roller: ").append(sa.getTriggeringObject(AbilityKey.Player)); + sb.append(Localizer.getInstance().getMessage("lblRoller")).append(": ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerPlaneswalkedFrom.java b/forge-game/src/main/java/forge/game/trigger/TriggerPlaneswalkedFrom.java index b7aedd7c128..8a174b04fca 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerPlaneswalkedFrom.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerPlaneswalkedFrom.java @@ -4,6 +4,7 @@ import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.card.CardCollection; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -59,7 +60,7 @@ public class TriggerPlaneswalkedFrom extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Planeswalked From: ").append(sa.getTriggeringObject(AbilityKey.Cards)); + sb.append(Localizer.getInstance().getMessage("lblPlaneswalkedFrom")).append(": ").append(sa.getTriggeringObject(AbilityKey.Cards)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerPlaneswalkedTo.java b/forge-game/src/main/java/forge/game/trigger/TriggerPlaneswalkedTo.java index f927242dd71..b12d1cee14a 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerPlaneswalkedTo.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerPlaneswalkedTo.java @@ -3,6 +3,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -59,7 +60,7 @@ public class TriggerPlaneswalkedTo extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Planeswalked To: ").append(sa.getTriggeringObject(AbilityKey.Cards)); + sb.append(Localizer.getInstance().getMessage("lblPlaneswalkedTo")).append(": ").append(sa.getTriggeringObject(AbilityKey.Cards)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerRegenerated.java b/forge-game/src/main/java/forge/game/trigger/TriggerRegenerated.java index 2d07c738ed8..11a965aaaf0 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerRegenerated.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerRegenerated.java @@ -22,6 +22,7 @@ import java.util.Map; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; /** *

@@ -75,7 +76,7 @@ public class TriggerRegenerated extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Regenerated: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblRegenerated")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); //sb.append("Destroyer: ").append(sa.getTriggeringObject("Causer")); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerRevealed.java b/forge-game/src/main/java/forge/game/trigger/TriggerRevealed.java index 21445dfccc2..3d11d6934ce 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerRevealed.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerRevealed.java @@ -5,6 +5,7 @@ import java.util.Map; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; public class TriggerRevealed extends Trigger { @@ -37,7 +38,7 @@ public class TriggerRevealed extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Revealed: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblRevealed")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerSacrificed.java b/forge-game/src/main/java/forge/game/trigger/TriggerSacrificed.java index 42209562b2a..79b4436c909 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerSacrificed.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerSacrificed.java @@ -23,6 +23,7 @@ import forge.game.cost.IndividualCostPaymentInstance; import forge.game.player.Player; import forge.game.spellability.SpellAbility; import forge.game.zone.CostPaymentStack; +import forge.util.Localizer; import java.util.Map; @@ -135,7 +136,7 @@ public class TriggerSacrificed extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Sacrificed: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblSacrificed")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerScry.java b/forge-game/src/main/java/forge/game/trigger/TriggerScry.java index 67324ace54f..47cb3c7335e 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerScry.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerScry.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -71,7 +72,7 @@ public class TriggerScry extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Scryer: ").append(sa.getTriggeringObject(AbilityKey.Player)); + sb.append(Localizer.getInstance().getMessage("lblScryer")).append(": ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerSearchedLibrary.java b/forge-game/src/main/java/forge/game/trigger/TriggerSearchedLibrary.java index b4a197155b9..56b8f91b65a 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerSearchedLibrary.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerSearchedLibrary.java @@ -24,6 +24,7 @@ import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.player.Player; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; /** *

@@ -82,7 +83,7 @@ public class TriggerSearchedLibrary extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Searcher: ").append(sa.getTriggeringObject(AbilityKey.Player)); + sb.append(Localizer.getInstance().getMessage("lblSearcher")).append(": ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerShuffled.java b/forge-game/src/main/java/forge/game/trigger/TriggerShuffled.java index 82f1e6d01be..a211eba1438 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerShuffled.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerShuffled.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -83,7 +84,7 @@ public class TriggerShuffled extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Shuffler: ").append(sa.getTriggeringObject(AbilityKey.Player)); + sb.append(Localizer.getInstance().getMessage("lblShuffler")).append(": ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCast.java b/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCast.java index e13cab7df14..6708ee73337 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCast.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCast.java @@ -38,6 +38,7 @@ import forge.game.spellability.SpellAbilityStackInstance; import forge.game.spellability.TargetChoices; import forge.game.zone.ZoneType; import forge.util.Expressions; +import forge.util.Localizer; /** *

@@ -284,9 +285,9 @@ public class TriggerSpellAbilityCast extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Card: ").append(sa.getTriggeringObject(AbilityKey.Card)).append(", "); - sb.append("Activator: ").append(sa.getTriggeringObject(AbilityKey.Activator)).append(", "); - sb.append("SpellAbility: ").append(sa.getTriggeringObject(AbilityKey.SpellAbility)); + sb.append(Localizer.getInstance().getMessage("lblCard")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblActivator")).append(": ").append(sa.getTriggeringObject(AbilityKey.Activator)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblSpellAbility")).append(": ").append(sa.getTriggeringObject(AbilityKey.SpellAbility)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCopy.java b/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCopy.java index d21383e792b..ec00915227f 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCopy.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCopy.java @@ -23,6 +23,7 @@ import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbilityStackInstance; +import forge.util.Localizer; /** *

@@ -102,9 +103,9 @@ public class TriggerSpellAbilityCopy extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Card: ").append(sa.getTriggeringObject(AbilityKey.Card)).append(", "); - sb.append("Activator: ").append(sa.getTriggeringObject(AbilityKey.Activator)).append(", "); - sb.append("SpellAbility: ").append(sa.getTriggeringObject(AbilityKey.SpellAbility)); + sb.append(Localizer.getInstance().getMessage("lblCard")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblActivator")).append(": ").append(sa.getTriggeringObject(AbilityKey.Activator)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblSpellAbility")).append(": ").append(sa.getTriggeringObject(AbilityKey.SpellAbility)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerSurveil.java b/forge-game/src/main/java/forge/game/trigger/TriggerSurveil.java index 91170953511..cb5d6f1afea 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerSurveil.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerSurveil.java @@ -21,6 +21,7 @@ import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.player.Player; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -49,7 +50,7 @@ public class TriggerSurveil extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Player: ").append(sa.getTriggeringObject(AbilityKey.Player)); + sb.append(Localizer.getInstance().getMessage("lblPlayer")).append(": ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerTaps.java b/forge-game/src/main/java/forge/game/trigger/TriggerTaps.java index faee4b2ee36..23a30a55195 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerTaps.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerTaps.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -85,7 +86,7 @@ public class TriggerTaps extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Tapped: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblTapped")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerTapsForMana.java b/forge-game/src/main/java/forge/game/trigger/TriggerTapsForMana.java index 78faa4bfd52..de96aa18d8b 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerTapsForMana.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerTapsForMana.java @@ -22,6 +22,7 @@ import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.player.Player; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -114,8 +115,8 @@ public class TriggerTapsForMana extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Tapped for Mana: ").append(sa.getTriggeringObject(AbilityKey.Card)); - sb.append("Produced: ").append(sa.getTriggeringObject(AbilityKey.Produced)); + sb.append(Localizer.getInstance().getMessage("lblTappedForMana")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblProduced")).append(": ").append(sa.getTriggeringObject(AbilityKey.Produced)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerTransformed.java b/forge-game/src/main/java/forge/game/trigger/TriggerTransformed.java index 43f032fd99a..36f0429f32c 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerTransformed.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerTransformed.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -65,7 +66,7 @@ public class TriggerTransformed extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Transformed: ").append(sa.getTriggeringObject(AbilityKey.Transformer)); + sb.append(Localizer.getInstance().getMessage("lblTransformed")).append(": ").append(sa.getTriggeringObject(AbilityKey.Transformer)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerTurnBegin.java b/forge-game/src/main/java/forge/game/trigger/TriggerTurnBegin.java index dba63859d73..e6bd53b8b28 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerTurnBegin.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerTurnBegin.java @@ -3,6 +3,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -29,7 +30,7 @@ public class TriggerTurnBegin extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Player: ").append(sa.getTriggeringObject(AbilityKey.Player)); + sb.append(Localizer.getInstance().getMessage("lblPlayer")).append(": ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerTurnFaceUp.java b/forge-game/src/main/java/forge/game/trigger/TriggerTurnFaceUp.java index c1b96e0e102..f27a472667c 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerTurnFaceUp.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerTurnFaceUp.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -70,7 +71,7 @@ public class TriggerTurnFaceUp extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Turn Face up: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblTurnFaceUp")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerUnattach.java b/forge-game/src/main/java/forge/game/trigger/TriggerUnattach.java index d40179f1de6..18dbaeb6c7b 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerUnattach.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerUnattach.java @@ -21,6 +21,7 @@ import forge.game.GameEntity; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -82,8 +83,8 @@ public class TriggerUnattach extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Object: ").append(sa.getTriggeringObject(AbilityKey.Object)).append(", "); - sb.append("Attachment: ").append(sa.getTriggeringObject(AbilityKey.Attach)); + sb.append(Localizer.getInstance().getMessage("lblObject")).append(": ").append(sa.getTriggeringObject(AbilityKey.Object)).append(", "); + sb.append(Localizer.getInstance().getMessage("lblAttachment")).append(": ").append(sa.getTriggeringObject(AbilityKey.Attach)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerUntaps.java b/forge-game/src/main/java/forge/game/trigger/TriggerUntaps.java index 730d805c656..a01a3f8d46d 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerUntaps.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerUntaps.java @@ -20,6 +20,7 @@ package forge.game.trigger; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import java.util.Map; @@ -74,7 +75,7 @@ public class TriggerUntaps extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Untapped: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(Localizer.getInstance().getMessage("lblUntapped")).append(": ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerVote.java b/forge-game/src/main/java/forge/game/trigger/TriggerVote.java index 169a5f39212..1a21bf5aa75 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerVote.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerVote.java @@ -26,6 +26,7 @@ import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.player.Player; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; import forge.util.collect.FCollection; /** @@ -77,7 +78,7 @@ public class TriggerVote extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Voters: ").append(sa.getTriggeringObject(AbilityKey.OtherVoters)); + sb.append(Localizer.getInstance().getMessage("lblVoters")).append(": ").append(sa.getTriggeringObject(AbilityKey.OtherVoters)); return sb.toString(); } diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index 2311d819777..11c07a07ef4 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -1229,4 +1229,114 @@ lblBlocker=Blocker lblNumberAttackers=Number Attackers #TriggerAttackerUnblockedOnce.java lblAttackingPlayer=AttackingPlayer -lblDefenders=Defenders \ No newline at end of file +lblDefenders=Defenders +#TriggerBecomeMonarch.java +lblPlayer=Player +#TriggerBecomeMonstrous.java +lblMonstrous=Monstrous +#TriggerBecomeRenowned.java +lblRenowned=Renowned +#TriggerBecomesTarget.java +lblSource=Source +lblTarget=Target +#TriggerBecomesTargetOnce.java +lblTargets=Targets +#TriggerBlockersDeclared.java +lblBlockers=Blockers +#TriggerChampioned.java +lblChampioned=Championed +#TriggerChangesController.java +lblChangedController=Changed Controller +#TriggerChangesZone.java +lblZoneChanger=Zone Changer +#TriggerChangesZoneAll.java +lblAmount=Amount +#TriggerCounterAdded.java +lblAddedOnce=Added once +#TriggerCountered.java +lblCountered=Countered +lblCause=Cause +#TriggerCounteredRemoved.java +lblRemovedFrom=Removed from +#TriggerCrewed.java +lblVehicle=Vehicle +lblCrew=Crew +#TriggerCycled.java +lblCycled=Cycled +#TriggerDamageDealtOnce.java +lblDamageSource=Damage Source +lblDamaged=Damaged +#TriggerDamagePrevented.java +lblDamageTarget=Damage Target +#TriggerDestroyed.java +lblDestroyed=Destroyed +lblDestroyer=Destroyer +#TriggerDevoured.java +lblDevoured=Devoured +#TriggerDiscarded.java +lblDiscarded=Discarded +#TriggerEvolved.java +lblEvolved=Evolved +#TriggerExerted.java +lblExerted=Exerted +#TriggerExiled.java +lblExiled=Exiled +#TriggerExploited.java +lblExploited=Exploited +lblExploiter=Exploiter +#TriggerExplores.java +lblExplorer=Explorer +#TriggerFight.java +lblFighter=Fighter +#TriggerLandPlayed.java +lblLandPlayed=Land played +#TriggerLifeGained.java +lblGainedAmount=Gained Amount +#TriggerLifeLost.java +lblLostAmount=Lost Amount +#TriggerPayCumulativeUpkeep.java +lblMana=Mana +#TriggerPayLife.java +lblPaidAmount=Paid Amount +#TriggerPhaseIn.java +lblPhasedIn=Phased In +#TriggerPhaseOut.java +lblPhasedOut=Phased Out +#TriggerRoller.java +lblRoller=Roller +#TriggerPlaneswalkedFrom.java +lblPlaneswalkedFrom=Planeswalked From +#TriggerPlaneswalkedTo.java +lblPlaneswalkedTo=Planeswalked To +#TriggerRegenerated.java +lblRegenerated=Regenerated +#TriggerRevealed.java +lblRevealed=Revealed +#TriggerSacrificed.java +lblSacrificed=Sacrificed +#TriggerScry.java +lblScryer=Scryer +#TriggerSearchLibrary.java +lblSearcher=Searcher +#TriggerShuffled.java +lblShuffler=Shuffler +#TriggerSpellAbilityCast.java +lblActivator=Activator +#TriggerSpellAbilityCast.java +lblSpellAbility=SpellAbility +#TriggerTaps.java +lblTapped=Tapped +#TriggerTapsForMana.java +lblTappedForMana=Tapped for Mana +lblProduced=Produced +#TriggerTransformed.java +lblTransformed=Transformed +#TriggerTurnFaceUp.java +lblTurnFaceUp=Turn Face up +#TriggerUnattach.java +lblObject=Object +lblAttachment=Attachment +#TriggerUntaps.java +lblUntapped=Untapped +#TriggerVote.java +lblVoters=Voters \ No newline at end of file diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index 928760fa0c3..bdda816efd7 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -1262,4 +1262,81 @@ lblRemovedFrom=Removed from lblVehicle=Vehicle lblCrew=Crew #TriggerCycled.java -lblCycled=Cycled \ No newline at end of file +lblCycled=Cycled +#TriggerDamageDealtOnce.java +lblDamageSource=Damage Source +lblDamaged=Damaged +#TriggerDamagePrevented.java +lblDamageTarget=Damage Target +#TriggerDestroyed.java +lblDestroyed=Destroyed +lblDestroyer=Destroyer +#TriggerDevoured.java +lblDevoured=Devoured +#TriggerDiscarded.java +lblDiscarded=Discarded +#TriggerEvolved.java +lblEvolved=Evolved +#TriggerExerted.java +lblExerted=Exerted +#TriggerExiled.java +lblExiled=Exiled +#TriggerExploited.java +lblExploited=Exploited +lblExploiter=Exploiter +#TriggerExplores.java +lblExplorer=Explorer +#TriggerFight.java +lblFighter=Fighter +#TriggerLandPlayed.java +lblLandPlayed=Land played +#TriggerLifeGained.java +lblGainedAmount=Gained Amount +#TriggerLifeLost.java +lblLostAmount=Lost Amount +#TriggerPayCumulativeUpkeep.java +lblMana=Mana +#TriggerPayLife.java +lblPaidAmount=Paid Amount +#TriggerPhaseIn.java +lblPhasedIn=Phased In +#TriggerPhaseOut.java +lblPhasedOut=Phased Out +#TriggerRoller.java +lblRoller=Roller +#TriggerPlaneswalkedFrom.java +lblPlaneswalkedFrom=Planeswalked From +#TriggerPlaneswalkedTo.java +lblPlaneswalkedTo=Planeswalked To +#TriggerRegenerated.java +lblRegenerated=Regenerated +#TriggerRevealed.java +lblRevealed=Revealed +#TriggerSacrificed.java +lblSacrificed=Sacrificed +#TriggerScry.java +lblScryer=Scryer +#TriggerSearchLibrary.java +lblSearcher=Searcher +#TriggerShuffled.java +lblShuffler=Shuffler +#TriggerSpellAbilityCast.java +lblActivator=Activator +#TriggerSpellAbilityCast.java +lblSpellAbility=SpellAbility +#TriggerTaps.java +lblTapped=Tapped +#TriggerTapsForMana.java +lblTappedForMana=Tapped for Mana +lblProduced=Produced +#TriggerTransformed.java +lblTransformed=Transformed +#TriggerTurnFaceUp.java +lblTurnFaceUp=Turn Face up +#TriggerUnattach.java +lblObject=Object +lblAttachment=Attachment +#TriggerUntaps.java +lblUntapped=Untapped +#TriggerVote.java +lblVoters=Voters \ No newline at end of file diff --git a/forge-gui/res/languages/es-ES.properties b/forge-gui/res/languages/es-ES.properties index c047d95babb..f2fb66a8664 100644 --- a/forge-gui/res/languages/es-ES.properties +++ b/forge-gui/res/languages/es-ES.properties @@ -1262,4 +1262,81 @@ lblRemovedFrom=Eliminado de lblVehicle=Vehículo lblCrew=Tripulación #TriggerCycled.java -lblCycled=Ciclado \ No newline at end of file +lblCycled=Ciclado +#TriggerDamageDealtOnce.java +lblDamageSource=Origen del Daño +lblDamaged=Dañado +#TriggerDamagePrevented.java +lblDamageTarget=Dañar Objetivo +#TriggerDestroyed.java +lblDestroyed=Destruido +lblDestroyer=Destructor +#TriggerDevoured.java +lblDevoured=Devorado +#TriggerDiscarded.java +lblDiscarded=Descartado +#TriggerEvolved.java +lblEvolved=Evolucionado +#TriggerExerted.java +lblExerted=Ejecutado +#TriggerExiled.java +lblExiled=Exiliado +#TriggerExploited.java +lblExploited=Explotado +lblExploiter=Explotador +#TriggerExplores.java +lblExplorer=Explorador +#TriggerFight.java +lblFighter=Luchador +#TriggerLandPlayed.java +lblLandPlayed=Tierra jugada +#TriggerLifeGained.java +lblGainedAmount=Cantidad Ganada +#TriggerLifeLost.java +lblLostAmount=Cantidad Perdida +#TriggerPayCumulativeUpkeep.java +lblMana=Maná +#TriggerPayLife.java +lblPaidAmount=Cantidad Pagada +#TriggerPhaseIn.java +lblPhasedIn=En Fase +#TriggerPhaseOut.java +lblPhasedOut=Fuera de Fase +#TriggerRoller.java +lblRoller=Tirador de dados +#TriggerPlaneswalkedFrom.java +lblPlaneswalkedFrom=Planeswalked Desde +#TriggerPlaneswalkedTo.java +lblPlaneswalkedTo=Planeswalked A +#TriggerRegenerated.java +lblRegenerated=Regenerado +#TriggerRevealed.java +lblRevealed=Revelado +#TriggerSacrificed.java +lblSacrificed=Sacrificado +#TriggerScry.java +lblScryer=Escrutador +#TriggerSearchLibrary.java +lblSearcher=Buscador +#TriggerShuffled.java +lblShuffler=Barajeador +#TriggerSpellAbilityCast.java +lblActivator=Activador +#TriggerSpellAbilityCast.java +lblSpellAbility=Habilidad de Hechizo +#TriggerTaps.java +lblTapped=Girado +#TriggerTapsForMana.java +lblTappedForMana=Girado para Maná +lblProduced=Producido +#TriggerTransformed.java +lblTransformed=Transformado +#TriggerTurnFaceUp.java +lblTurnFaceUp=Poner la cara hacia arriba +#TriggerUnattach.java +lblObject=Objeto +lblAttachment=Adjunto +#TriggerUntaps.java +lblUntapped=Desgirado +#TriggerVote.java +lblVoters=Votantes \ No newline at end of file diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties index 27d51590fb1..807e9701efb 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -1229,4 +1229,114 @@ lblBlocker=Blocker lblNumberAttackers=Number Attackers #TriggerAttackerUnblockedOnce.java lblAttackingPlayer=AttackingPlayer -lblDefenders=Defenders \ No newline at end of file +lblDefenders=Defenders +#TriggerBecomeMonarch.java +lblPlayer=Player +#TriggerBecomeMonstrous.java +lblMonstrous=Monstrous +#TriggerBecomeRenowned.java +lblRenowned=Renowned +#TriggerBecomesTarget.java +lblSource=Source +lblTarget=Target +#TriggerBecomesTargetOnce.java +lblTargets=Targets +#TriggerBlockersDeclared.java +lblBlockers=Blockers +#TriggerChampioned.java +lblChampioned=Championed +#TriggerChangesController.java +lblChangedController=Changed Controller +#TriggerChangesZone.java +lblZoneChanger=Zone Changer +#TriggerChangesZoneAll.java +lblAmount=Amount +#TriggerCounterAdded.java +lblAddedOnce=Added once +#TriggerCountered.java +lblCountered=Countered +lblCause=Cause +#TriggerCounteredRemoved.java +lblRemovedFrom=Removed from +#TriggerCrewed.java +lblVehicle=Vehicle +lblCrew=Crew +#TriggerCycled.java +lblCycled=Cycled +#TriggerDamageDealtOnce.java +lblDamageSource=Damage Source +lblDamaged=Damaged +#TriggerDamagePrevented.java +lblDamageTarget=Damage Target +#TriggerDestroyed.java +lblDestroyed=Destroyed +lblDestroyer=Destroyer +#TriggerDevoured.java +lblDevoured=Devoured +#TriggerDiscarded.java +lblDiscarded=Discarded +#TriggerEvolved.java +lblEvolved=Evolved +#TriggerExerted.java +lblExerted=Exerted +#TriggerExiled.java +lblExiled=Exiled +#TriggerExploited.java +lblExploited=Exploited +lblExploiter=Exploiter +#TriggerExplores.java +lblExplorer=Explorer +#TriggerFight.java +lblFighter=Fighter +#TriggerLandPlayed.java +lblLandPlayed=Land played +#TriggerLifeGained.java +lblGainedAmount=Gained Amount +#TriggerLifeLost.java +lblLostAmount=Lost Amount +#TriggerPayCumulativeUpkeep.java +lblMana=Mana +#TriggerPayLife.java +lblPaidAmount=Paid Amount +#TriggerPhaseIn.java +lblPhasedIn=Phased In +#TriggerPhaseOut.java +lblPhasedOut=Phased Out +#TriggerRoller.java +lblRoller=Roller +#TriggerPlaneswalkedFrom.java +lblPlaneswalkedFrom=Planeswalked From +#TriggerPlaneswalkedTo.java +lblPlaneswalkedTo=Planeswalked To +#TriggerRegenerated.java +lblRegenerated=Regenerated +#TriggerRevealed.java +lblRevealed=Revealed +#TriggerSacrificed.java +lblSacrificed=Sacrificed +#TriggerScry.java +lblScryer=Scryer +#TriggerSearchLibrary.java +lblSearcher=Searcher +#TriggerShuffled.java +lblShuffler=Shuffler +#TriggerSpellAbilityCast.java +lblActivator=Activator +#TriggerSpellAbilityCast.java +lblSpellAbility=SpellAbility +#TriggerTaps.java +lblTapped=Tapped +#TriggerTapsForMana.java +lblTappedForMana=Tapped for Mana +lblProduced=Produced +#TriggerTransformed.java +lblTransformed=Transformed +#TriggerTurnFaceUp.java +lblTurnFaceUp=Turn Face up +#TriggerUnattach.java +lblObject=Object +lblAttachment=Attachment +#TriggerUntaps.java +lblUntapped=Untapped +#TriggerVote.java +lblVoters=Voters \ No newline at end of file From df7be19487911584933a1f48454c8861b16b6860 Mon Sep 17 00:00:00 2001 From: klaxnek Date: Wed, 23 Oct 2019 00:56:36 +0200 Subject: [PATCH 10/20] Translate Permanent Creature --- .../forge/game/ability/effects/PermanentCreatureEffect.java | 3 ++- forge-gui/res/languages/de-DE.properties | 4 +++- forge-gui/res/languages/en-US.properties | 4 +++- forge-gui/res/languages/es-ES.properties | 4 +++- forge-gui/res/languages/zh-CN.properties | 4 +++- 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/PermanentCreatureEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PermanentCreatureEffect.java index 64f1e37220c..c2207b51063 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PermanentCreatureEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PermanentCreatureEffect.java @@ -2,6 +2,7 @@ package forge.game.ability.effects; import forge.game.card.Card; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; /** * TODO: Write javadoc for this type. @@ -13,7 +14,7 @@ public class PermanentCreatureEffect extends PermanentEffect { public String getStackDescription(final SpellAbility sa) { final Card sourceCard = sa.getHostCard(); final StringBuilder sb = new StringBuilder(); - sb.append(sourceCard.getName()).append(" - Creature ").append(sourceCard.getNetPower()); + sb.append(sourceCard.getName()).append(" - ").append(Localizer.getInstance().getMessage("lblCreature")).append(" ").append(sourceCard.getNetPower()); sb.append(" / ").append(sourceCard.getNetToughness()); return sb.toString(); } diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index 11c07a07ef4..bc91c891ad5 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -1339,4 +1339,6 @@ lblAttachment=Attachment #TriggerUntaps.java lblUntapped=Untapped #TriggerVote.java -lblVoters=Voters \ No newline at end of file +lblVoters=Voters +#PermanentCreatureEffect.java +lblCreature=Creature \ No newline at end of file diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index bdda816efd7..b12a0f96617 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -1339,4 +1339,6 @@ lblAttachment=Attachment #TriggerUntaps.java lblUntapped=Untapped #TriggerVote.java -lblVoters=Voters \ No newline at end of file +lblVoters=Voters +#PermanentCreatureEffect.java +lblCreature=Creature \ No newline at end of file diff --git a/forge-gui/res/languages/es-ES.properties b/forge-gui/res/languages/es-ES.properties index f2fb66a8664..81aa93b1c2e 100644 --- a/forge-gui/res/languages/es-ES.properties +++ b/forge-gui/res/languages/es-ES.properties @@ -1339,4 +1339,6 @@ lblAttachment=Adjunto #TriggerUntaps.java lblUntapped=Desgirado #TriggerVote.java -lblVoters=Votantes \ No newline at end of file +lblVoters=Votantes +#PermanentCreatureEffect.java +lblCreature=Criatura \ No newline at end of file diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties index 807e9701efb..47007993707 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -1339,4 +1339,6 @@ lblAttachment=Attachment #TriggerUntaps.java lblUntapped=Untapped #TriggerVote.java -lblVoters=Voters \ No newline at end of file +lblVoters=Voters +#PermanentCreatureEffect.java +lblCreature=Creature \ No newline at end of file From 271063934aa3133067b412cc619718dfb282632d Mon Sep 17 00:00:00 2001 From: Hans Mackowiak Date: Thu, 14 Nov 2019 11:12:31 +0000 Subject: [PATCH 11/20] Combat: initConstraints before Declare Attackers --- .../src/main/java/forge/game/combat/Combat.java | 13 ++++++++----- .../main/java/forge/game/phase/PhaseHandler.java | 1 + 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/forge-game/src/main/java/forge/game/combat/Combat.java b/forge-game/src/main/java/forge/game/combat/Combat.java index 0b7b6dfb8f7..36f1a58fc9f 100644 --- a/forge-game/src/main/java/forge/game/combat/Combat.java +++ b/forge-game/src/main/java/forge/game/combat/Combat.java @@ -50,7 +50,7 @@ import java.util.Map.Entry; */ public class Combat { private final Player playerWhoAttacks; - private final AttackConstraints attackConstraints; + private AttackConstraints attackConstraints; // Defenders, as they are attacked by hostile forces private final FCollection attackableEntries = new FCollection<>(); @@ -71,10 +71,6 @@ public class Combat { public Combat(final Player attacker) { playerWhoAttacks = attacker; - // Create keys for all possible attack targets - attackableEntries.addAll(CombatUtil.getAllPossibleDefenders(playerWhoAttacks)); - - attackConstraints = new AttackConstraints(this); } public Combat(Combat combat, GameObjectMap map) { @@ -119,6 +115,13 @@ public class Combat { attackConstraints = new AttackConstraints(this); } + public void initConstraints() { + // Create keys for all possible attack targets + attackableEntries.addAll(CombatUtil.getAllPossibleDefenders(playerWhoAttacks)); + + attackConstraints = new AttackConstraints(this); + } + @Override public String toString() { StringBuilder sb = new StringBuilder(); diff --git a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java index 48e86dbfa72..85e7a784d90 100644 --- a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java +++ b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java @@ -283,6 +283,7 @@ public class PhaseHandler implements java.io.Serializable { case COMBAT_DECLARE_ATTACKERS: if (!playerTurn.hasLost()) { + combat.initConstraints(); game.getStack().freezeStack(); declareAttackersTurnBasedAction(); game.getStack().unfreezeStack(); From 86dd21ae7b426331d7a1735743c310bbfd2f4d1d Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Fri, 15 Nov 2019 06:57:43 +0800 Subject: [PATCH 12/20] Fix permanents not updating when animated to creature. --- .../src/forge/screens/match/MatchController.java | 6 ++++-- .../main/java/forge/control/FControlGameEventHandler.java | 3 +-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/forge-gui-mobile/src/forge/screens/match/MatchController.java b/forge-gui-mobile/src/forge/screens/match/MatchController.java index 433d75e8723..980aa1b60f3 100644 --- a/forge-gui-mobile/src/forge/screens/match/MatchController.java +++ b/forge-gui-mobile/src/forge/screens/match/MatchController.java @@ -117,14 +117,16 @@ public class MatchController extends AbstractGuiGame { @Override public void refreshCardDetails(final Iterable cards) { - /*//ensure cards appear in the correct row of the field + //ensure cards appear in the correct row of the field for (final VPlayerPanel pnl : view.getPlayerPanels().values()) { pnl.getField().update(); - }*/ + } } @Override public void refreshField() { + if(!GuiBase.isNetworkplay()) //TODO alternate method for update Netplay... + return; if(getGameView() == null) return; if(getGameView().getPhase() == null) diff --git a/forge-gui/src/main/java/forge/control/FControlGameEventHandler.java b/forge-gui/src/main/java/forge/control/FControlGameEventHandler.java index d48cbcca2ce..6fcf716e1eb 100644 --- a/forge-gui/src/main/java/forge/control/FControlGameEventHandler.java +++ b/forge-gui/src/main/java/forge/control/FControlGameEventHandler.java @@ -281,8 +281,7 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { @Override public Void visit(final GameEventCardTapped event) { - if(GuiBase.isNetworkplay()) - refreshFieldUpdate = true; //update all players field when event un/tapped + refreshFieldUpdate = true; //update all players field when event un/tapped processCard(event.card, cardsUpdate); return processEvent(); } From da3d1d709916d9d7e6b1d8b3a48a2d23c91870c2 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Fri, 15 Nov 2019 08:56:35 +0800 Subject: [PATCH 13/20] Update --- .../src/forge/screens/match/MatchController.java | 4 ++-- forge-gui-mobile/src/forge/screens/match/views/VField.java | 7 +++++-- .../src/forge/screens/match/views/VPlayerPanel.java | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/forge-gui-mobile/src/forge/screens/match/MatchController.java b/forge-gui-mobile/src/forge/screens/match/MatchController.java index 980aa1b60f3..cc8e860572a 100644 --- a/forge-gui-mobile/src/forge/screens/match/MatchController.java +++ b/forge-gui-mobile/src/forge/screens/match/MatchController.java @@ -119,7 +119,7 @@ public class MatchController extends AbstractGuiGame { public void refreshCardDetails(final Iterable cards) { //ensure cards appear in the correct row of the field for (final VPlayerPanel pnl : view.getPlayerPanels().values()) { - pnl.getField().update(); + pnl.getField().update(true); } } @@ -133,7 +133,7 @@ public class MatchController extends AbstractGuiGame { return; if (getGameView().getPhase().phaseforUpdateField()) for (final VPlayerPanel pnl : view.getPlayerPanels().values()) - pnl.getField().update(); + pnl.getField().update(false); } public boolean hotSeatMode() { diff --git a/forge-gui-mobile/src/forge/screens/match/views/VField.java b/forge-gui-mobile/src/forge/screens/match/views/VField.java index 18f4e476473..1447408b257 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VField.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VField.java @@ -40,8 +40,11 @@ public class VField extends FContainer { return cardPanels; } - public void update() { - FThreads.invokeInEdtNowOrLater(updateRoutine); + public void update(boolean invokeInEdtNowOrLater) { + if (invokeInEdtNowOrLater) + FThreads.invokeInEdtNowOrLater(updateRoutine); + else + FThreads.invokeInEdtLater(updateRoutine); } private final Runnable updateRoutine = new Runnable() { diff --git a/forge-gui-mobile/src/forge/screens/match/views/VPlayerPanel.java b/forge-gui-mobile/src/forge/screens/match/views/VPlayerPanel.java index 870e99ffdb0..ee7e4c40967 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VPlayerPanel.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VPlayerPanel.java @@ -176,7 +176,7 @@ public class VPlayerPanel extends FContainer { public void updateZone(ZoneType zoneType) { if (zoneType == ZoneType.Battlefield ) { - field.update(); + field.update(true); } else if (zoneType == ZoneType.Command) { commandZone.update(); From d943891e4f466ad029c0cd060a7e7a29ce3709d5 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Fri, 15 Nov 2019 10:11:57 +0800 Subject: [PATCH 14/20] additional check (prevent npe on mojhosto) --- .../java/forge/ai/ability/SacrificeAi.java | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ability/SacrificeAi.java b/forge-ai/src/main/java/forge/ai/ability/SacrificeAi.java index 2e533d30d32..78081283c46 100644 --- a/forge-ai/src/main/java/forge/ai/ability/SacrificeAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/SacrificeAi.java @@ -140,15 +140,31 @@ public class SacrificeAi extends SpellAbilityAi { amount = Math.min(ComputerUtilMana.determineLeftoverMana(sa, ai), amount); } - List humanList = - CardLists.getValidCards(opp.getCardsIn(ZoneType.Battlefield), valid.split(","), sa.getActivatingPlayer(), sa.getHostCard(), sa); + List humanList = null; + try { + humanList = CardLists.getValidCards(opp.getCardsIn(ZoneType.Battlefield), valid.split(","), sa.getActivatingPlayer(), sa.getHostCard(), sa); + } catch (NullPointerException e) { + return false; + } finally { + if (humanList == null) + return false; + }//prevent NPE on MoJhoSto // Since all of the cards have AI:RemoveDeck:All, I enabled 1 for 1 // (or X for X) trades for special decks return humanList.size() >= amount; } else if (defined.equals("You")) { - List computerList = - CardLists.getValidCards(ai.getCardsIn(ZoneType.Battlefield), valid.split(","), sa.getActivatingPlayer(), sa.getHostCard(), sa); + + List computerList = null; + try { + computerList = CardLists.getValidCards(ai.getCardsIn(ZoneType.Battlefield), valid.split(","), sa.getActivatingPlayer(), sa.getHostCard(), sa); + } catch (NullPointerException e) { + return false; + } finally { + if (computerList == null) + return false; + }//prevent NPE on MoJhoSto + for (Card c : computerList) { if (c.hasSVar("SacMe") || ComputerUtilCard.evaluateCreature(c) <= 135) { return true; From fe5d8e537cab2d07949f3865b1615363d5b28ccf Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Fri, 15 Nov 2019 11:14:54 +0800 Subject: [PATCH 15/20] Fix game pause --- forge-gui/src/main/java/forge/interfaces/IGuiGame.java | 2 ++ forge-gui/src/main/java/forge/match/AbstractGuiGame.java | 6 +++++- .../main/java/forge/match/input/InputPlaybackControl.java | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/forge-gui/src/main/java/forge/interfaces/IGuiGame.java b/forge-gui/src/main/java/forge/interfaces/IGuiGame.java index 45841b6562a..33c6999dab8 100644 --- a/forge-gui/src/main/java/forge/interfaces/IGuiGame.java +++ b/forge-gui/src/main/java/forge/interfaces/IGuiGame.java @@ -161,6 +161,8 @@ public interface IGuiGame { void setSelectables(final Iterable cards); void clearSelectables(); boolean isSelecting(); + boolean isGamePaused(); + public void setgamePause(boolean pause); void awaitNextInput(); void cancelAwaitNextInput(); diff --git a/forge-gui/src/main/java/forge/match/AbstractGuiGame.java b/forge-gui/src/main/java/forge/match/AbstractGuiGame.java index bd8bff93ddf..0e571e8c99a 100644 --- a/forge-gui/src/main/java/forge/match/AbstractGuiGame.java +++ b/forge-gui/src/main/java/forge/match/AbstractGuiGame.java @@ -38,6 +38,7 @@ public abstract class AbstractGuiGame implements IGuiGame, IMayViewCards { private IGameController spectator = null; private final Map gameControllers = Maps.newHashMap(); private final Map originalGameControllers = Maps.newHashMap(); + private boolean gamePause = false; public final boolean hasLocalPlayers() { return !gameControllers.isEmpty(); @@ -261,6 +262,8 @@ public abstract class AbstractGuiGame implements IGuiGame, IMayViewCards { public boolean isSelecting() { return !selectableCards.isEmpty(); } + public boolean isGamePaused() { return gamePause; } + public void setgamePause(boolean pause) { gamePause = pause; } /** Concede game, bring up WinLose UI. */ public boolean concede() { @@ -295,7 +298,8 @@ public abstract class AbstractGuiGame implements IGuiGame, IMayViewCards { if (showConfirmDialog(Localizer.getInstance().getMessage("lblCloseGameSpectator"), Localizer.getInstance().getMessage("lblCloseGame"), Localizer.getInstance().getMessage("lblClose"), Localizer.getInstance().getMessage("lblCancel"))) { IGameController controller = spectator; spectator = null; //ensure we don't prompt again, including when calling nextGameDecision below - controller.selectButtonOk(); //pause + if (!isGamePaused()) + controller.selectButtonOk(); //pause controller.nextGameDecision(NextGameDecision.QUIT); } return false; //let logic above handle closing current screen diff --git a/forge-gui/src/main/java/forge/match/input/InputPlaybackControl.java b/forge-gui/src/main/java/forge/match/input/InputPlaybackControl.java index c7f6f763ab7..fd01edfe5bf 100644 --- a/forge-gui/src/main/java/forge/match/input/InputPlaybackControl.java +++ b/forge-gui/src/main/java/forge/match/input/InputPlaybackControl.java @@ -48,6 +48,7 @@ public class InputPlaybackControl extends InputSyncronizedBase { } else { getController().getGui().updateButtons(null, "Pause", isFast ? "1x Speed" : "10x Faster", true, true, true); } + getController().getGui().setgamePause(isPaused); } public void pause() { From d0a23fbf14c2e7b05aa8279df02a2d30d16f4e7e Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Sat, 16 Nov 2019 17:36:30 +0800 Subject: [PATCH 16/20] Add support for ".fullborder" cards (to differentiate full image cards and full image cards with full borders, so it will only crop full image cards with full borders) --- forge-core/src/main/java/forge/ImageKeys.java | 6 +++++- forge-gui-mobile/src/forge/assets/ImageCache.java | 4 +++- forge-gui-mobile/src/forge/card/CardImage.java | 3 ++- forge-gui-mobile/src/forge/card/CardImageRenderer.java | 7 ++++--- forge-gui-mobile/src/forge/card/CardRenderer.java | 9 ++++++--- 5 files changed, 20 insertions(+), 9 deletions(-) diff --git a/forge-core/src/main/java/forge/ImageKeys.java b/forge-core/src/main/java/forge/ImageKeys.java index 3e5192ba642..a8425783a25 100644 --- a/forge-core/src/main/java/forge/ImageKeys.java +++ b/forge-core/src/main/java/forge/ImageKeys.java @@ -111,7 +111,11 @@ public final class ImageKeys { file = findFile(dir, TextUtil.fastReplace(filename, "AE", "Ae")); if (file != null) { return file; } } - + //try fullborder... + if (filename.contains(".full")) { + file = findFile(dir, TextUtil.fastReplace(filename, ".full", ".fullborder")); + if (file != null) { return file; } + } // some S00 cards are really part of 6ED String s2kAlias = getSetFolder("S00"); if (filename.startsWith(s2kAlias)) { diff --git a/forge-gui-mobile/src/forge/assets/ImageCache.java b/forge-gui-mobile/src/forge/assets/ImageCache.java index 2ea5a109f4e..af1013a6a86 100644 --- a/forge-gui-mobile/src/forge/assets/ImageCache.java +++ b/forge-gui-mobile/src/forge/assets/ImageCache.java @@ -167,7 +167,9 @@ public class ImageCache { public static void preloadCache(Iterable keys) { cache.getAll(keys); } - public static TextureRegion croppedBorderImage(Texture image) { + public static TextureRegion croppedBorderImage(Texture image, boolean fullborder) { + if (!fullborder) + return new TextureRegion(image); float rscale = 0.96f; int rw = Math.round(image.getWidth()*rscale); int rh = Math.round(image.getHeight()*rscale); diff --git a/forge-gui-mobile/src/forge/card/CardImage.java b/forge-gui-mobile/src/forge/card/CardImage.java index ae4d4a5456a..ef841355c75 100644 --- a/forge-gui-mobile/src/forge/card/CardImage.java +++ b/forge-gui-mobile/src/forge/card/CardImage.java @@ -49,12 +49,13 @@ public class CardImage implements FImage { } else { if (Forge.enableUIMask) { + boolean fullborder = image.toString().contains(".fullborder."); if (ImageCache.isExtendedArt(card)) g.drawImage(image, x, y, w, h); else { float radius = (h - w)/8; g.drawfillBorder(3, ImageCache.borderColor(card), x, y, w, h, radius); - g.drawImage(ImageCache.croppedBorderImage(image), x+radius/2.2f, y+radius/2, w*0.96f, h*0.96f); + g.drawImage(ImageCache.croppedBorderImage(image, fullborder), x+radius/2.2f, y+radius/2, w*0.96f, h*0.96f); } } else diff --git a/forge-gui-mobile/src/forge/card/CardImageRenderer.java b/forge-gui-mobile/src/forge/card/CardImageRenderer.java index d0970b271ca..ee03ccc5be2 100644 --- a/forge-gui-mobile/src/forge/card/CardImageRenderer.java +++ b/forge-gui-mobile/src/forge/card/CardImageRenderer.java @@ -332,6 +332,7 @@ public class CardImageRenderer { public static void drawZoom(Graphics g, CardView card, GameView gameView, boolean altState, float x, float y, float w, float h, float dispW, float dispH, boolean isCurrentCard) { boolean canshow = MatchController.instance.mayView(card); final Texture image = ImageCache.getImage(card.getState(altState).getImageKey(MatchController.instance.getLocalPlayers()), true); + boolean fullborder = image.toString().contains(".fullborder."); FImage sleeves = MatchController.getPlayerSleeve(card.getOwner()); if (image == null) { //draw details if can't draw zoom drawDetails(g, card, gameView, altState, x, y, w, h); @@ -363,7 +364,7 @@ public class CardImageRenderer { g.drawRotatedImage(image, new_x, new_y, new_w, new_h, new_x + new_w / 2, new_y + new_h / 2, -90); else { g.drawRotatedImage(FSkin.getBorders().get(0), new_x, new_y, new_w, new_h, new_x + new_w / 2, new_y + new_h / 2, -90); - g.drawRotatedImage(ImageCache.croppedBorderImage(image), new_x+radius/2, new_y+radius/2, new_w*0.96f, new_h*0.96f, (new_x+radius/2) + (new_w*0.96f) / 2, (new_y+radius/2) + (new_h*0.96f) / 2, -90); + g.drawRotatedImage(ImageCache.croppedBorderImage(image, fullborder), new_x+radius/2, new_y+radius/2, new_w*0.96f, new_h*0.96f, (new_x+radius/2) + (new_w*0.96f) / 2, (new_y+radius/2) + (new_h*0.96f) / 2, -90); } } else @@ -375,7 +376,7 @@ public class CardImageRenderer { g.drawRotatedImage(image, new_x, new_y, new_w, new_h, new_x + new_w / 2, new_y + new_h / 2, isAftermath ? 90 : -90); else { g.drawRotatedImage(FSkin.getBorders().get(ImageCache.getFSkinBorders(card)), new_x, new_y, new_w, new_h, new_x + new_w / 2, new_y + new_h / 2, isAftermath ? 90 : -90); - g.drawRotatedImage(ImageCache.croppedBorderImage(image), new_x + radius / 2, new_y + radius / 2, new_w * 0.96f, new_h * 0.96f, (new_x + radius / 2) + (new_w * 0.96f) / 2, (new_y + radius / 2) + (new_h * 0.96f) / 2, isAftermath ? 90 : -90); + g.drawRotatedImage(ImageCache.croppedBorderImage(image, fullborder), new_x + radius / 2, new_y + radius / 2, new_w * 0.96f, new_h * 0.96f, (new_x + radius / 2) + (new_w * 0.96f) / 2, (new_y + radius / 2) + (new_h * 0.96f) / 2, isAftermath ? 90 : -90); } } else @@ -387,7 +388,7 @@ public class CardImageRenderer { g.drawImage(image, x, y, w, h); else { g.drawImage(ImageCache.getBorderImage(card, canshow), x, y, w, h); - g.drawImage(ImageCache.croppedBorderImage(image), x + radius / 2.4f, y + radius / 2, w * 0.96f, h * 0.96f); + g.drawImage(ImageCache.croppedBorderImage(image, fullborder), x + radius / 2.4f, y + radius / 2, w * 0.96f, h * 0.96f); } } else { diff --git a/forge-gui-mobile/src/forge/card/CardRenderer.java b/forge-gui-mobile/src/forge/card/CardRenderer.java index 2da8a09ee8f..a3ae015086a 100644 --- a/forge-gui-mobile/src/forge/card/CardRenderer.java +++ b/forge-gui-mobile/src/forge/card/CardRenderer.java @@ -53,6 +53,7 @@ import forge.util.CardTranslation; import forge.util.Utils; import org.apache.commons.lang3.StringUtils; import forge.util.TextBounds; + import java.util.Arrays; import java.util.ArrayList; import java.util.HashMap; @@ -400,6 +401,7 @@ public class CardRenderer { public static void drawCard(Graphics g, IPaperCard pc, float x, float y, float w, float h, CardStackPosition pos) { Texture image = new RendererCachedCardImage(pc, false).getImage(); + boolean fullborder = image.toString().contains(".fullborder."); float radius = (h - w)/8; if (image != null) { @@ -412,7 +414,7 @@ public class CardRenderer { g.drawImage(image, x, y, w, h); else { g.drawImage(ImageCache.getBorderImage(pc), x, y, w, h); - g.drawImage(ImageCache.croppedBorderImage(image), x + radius / 2.4f, y + radius / 2, w * 0.96f, h * 0.96f); + g.drawImage(ImageCache.croppedBorderImage(image, fullborder), x + radius / 2.4f, y + radius / 2, w * 0.96f, h * 0.96f); } } else @@ -436,6 +438,7 @@ public class CardRenderer { public static void drawCard(Graphics g, CardView card, float x, float y, float w, float h, CardStackPosition pos, boolean rotate) { boolean canshow = MatchController.instance.mayView(card) && !ImageKeys.getTokenKey(ImageKeys.MORPH_IMAGE).equals(card.getCurrentState().getImageKey()); Texture image = new RendererCachedCardImage(card, false).getImage(); + boolean fullborder = image.toString().contains(".fullborder."); FImage sleeves = MatchController.getPlayerSleeve(card.getOwner()); float radius = (h - w)/8; @@ -451,7 +454,7 @@ public class CardRenderer { g.drawRotatedImage(image, x, y, w, h, x + w / 2, y + h / 2, -90); else { g.drawRotatedImage(FSkin.getBorders().get(0), x, y, w, h, x + w / 2, y + h / 2, -90); - g.drawRotatedImage(ImageCache.croppedBorderImage(image), x+radius/2.3f, y+radius/2, w*0.96f, h*0.96f, (x+radius/2.3f) + (w*0.96f) / 2, (y+radius/2) + (h*0.96f) / 2, -90); + g.drawRotatedImage(ImageCache.croppedBorderImage(image, fullborder), x+radius/2.3f, y+radius/2, w*0.96f, h*0.96f, (x+radius/2.3f) + (w*0.96f) / 2, (y+radius/2) + (h*0.96f) / 2, -90); } } else @@ -464,7 +467,7 @@ public class CardRenderer { else { boolean t = (card.getCurrentState().getOriginalColors() != card.getCurrentState().getColors()) || card.getCurrentState().hasChangeColors(); g.drawBorderImage(ImageCache.getBorderImage(card, canshow), ImageCache.getTint(card), x, y, w, h, t); //tint check for changed colors - g.drawImage(ImageCache.croppedBorderImage(image), x + radius / 2.4f, y + radius / 2, w * 0.96f, h * 0.96f); + g.drawImage(ImageCache.croppedBorderImage(image, fullborder), x + radius / 2.4f, y + radius / 2, w * 0.96f, h * 0.96f); } } else { From bf2368ee445e06d42b1df581a35bffd59cb7a9b9 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Sat, 16 Nov 2019 17:44:56 +0800 Subject: [PATCH 17/20] Update --- .../src/forge/card/CardImageRenderer.java | 17 ++++------- .../src/forge/card/CardRenderer.java | 28 +++++++------------ 2 files changed, 16 insertions(+), 29 deletions(-) diff --git a/forge-gui-mobile/src/forge/card/CardImageRenderer.java b/forge-gui-mobile/src/forge/card/CardImageRenderer.java index ee03ccc5be2..b2094fbaa15 100644 --- a/forge-gui-mobile/src/forge/card/CardImageRenderer.java +++ b/forge-gui-mobile/src/forge/card/CardImageRenderer.java @@ -332,7 +332,6 @@ public class CardImageRenderer { public static void drawZoom(Graphics g, CardView card, GameView gameView, boolean altState, float x, float y, float w, float h, float dispW, float dispH, boolean isCurrentCard) { boolean canshow = MatchController.instance.mayView(card); final Texture image = ImageCache.getImage(card.getState(altState).getImageKey(MatchController.instance.getLocalPlayers()), true); - boolean fullborder = image.toString().contains(".fullborder."); FImage sleeves = MatchController.getPlayerSleeve(card.getOwner()); if (image == null) { //draw details if can't draw zoom drawDetails(g, card, gameView, altState, x, y, w, h); @@ -346,8 +345,8 @@ public class CardImageRenderer { if (image == ImageCache.defaultImage) { //support drawing card image manually if card image not found drawCardImage(g, card, altState, x, y, w, h, CardStackPosition.Top); - } - else { + } else { + boolean fullborder = image.toString().contains(".fullborder."); float radius = (h - w)/8; float wh_Adj = ForgeConstants.isGdxPortLandscape && isCurrentCard ? 1.38f:1.0f; float new_w = w*wh_Adj; @@ -366,8 +365,7 @@ public class CardImageRenderer { g.drawRotatedImage(FSkin.getBorders().get(0), new_x, new_y, new_w, new_h, new_x + new_w / 2, new_y + new_h / 2, -90); g.drawRotatedImage(ImageCache.croppedBorderImage(image, fullborder), new_x+radius/2, new_y+radius/2, new_w*0.96f, new_h*0.96f, (new_x+radius/2) + (new_w*0.96f) / 2, (new_y+radius/2) + (new_h*0.96f) / 2, -90); } - } - else + } else g.drawRotatedImage(image, new_x, new_y, new_w, new_h, new_x + new_w / 2, new_y + new_h / 2, -90); } else if (rotateSplit && isCurrentCard && card.isSplitCard() && canshow) { boolean isAftermath = card.getText().contains("Aftermath") || card.getAlternateState().getOracleText().contains("Aftermath"); @@ -378,11 +376,9 @@ public class CardImageRenderer { g.drawRotatedImage(FSkin.getBorders().get(ImageCache.getFSkinBorders(card)), new_x, new_y, new_w, new_h, new_x + new_w / 2, new_y + new_h / 2, isAftermath ? 90 : -90); g.drawRotatedImage(ImageCache.croppedBorderImage(image, fullborder), new_x + radius / 2, new_y + radius / 2, new_w * 0.96f, new_h * 0.96f, (new_x + radius / 2) + (new_w * 0.96f) / 2, (new_y + radius / 2) + (new_h * 0.96f) / 2, isAftermath ? 90 : -90); } - } - else + } else g.drawRotatedImage(image, new_x, new_y, new_w, new_h, new_x + new_w / 2, new_y + new_h / 2, isAftermath ? 90 : -90); - } - else { + } else { if (Forge.enableUIMask && canshow && !ImageKeys.getTokenKey(ImageKeys.MORPH_IMAGE).equals(card.getState(altState).getImageKey())) { if (ImageCache.isExtendedArt(card)) g.drawImage(image, x, y, w, h); @@ -390,8 +386,7 @@ public class CardImageRenderer { g.drawImage(ImageCache.getBorderImage(card, canshow), x, y, w, h); g.drawImage(ImageCache.croppedBorderImage(image, fullborder), x + radius / 2.4f, y + radius / 2, w * 0.96f, h * 0.96f); } - } - else { + } else { if (canshow && !ImageKeys.getTokenKey(ImageKeys.MORPH_IMAGE).equals(card.getState(altState).getImageKey())) g.drawImage(image, x, y, w, h); else // sleeve diff --git a/forge-gui-mobile/src/forge/card/CardRenderer.java b/forge-gui-mobile/src/forge/card/CardRenderer.java index a3ae015086a..6dee11cb8cc 100644 --- a/forge-gui-mobile/src/forge/card/CardRenderer.java +++ b/forge-gui-mobile/src/forge/card/CardRenderer.java @@ -401,14 +401,13 @@ public class CardRenderer { public static void drawCard(Graphics g, IPaperCard pc, float x, float y, float w, float h, CardStackPosition pos) { Texture image = new RendererCachedCardImage(pc, false).getImage(); - boolean fullborder = image.toString().contains(".fullborder."); float radius = (h - w)/8; if (image != null) { if (image == ImageCache.defaultImage) { CardImageRenderer.drawCardImage(g, CardView.getCardForUi(pc), false, x, y, w, h, pos); - } - else { + } else { + boolean fullborder = image.toString().contains(".fullborder."); if (Forge.enableUIMask) { if (ImageCache.isExtendedArt(pc)) g.drawImage(image, x, y, w, h); @@ -416,8 +415,7 @@ public class CardRenderer { g.drawImage(ImageCache.getBorderImage(pc), x, y, w, h); g.drawImage(ImageCache.croppedBorderImage(image, fullborder), x + radius / 2.4f, y + radius / 2, w * 0.96f, h * 0.96f); } - } - else + } else g.drawImage(image, x, y, w, h); } if (pc.isFoil()) { //draw foil effect if needed @@ -427,8 +425,7 @@ public class CardRenderer { } drawFoilEffect(g, card, x, y, w, h, false); } - } - else { + } else { if (Forge.enableUIMask) //render this if mask is still loading CardImageRenderer.drawCardImage(g, CardView.getCardForUi(pc), false, x, y, w, h, pos); else //draw cards without textures as just a black rectangle @@ -438,15 +435,14 @@ public class CardRenderer { public static void drawCard(Graphics g, CardView card, float x, float y, float w, float h, CardStackPosition pos, boolean rotate) { boolean canshow = MatchController.instance.mayView(card) && !ImageKeys.getTokenKey(ImageKeys.MORPH_IMAGE).equals(card.getCurrentState().getImageKey()); Texture image = new RendererCachedCardImage(card, false).getImage(); - boolean fullborder = image.toString().contains(".fullborder."); FImage sleeves = MatchController.getPlayerSleeve(card.getOwner()); float radius = (h - w)/8; if (image != null) { if (image == ImageCache.defaultImage) { CardImageRenderer.drawCardImage(g, card, false, x, y, w, h, pos); - } - else { + } else { + boolean fullborder = image.toString().contains(".fullborder."); if(FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_ROTATE_PLANE_OR_PHENOMENON) && (card.getCurrentState().isPhenomenon() || card.getCurrentState().isPlane()) && rotate){ if (Forge.enableUIMask) { @@ -456,11 +452,9 @@ public class CardRenderer { g.drawRotatedImage(FSkin.getBorders().get(0), x, y, w, h, x + w / 2, y + h / 2, -90); g.drawRotatedImage(ImageCache.croppedBorderImage(image, fullborder), x+radius/2.3f, y+radius/2, w*0.96f, h*0.96f, (x+radius/2.3f) + (w*0.96f) / 2, (y+radius/2) + (h*0.96f) / 2, -90); } - } - else + } else g.drawRotatedImage(image, x, y, w, h, x + w / 2, y + h / 2, -90); - } - else { + } else { if (Forge.enableUIMask && canshow) { if (ImageCache.isExtendedArt(card)) g.drawImage(image, x, y, w, h); @@ -469,8 +463,7 @@ public class CardRenderer { g.drawBorderImage(ImageCache.getBorderImage(card, canshow), ImageCache.getTint(card), x, y, w, h, t); //tint check for changed colors g.drawImage(ImageCache.croppedBorderImage(image, fullborder), x + radius / 2.4f, y + radius / 2, w * 0.96f, h * 0.96f); } - } - else { + } else { if (canshow) g.drawImage(image, x, y, w, h); else // draw card back sleeves @@ -479,8 +472,7 @@ public class CardRenderer { } } drawFoilEffect(g, card, x, y, w, h, false); - } - else { + } else { if (Forge.enableUIMask) //render this if mask is still loading CardImageRenderer.drawCardImage(g, card, false, x, y, w, h, pos); else //draw cards without textures as just a black rectangle From 1c19f3663792dca97c3aee91a95071798a9c30a9 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Sun, 17 Nov 2019 08:02:11 +0800 Subject: [PATCH 18/20] Fix cards like planes/phenomenon not loading an existing images that have .full/.fullborder --- forge-core/src/main/java/forge/ImageKeys.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/forge-core/src/main/java/forge/ImageKeys.java b/forge-core/src/main/java/forge/ImageKeys.java index a8425783a25..e63ed5543ab 100644 --- a/forge-core/src/main/java/forge/ImageKeys.java +++ b/forge-core/src/main/java/forge/ImageKeys.java @@ -116,6 +116,13 @@ public final class ImageKeys { file = findFile(dir, TextUtil.fastReplace(filename, ".full", ".fullborder")); if (file != null) { return file; } } + //if an image, like phenomenon or planes is missing .full in their filenames but you have an existing images that have .full/.fullborder + if (!filename.contains(".full")) { + file = findFile(dir, filename+".full"); + if (file != null) { return file; } + file = findFile(dir, filename+".fullborder"); + if (file != null) { return file; } + } // some S00 cards are really part of 6ED String s2kAlias = getSetFolder("S00"); if (filename.startsWith(s2kAlias)) { From c600dc3b4f6e9a51129bfea28f8987c4cbb3639e Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Sun, 17 Nov 2019 08:10:29 +0800 Subject: [PATCH 19/20] Update --- forge-core/src/main/java/forge/ImageKeys.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-core/src/main/java/forge/ImageKeys.java b/forge-core/src/main/java/forge/ImageKeys.java index e63ed5543ab..e07f836566d 100644 --- a/forge-core/src/main/java/forge/ImageKeys.java +++ b/forge-core/src/main/java/forge/ImageKeys.java @@ -118,9 +118,9 @@ public final class ImageKeys { } //if an image, like phenomenon or planes is missing .full in their filenames but you have an existing images that have .full/.fullborder if (!filename.contains(".full")) { - file = findFile(dir, filename+".full"); + file = findFile(dir, TextUtil.addSuffix(filename,".full")); if (file != null) { return file; } - file = findFile(dir, filename+".fullborder"); + file = findFile(dir, TextUtil.addSuffix(filename,".fullborder")); if (file != null) { return file; } } // some S00 cards are really part of 6ED From 555a1f8411644dabebc5b11faaac343d5bb37a5e Mon Sep 17 00:00:00 2001 From: CCTV-1 Date: Sun, 17 Nov 2019 11:11:41 +0800 Subject: [PATCH 20/20] update simplified chinese translation --- forge-gui/res/languages/zh-CN.properties | 162 +++++++++++------------ 1 file changed, 81 insertions(+), 81 deletions(-) diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties index 410bc7da90c..1ed52d9e239 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -757,7 +757,7 @@ lblcopiesof=副本 #ItemListView.java lblUniqueCardsOnly=每张牌都只显示一个画 ttUniqueCardsOnly=切换是否每张牌都只显示一个画 -lblListView=List View +lblListView=列表视图 #ACEditorBase.java lblAddcard=添加牌 ttAddcard=将选定的牌添加到当前套牌(双击该行或者空格) @@ -790,9 +790,9 @@ lblCollapseallgroups=折叠所有组 lblGroupby=分组 lblPileby=堆积 lblColumns=行 -lblPiles=Piles: -lblGroups=Groups: -lblImageView=Image View +lblPiles=柱状: +lblGroups=分组: +lblImageView=图片视图 #CEditorVariant.java, CEditorConstructed.java lblCatalog=目录 lblAdd=添加 @@ -812,7 +812,7 @@ lbltoplanardeck=到时空竞逐套牌 lbltoconspiracydeck=到诡局套牌 lblMove=移到 #VDock.java -lblDock=Dock +lblDock=停靠栏 lblViewDeckList=查看套牌列表 lblRevertLayout=还原布局 lblOpenLayout=打开布局 @@ -1244,138 +1244,138 @@ lblClickOnYourLifeTotalToPayLifeForPhyrexianMana=单击你的总生命,以生 lblClickOnYourLifeTotalToPayLifeForBlackMana=单击你的总生命,以生命值支付黑色法术力。 lblClickOnYourLifeTotalToPayLifeForPhyrexianOrBlackMana=单击你的总生命,以生命值支付黑色或非瑞克西亚法术力。 #GameLogFormatter.java -lblLogScryTopBottomLibrary=%s scried %top card(s) to the top of the library and %bottom card(s) to the bottom of the library -lblLogScryTopLibrary=%s scried %top card(s) to the top of the library -lblLogScryBottomLibrary=%s scried %bottom card(s) to the bottom of the library -lblPlayerHasMulliganedDownToNCards=%s has mulliganed down to %d cards. -lblPlayerDidntAttackThisTurn=%s didn't attack this turn. +lblLogScryTopBottomLibrary=%s将%top张牌放到牌库顶和%bottom张牌放到牌库底 +lblLogScryTopLibrary=%s将%top张牌放到牌库顶 +lblLogScryBottomLibrary=%s将%top张牌放到牌库底 +lblPlayerHasMulliganedDownToNCards=%s已经调度到%d张牌。 +lblPlayerDidntAttackThisTurn=%s本回合没有进攻。 #FormatFilter.java -lblAllSetsFormats=All Sets/Formats -lblOtherFormats=Other Formats... -lblChooseSets=Choose Sets... +lblAllSetsFormats=所有系列/赛制 +lblOtherFormats=其他赛制 +lblChooseSets=选择系列 #HistoricFormatSelect.java -lblChooseFormat=Choose Format +lblChooseFormat=选择赛制 #TriggerAdapt.java -lblAdapt=Adapt +lblAdapt=演化 #TriggerAttached.java -lblAttachee=Attachee +lblAttachee=结附 #TriggerAttackerBlocked.java -lblNumberBlockers=Number Blockers -lblBlocker=Blocker +lblNumberBlockers=阻挡者数 +lblBlocker=阻挡者 #TriggerAttackersDeclared.java -lblNumberAttackers=Number Attackers +lblNumberAttackers=攻击者数 #TriggerAttackerUnblockedOnce.java -lblAttackingPlayer=AttackingPlayer -lblDefenders=Defenders +lblAttackingPlayer=进攻牌手 +lblDefenders=阻挡者 #TriggerBecomeMonarch.java -lblPlayer=Player +lblPlayer=牌手 #TriggerBecomeMonstrous.java -lblMonstrous=Monstrous +lblMonstrous=已蛮化 #TriggerBecomeRenowned.java -lblRenowned=Renowned +lblRenowned=已铭勇 #TriggerBecomesTarget.java -lblSource=Source -lblTarget=Target +lblSource=来源 +lblTarget=目标 #TriggerBecomesTargetOnce.java -lblTargets=Targets +lblTargets=目标 #TriggerBlockersDeclared.java -lblBlockers=Blockers +lblBlockers=阻挡者 #TriggerChampioned.java -lblChampioned=Championed +lblChampioned=夺冠 #TriggerChangesController.java -lblChangedController=Changed Controller +lblChangedController=改变操控者 #TriggerChangesZone.java -lblZoneChanger=Zone Changer +lblZoneChanger=改变区域 #TriggerChangesZoneAll.java -lblAmount=Amount +lblAmount=共计 #TriggerCounterAdded.java -lblAddedOnce=Added once +lblAddedOnce=添加一次 #TriggerCountered.java -lblCountered=Countered -lblCause=Cause +lblCountered=反击 +lblCause=原因 #TriggerCounteredRemoved.java -lblRemovedFrom=Removed from +lblRemovedFrom=删除 #TriggerCrewed.java -lblVehicle=Vehicle -lblCrew=Crew +lblVehicle=载具 +lblCrew=搭载 #TriggerCycled.java -lblCycled=Cycled +lblCycled=已循环 #TriggerDamageDealtOnce.java -lblDamageSource=Damage Source -lblDamaged=Damaged +lblDamageSource=伤害来源 +lblDamaged=造成伤害 #TriggerDamagePrevented.java -lblDamageTarget=Damage Target +lblDamageTarget=伤害目标 #TriggerDestroyed.java -lblDestroyed=Destroyed -lblDestroyer=Destroyer +lblDestroyed=被消灭 +lblDestroyer=破坏者 #TriggerDevoured.java -lblDevoured=Devoured +lblDevoured=已吞噬 #TriggerDiscarded.java -lblDiscarded=Discarded +lblDiscarded=丢弃 #TriggerEvolved.java -lblEvolved=Evolved +lblEvolved=已进化 #TriggerExerted.java -lblExerted=Exerted +lblExerted=已耗竭 #TriggerExiled.java -lblExiled=Exiled +lblExiled=被放逐 #TriggerExploited.java -lblExploited=Exploited -lblExploiter=Exploiter +lblExploited=被榨取 +lblExploiter=榨取者 #TriggerExplores.java -lblExplorer=Explorer +lblExplorer=勘察者 #TriggerFight.java -lblFighter=Fighter +lblFighter=互斗者 #TriggerLandPlayed.java -lblLandPlayed=Land played +lblLandPlayed=已下地 #TriggerLifeGained.java -lblGainedAmount=Gained Amount +lblGainedAmount=获得的数量 #TriggerLifeLost.java -lblLostAmount=Lost Amount +lblLostAmount=失去的数量 #TriggerPayCumulativeUpkeep.java -lblMana=Mana +lblMana=法术力 #TriggerPayLife.java -lblPaidAmount=Paid Amount +lblPaidAmount=已支付的数量 #TriggerPhaseIn.java -lblPhasedIn=Phased In +lblPhasedIn=已跃回 #TriggerPhaseOut.java -lblPhasedOut=Phased Out +lblPhasedOut=已跃离 #TriggerRoller.java -lblRoller=Roller +lblRoller=回滚者 #TriggerPlaneswalkedFrom.java -lblPlaneswalkedFrom=Planeswalked From +lblPlaneswalkedFrom=时空旅行自 #TriggerPlaneswalkedTo.java -lblPlaneswalkedTo=Planeswalked To +lblPlaneswalkedTo=时空旅行到 #TriggerRegenerated.java -lblRegenerated=Regenerated +lblRegenerated=已重生 #TriggerRevealed.java -lblRevealed=Revealed +lblRevealed=已展示 #TriggerSacrificed.java -lblSacrificed=Sacrificed +lblSacrificed=已牺牲 #TriggerScry.java -lblScryer=Scryer +lblScryer=占卜者 #TriggerSearchLibrary.java -lblSearcher=Searcher +lblSearcher=搜寻者 #TriggerShuffled.java -lblShuffler=Shuffler +lblShuffler=洗牌者 #TriggerSpellAbilityCast.java -lblActivator=Activator +lblActivator=启动自 #TriggerSpellAbilityCast.java -lblSpellAbility=SpellAbility +lblSpellAbility=咒语异能 #TriggerTaps.java -lblTapped=Tapped +lblTapped=已横置 #TriggerTapsForMana.java -lblTappedForMana=Tapped for Mana -lblProduced=Produced +lblTappedForMana=为法术力横置 +lblProduced=产生 #TriggerTransformed.java -lblTransformed=Transformed +lblTransformed=已转化 #TriggerTurnFaceUp.java -lblTurnFaceUp=Turn Face up +lblTurnFaceUp=面朝上 #TriggerUnattach.java -lblObject=Object -lblAttachment=Attachment +lblObject=物件 +lblAttachment=装备 #TriggerUntaps.java -lblUntapped=Untapped +lblUntapped=未横置 #TriggerVote.java -lblVoters=Voters +lblVoters=投票 #PermanentCreatureEffect.java -lblCreature=Creature \ No newline at end of file +lblCreature=生物 \ No newline at end of file