Mobile - Translation: Deck Chooser, Deck Editor and Match Screen.

Fix compare String with equals()
This commit is contained in:
Peter
2019-09-13 11:19:35 +02:00
parent 207eaf482d
commit 16da63aa9c
7 changed files with 241 additions and 87 deletions

View File

@@ -36,6 +36,7 @@ import forge.toolbox.ListChooser;
import forge.toolbox.FEvent.FEventHandler;
import forge.toolbox.FOptionPane;
import forge.util.Callback;
import forge.util.Localizer;
import forge.util.Utils;
import forge.util.storage.IStorage;
@@ -63,10 +64,10 @@ public class FDeckChooser extends FScreen {
private boolean refreshingDeckType;
private final DeckManager lstDecks;
private final FButton btnNewDeck = new FButton("New Deck");
private final FButton btnEditDeck = new FButton("Edit Deck");
private final FButton btnViewDeck = new FButton("View Deck");
private final FButton btnRandom = new FButton("Random Deck");
private final FButton btnNewDeck = new FButton(Localizer.getInstance().getMessage("lblNewDeck"));
private final FButton btnEditDeck = new FButton(Localizer.getInstance().getMessage("btnEditDeck"));
private final FButton btnViewDeck = new FButton(Localizer.getInstance().getMessage("lblViewDeck"));
private final FButton btnRandom = new FButton(Localizer.getInstance().getMessage("lblRandomDeck"));
private RegisteredPlayer player;
private boolean isAi;

View File

@@ -36,6 +36,7 @@ import forge.toolbox.FEvent.FEventType;
import forge.util.Callback;
import forge.util.ItemPool;
import forge.util.Lang;
import forge.util.Localizer;
import forge.util.Utils;
import forge.util.storage.IStorage;
import org.apache.commons.lang3.StringUtils;
@@ -163,6 +164,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
}
private static DeckEditorPage[] getPages(EditorType editorType) {
final Localizer localizer = Localizer.getInstance();
switch (editorType) {
default:
case Constructed:
@@ -195,7 +197,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
return new DeckEditorPage[] {
new CatalogPage(ItemManagerConfig.CARD_CATALOG),
new DeckSectionPage(DeckSection.Main),
new DeckSectionPage(DeckSection.Commander, ItemManagerConfig.OATHBREAKER_SECTION, "Oathbreaker", FSkinImage.COMMANDER),
new DeckSectionPage(DeckSection.Commander, ItemManagerConfig.OATHBREAKER_SECTION, localizer.getMessage("lblOathbreaker"), FSkinImage.COMMANDER),
new DeckSectionPage(DeckSection.Sideboard)
};
case Archenemy:
@@ -210,7 +212,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
};
case Quest:
return new DeckEditorPage[] {
new CatalogPage(ItemManagerConfig.QUEST_EDITOR_POOL, "Inventory", FSkinImage.QUEST_BOX),
new CatalogPage(ItemManagerConfig.QUEST_EDITOR_POOL, localizer.getMessage("lblInventory"), FSkinImage.QUEST_BOX),
new DeckSectionPage(DeckSection.Main, ItemManagerConfig.QUEST_DECK_EDITOR),
new DeckSectionPage(DeckSection.Sideboard, ItemManagerConfig.QUEST_DECK_EDITOR)
};
@@ -222,8 +224,8 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
};
case PlanarConquest:
return new DeckEditorPage[] {
new CatalogPage(ItemManagerConfig.CONQUEST_COLLECTION, "Collection", FSkinImage.SPELLBOOK),
new DeckSectionPage(DeckSection.Main, ItemManagerConfig.CONQUEST_DECK_EDITOR, "Deck", FSkinImage.DECKLIST),
new CatalogPage(ItemManagerConfig.CONQUEST_COLLECTION, localizer.getMessage("lblCollection"), FSkinImage.SPELLBOOK),
new DeckSectionPage(DeckSection.Main, ItemManagerConfig.CONQUEST_DECK_EDITOR, localizer.getMessage("lblDeck"), FSkinImage.DECKLIST),
new DeckSectionPage(DeckSection.Commander, ItemManagerConfig.COMMANDER_SECTION)
};
}
@@ -334,7 +336,9 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
FPopupMenu menu = new FPopupMenu() {
@Override
protected void buildMenu() {
addItem(new FMenuItem("Add Basic Lands", FSkinImage.LAND, new FEventHandler() {
final Localizer localizer = Localizer.getInstance();
addItem(new FMenuItem(localizer.getMessage("lblAddBasicLands"), FSkinImage.LAND, new FEventHandler() {
@Override
public void handleEvent(FEvent e) {
CardEdition defaultLandSet;
@@ -367,7 +371,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
}
}));
if (!isLimitedEditor()) {
addItem(new FMenuItem("Import from Clipboard", FSkinImage.OPEN, new FEventHandler() {
addItem(new FMenuItem(localizer.getMessage("lblImportFromClipboard"), FSkinImage.OPEN, new FEventHandler() {
@Override
public void handleEvent(FEvent e) {
FDeckImportDialog dialog = new FDeckImportDialog(!deck.isEmpty(), new Callback<Deck>() {
@@ -386,11 +390,11 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
setSelectedPage(getMainDeckPage()); //select main deck page if needed so main deck if visible below dialog
}
}));
addItem(new FMenuItem("Save As...", FSkinImage.SAVEAS, new FEventHandler() {
addItem(new FMenuItem(localizer.getMessage("lblSaveAs"), FSkinImage.SAVEAS, new FEventHandler() {
@Override
public void handleEvent(FEvent e) {
String defaultName = editorType.getController().getNextAvailableName();
FOptionPane.showInputDialog("Enter name for new copy of deck", defaultName, new Callback<String>() {
FOptionPane.showInputDialog(localizer.getMessage("lblNameNewCopyDeck"), defaultName, new Callback<String>() {
@Override
public void run(String result) {
if (!StringUtils.isEmpty(result)) {
@@ -402,10 +406,10 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
}));
}
if (allowRename()) {
addItem(new FMenuItem("Rename Deck", FSkinImage.EDIT, new FEventHandler() {
addItem(new FMenuItem(localizer.getMessage("lblRenameDeck"), FSkinImage.EDIT, new FEventHandler() {
@Override
public void handleEvent(FEvent e) {
FOptionPane.showInputDialog("Enter new name for deck", deck.getName(), new Callback<String>() {
FOptionPane.showInputDialog(localizer.getMessage("lblNewNameDeck"), deck.getName(), new Callback<String>() {
@Override
public void run(String result) {
editorType.getController().rename(result);
@@ -415,12 +419,12 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
}));
}
if (allowDelete()) {
addItem(new FMenuItem("Delete Deck", FSkinImage.DELETE, new FEventHandler() {
addItem(new FMenuItem(localizer.getMessage("lblDeleteDeck"), FSkinImage.DELETE, new FEventHandler() {
@Override
public void handleEvent(FEvent e) {
FOptionPane.showConfirmDialog(
"Are you sure you want to delete '" + deck.getName() + "'?",
"Delete Deck", "Delete", "Cancel", false, new Callback<Boolean>() {
localizer.getMessage("lblConfirmDelete") + " '" + deck.getName() + "'?",
localizer.getMessage("lblDeleteDeck"), localizer.getMessage("lblDelete"), localizer.getMessage("lblCancel"), false, new Callback<Boolean>() {
@Override
public void run(Boolean result) {
if (result) {
@@ -432,7 +436,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
}
}));
}
addItem(new FMenuItem("Copy to Clipboard", new FEventHandler() {
addItem(new FMenuItem(localizer.getMessage("btnCopyToClipboard"), new FEventHandler() {
@Override
public void handleEvent(FEvent e) {
FDeckViewer.copyDeckToClipboard(deck);
@@ -538,7 +542,8 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
if (StringUtils.isEmpty(deck.getName())) {
List<PaperCard> commanders = deck.getCommanders(); //use commander name as default deck name
String initialInput = Lang.joinHomogenous(commanders);
FOptionPane.showInputDialog("Enter name for new deck", initialInput, new Callback<String>() {
final Localizer localizer = Localizer.getInstance();
FOptionPane.showInputDialog(localizer.getMessage("lblNameNewDeck"), initialInput, new Callback<String>() {
@Override
public void run(String result) {
if (StringUtils.isEmpty(result)) { return; }
@@ -566,7 +571,8 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
super.onClose(canCloseCallback); //can skip prompt if draft saved
return;
}
FOptionPane.showOptionDialog("Save changes to current deck?", "",
final Localizer localizer = Localizer.getInstance();
FOptionPane.showOptionDialog(localizer.getMessage("lblSaveChangesCurrentDeck"), "",
FOptionPane.QUESTION_ICON, onCloseOptions, new Callback<Integer>() {
@Override
public void run(Integer result) {
@@ -828,7 +834,8 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
callback.run(max);
}
else {
GuiChoose.getInteger(cardManager.getSelectedItem() + " - " + verb + " how many?", 1, max, 20, callback);
final Localizer localizer = Localizer.getInstance();
GuiChoose.getInteger(cardManager.getSelectedItem() + " - " + verb + " " + localizer.getMessage("lblHowMany"), 1, max, 20, callback);
}
}
}));
@@ -962,7 +969,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
private boolean initialized, needRefreshWhenShown;
protected CatalogPage(ItemManagerConfig config) {
this(config, "Catalog", FSkinImage.FOLDER);
this(config, Localizer.getInstance().getMessage("lblCatalog"), FSkinImage.FOLDER);
}
protected CatalogPage(ItemManagerConfig config, String caption0, FImage icon0) {
super(config, caption0, icon0);
@@ -993,13 +1000,14 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
}
protected String getItemManagerCaption() {
final Localizer localizer = Localizer.getInstance();
switch (parentScreen.getEditorType()) {
case Archenemy:
return "Schemes";
return localizer.getMessage("lblSchemes");
case Planechase:
return "Planes";
return localizer.getMessage("lblPlanes");
default:
return "Cards";
return localizer.getMessage("lblCards");
}
}
@@ -1018,6 +1026,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
public void refresh() {
Predicate<PaperCard> additionalFilter = null;
final EditorType editorType = parentScreen.getEditorType();
final Localizer localizer = Localizer.getInstance();
switch (editorType) {
case Archenemy:
cardManager.setPool(ItemPool.createFrom(FModel.getMagicDb().getVariantCards().getAllCards(Predicates.compose(CardRulesPredicates.Presets.IS_SCHEME, PaperCard.FN_GET_RULES)), PaperCard.class), true);
@@ -1047,19 +1056,19 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
switch (editorType) {
case Commander:
additionalFilter = DeckFormat.Commander.isLegalCommanderPredicate();
cardManager.setCaption("Commanders");
cardManager.setCaption(localizer.getMessage("lblCommanders"));
break;
case Oathbreaker:
additionalFilter = DeckFormat.Oathbreaker.isLegalCommanderPredicate();
cardManager.setCaption("Oathbreakers");
cardManager.setCaption(localizer.getMessage("lblOathbreakers"));
break;
case TinyLeaders:
additionalFilter = DeckFormat.TinyLeaders.isLegalCommanderPredicate();
cardManager.setCaption("Commanders");
cardManager.setCaption(localizer.getMessage("lblCommanders"));
break;
case Brawl:
additionalFilter = DeckFormat.Brawl.isLegalCommanderPredicate();
cardManager.setCaption("Commanders");
cardManager.setCaption(localizer.getMessage("lblCommanders"));
break;
default:
// Do nothing
@@ -1083,7 +1092,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
default:
// Do nothing
}
cardManager.setCaption("Cards");
cardManager.setCaption(localizer.getMessage("lblCards"));
}
// fall through to below
default:
@@ -1117,8 +1126,10 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
@Override
protected void buildMenu(final FDropDownMenu menu, final PaperCard card) {
final Localizer localizer = Localizer.getInstance();
if (!needsCommander() && !canOnlyBePartnerCommander(card)) {
addItem(menu, "Add", "to " + parentScreen.getMainDeckPage().cardManager.getCaption(), parentScreen.getMainDeckPage().getIcon(), true, true, new Callback<Integer>() {
addItem(menu, localizer.getMessage("lblAdd"), localizer.getMessage("lblTo") + " " + parentScreen.getMainDeckPage().cardManager.getCaption(), parentScreen.getMainDeckPage().getIcon(), true, true, new Callback<Integer>() {
@Override
public void run(Integer result) {
if (result == null || result <= 0) { return; }
@@ -1130,7 +1141,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
}
});
if (parentScreen.getSideboardPage() != null) {
addItem(menu, "Add", "to Sideboard", parentScreen.getSideboardPage().getIcon(), true, true, new Callback<Integer>() {
addItem(menu, localizer.getMessage("lblAdd"), localizer.getMessage("lbltosideboard"), parentScreen.getSideboardPage().getIcon(), true, true, new Callback<Integer>() {
@Override
public void run(Integer result) {
if (result == null || result <= 0) { return; }
@@ -1150,7 +1161,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
//add option to add or remove card from favorites
final CardPreferences prefs = CardPreferences.getPrefs(card);
if (prefs.getStarCount() == 0) {
menu.addItem(new FMenuItem("Add to Favorites", FSkinImage.STAR_FILLED, new FEventHandler() {
menu.addItem(new FMenuItem(localizer.getMessage("lblAddFavorites"), FSkinImage.STAR_FILLED, new FEventHandler() {
@Override
public void handleEvent(FEvent e) {
prefs.setStarCount(1);
@@ -1159,7 +1170,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
}));
}
else {
menu.addItem(new FMenuItem("Remove from Favorites", FSkinImage.STAR_OUTINE, new FEventHandler() {
menu.addItem(new FMenuItem(localizer.getMessage("lblRemoveFavorites"), FSkinImage.STAR_OUTINE, new FEventHandler() {
@Override
public void handleEvent(FEvent e) {
prefs.setStarCount(0);
@@ -1171,7 +1182,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
//if card has more than one art option, add item to change user's preferred art
final List<PaperCard> artOptions = FModel.getMagicDb().getCommonCards().getAllCards(card.getName());
if (artOptions != null && artOptions.size() > 1) {
menu.addItem(new FMenuItem("Change Preferred Art", FSkinImage.SETTINGS, new FEventHandler() {
menu.addItem(new FMenuItem(localizer.getMessage("lblChangePreferredArt"), FSkinImage.SETTINGS, new FEventHandler() {
@Override
public void handleEvent(FEvent e) {
//sort options so current option is on top and selected by default
@@ -1182,7 +1193,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
sortedOptions.add(option);
}
}
GuiChoose.oneOrNone("Select preferred art for " + card.getName(), sortedOptions, new Callback<PaperCard>() {
GuiChoose.oneOrNone(localizer.getMessage("lblSelectPreferredArt") + " " + card.getName(), sortedOptions, new Callback<PaperCard>() {
@Override
public void run(PaperCard result) {
if (result != null) {
@@ -1203,7 +1214,8 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
@Override
protected void buildDeckMenu(FPopupMenu menu) {
if (cardManager.getConfig().getShowUniqueCardsOption()) {
menu.addItem(new FCheckBoxMenuItem("Unique Cards Only", cardManager.getWantUnique(), new FEventHandler() {
final Localizer localizer = Localizer.getInstance();
menu.addItem(new FCheckBoxMenuItem(localizer.getMessage("lblUniqueCardsOnly"), cardManager.getWantUnique(), new FEventHandler() {
@Override
public void handleEvent(FEvent e) {
boolean wantUnique = !cardManager.getWantUnique();
@@ -1226,37 +1238,39 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
protected DeckSectionPage(DeckSection deckSection0, ItemManagerConfig config) {
super(config, null, null);
final Localizer localizer = Localizer.getInstance();
deckSection = deckSection0;
switch (deckSection) {
default:
case Main:
captionPrefix = "Main";
cardManager.setCaption("Main Deck");
captionPrefix = localizer.getMessage("lblMain");
cardManager.setCaption(localizer.getMessage("ttMain"));
icon = MAIN_DECK_ICON;
break;
case Sideboard:
captionPrefix = "Side";
cardManager.setCaption("Sideboard");
captionPrefix = localizer.getMessage("lblSide");
cardManager.setCaption(localizer.getMessage("lblSideboard"));
icon = SIDEBOARD_ICON;
break;
case Commander:
captionPrefix = "Commander";
cardManager.setCaption("Commander");
captionPrefix = localizer.getMessage("lblCommander");
cardManager.setCaption(localizer.getMessage("lblCommander"));
icon = FSkinImage.COMMANDER;
break;
case Avatar:
captionPrefix = "Avatar";
cardManager.setCaption("Avatar");
captionPrefix = localizer.getMessage("lblAvatar");
cardManager.setCaption(localizer.getMessage("lblAvatar"));
icon = new FTextureRegionImage(FSkin.getAvatars().get(0));
break;
case Planes:
captionPrefix = "Planes";
cardManager.setCaption("Planes");
captionPrefix = localizer.getMessage("lblPlanes");
cardManager.setCaption(localizer.getMessage("lblPlanes"));
icon = FSkinImage.CHAOS;
break;
case Schemes:
captionPrefix = "Schemes";
cardManager.setCaption("Schemes");
captionPrefix = localizer.getMessage("lblSchemes");
cardManager.setCaption(localizer.getMessage("lblSchemes"));
icon = FSkinImage.POISON;
break;
}
@@ -1317,10 +1331,11 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
@Override
protected void buildMenu(final FDropDownMenu menu, final PaperCard card) {
final Localizer localizer = Localizer.getInstance();
switch (deckSection) {
default:
case Main:
addItem(menu, "Add", null, FSkinImage.PLUS, true, false, new Callback<Integer>() {
addItem(menu, localizer.getMessage("lblAdd"), null, FSkinImage.PLUS, true, false, new Callback<Integer>() {
@Override
public void run(Integer result) {
if (result == null || result <= 0) { return; }
@@ -1335,7 +1350,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
}
});
if (!parentScreen.isLimitedEditor()) {
addItem(menu, "Remove", null, FSkinImage.MINUS, false, false, new Callback<Integer>() {
addItem(menu, localizer.getMessage("lblRemove"), null, FSkinImage.MINUS, false, false, new Callback<Integer>() {
@Override
public void run(Integer result) {
if (result == null || result <= 0) { return; }
@@ -1348,7 +1363,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
});
}
if (parentScreen.getSideboardPage() != null) {
addItem(menu, "Move", "to Sideboard", parentScreen.getSideboardPage().getIcon(), false, false, new Callback<Integer>() {
addItem(menu, localizer.getMessage("lblMove"), localizer.getMessage("lbltosideboard"), parentScreen.getSideboardPage().getIcon(), false, false, new Callback<Integer>() {
@Override
public void run(Integer result) {
if (result == null || result <= 0) { return; }
@@ -1361,7 +1376,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
addCommanderItems(menu, card, false, false);
break;
case Sideboard:
addItem(menu, "Add", null, FSkinImage.PLUS, true, false, new Callback<Integer>() {
addItem(menu, localizer.getMessage("lblAdd"), null, FSkinImage.PLUS, true, false, new Callback<Integer>() {
@Override
public void run(Integer result) {
if (result == null || result <= 0) { return; }
@@ -1376,7 +1391,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
}
});
if (!parentScreen.isLimitedEditor()) {
addItem(menu, "Remove", null, FSkinImage.MINUS, false, false, new Callback<Integer>() {
addItem(menu, localizer.getMessage("lblRemove"), null, FSkinImage.MINUS, false, false, new Callback<Integer>() {
@Override
public void run(Integer result) {
if (result == null || result <= 0) { return; }
@@ -1388,7 +1403,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
}
});
}
addItem(menu, "Move", "to Main Deck", parentScreen.getMainDeckPage().getIcon(), false, false, new Callback<Integer>() {
addItem(menu, localizer.getMessage("lblMove"), localizer.getMessage("lblToMainDeck"), parentScreen.getMainDeckPage().getIcon(), false, false, new Callback<Integer>() {
@Override
public void run(Integer result) {
if (result == null || result <= 0) { return; }
@@ -1401,7 +1416,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
break;
case Commander:
if (parentScreen.editorType != EditorType.PlanarConquest || isPartnerCommander(card)) {
addItem(menu, "Remove", null, FSkinImage.MINUS, false, false, new Callback<Integer>() {
addItem(menu, localizer.getMessage("lblRemove"), null, FSkinImage.MINUS, false, false, new Callback<Integer>() {
@Override
public void run(Integer result) {
if (result == null || result <= 0) {
@@ -1416,7 +1431,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
}
break;
case Avatar:
addItem(menu, "Remove", null, FSkinImage.MINUS, false, false, new Callback<Integer>() {
addItem(menu, localizer.getMessage("lblRemove"), null, FSkinImage.MINUS, false, false, new Callback<Integer>() {
@Override
public void run(Integer result) {
if (result == null || result <= 0) { return; }
@@ -1434,7 +1449,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
addCard(card, result);
}
});
addItem(menu, "Remove", null, FSkinImage.MINUS, false, false, new Callback<Integer>() {
addItem(menu, localizer.getMessage("lblRemove"), null, FSkinImage.MINUS, false, false, new Callback<Integer>() {
@Override
public void run(Integer result) {
if (result == null || result <= 0) { return; }
@@ -1444,7 +1459,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
});
break;
case Planes:
addItem(menu, "Add", null, FSkinImage.PLUS, true, false, new Callback<Integer>() {
addItem(menu, localizer.getMessage("lblAdd"), null, FSkinImage.PLUS, true, false, new Callback<Integer>() {
@Override
public void run(Integer result) {
if (result == null || result <= 0) { return; }
@@ -1452,7 +1467,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
addCard(card, result);
}
});
addItem(menu, "Remove", null, FSkinImage.MINUS, false, false, new Callback<Integer>() {
addItem(menu, localizer.getMessage("lblRemove"), null, FSkinImage.MINUS, false, false, new Callback<Integer>() {
@Override
public void run(Integer result) {
if (result == null || result <= 0) { return; }
@@ -1513,14 +1528,15 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
@Override
protected void buildMenu(final FDropDownMenu menu, final PaperCard card) {
addItem(menu, "Add", "to Main Deck", parentScreen.getMainDeckPage().getIcon(), true, true, new Callback<Integer>() {
final Localizer localizer = Localizer.getInstance();
addItem(menu, localizer.getMessage("lblAdd"), localizer.getMessage("lblToMainDeck"), parentScreen.getMainDeckPage().getIcon(), true, true, new Callback<Integer>() {
@Override
public void run(Integer result) { //ignore quantity
parentScreen.getMainDeckPage().addCard(card);
afterCardPicked(card);
}
});
addItem(menu, "Add", "to Sideboard", parentScreen.getSideboardPage().getIcon(), true, true, new Callback<Integer>() {
addItem(menu, localizer.getMessage("lblAdd"), localizer.getMessage("lbltosideboard"), parentScreen.getSideboardPage().getIcon(), true, true, new Callback<Integer>() {
@Override
public void run(Integer result) { //ignore quantity
parentScreen.getSideboardPage().addCard(card);
@@ -1630,7 +1646,8 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
if (editor != null) {
String name = this.getModelName();
if (name.isEmpty()) {
name = "[New Deck]";
final Localizer localizer = Localizer.getInstance();
name = "[" + localizer.getMessage("lblNewDeck") + "]";
}
if (!saved) {
name = "*" + name;

View File

@@ -3,6 +3,7 @@ package forge.screens.match;
import java.util.*;
import java.util.Map.Entry;
import forge.util.Localizer;
import org.apache.commons.lang3.tuple.Pair;
import com.badlogic.gdx.Input.Keys;
@@ -136,17 +137,18 @@ public class MatchScreen extends FScreen {
stack.setDropDownContainer(this);
FMenuBar menuBar = (FMenuBar)getHeader();
final Localizer localizer = Localizer.getInstance();
if (topPlayerPrompt == null) {
menuBar.addTab("Game", gameMenu);
menuBar.addTab("Players (" + playerPanels.size() + ")", players);
menuBar.addTab("Log", log);
menuBar.addTab("Dev", devMenu);
menuBar.addTab("Stack (0)", stack);
menuBar.addTab(localizer.getMessage("lblGame"), gameMenu);
menuBar.addTab(localizer.getMessage("lblPlayers") + " (" + playerPanels.size() + ")", players);
menuBar.addTab(localizer.getMessage("lblLog"), log);
menuBar.addTab(localizer.getMessage("lblDev"), devMenu);
menuBar.addTab( localizer.getMessage("lblStack") + " (0)", stack);
}
else {
menuBar.addTab("\u2022 \u2022 \u2022", new PlayerSpecificMenu(true));
stack.setRotate90(true);
menuBar.addTab("Stack (0)", stack);
menuBar.addTab(localizer.getMessage("Stack") + " (0)", stack);
menuBar.addTab("\u2022 \u2022 \u2022", new PlayerSpecificMenu(false));
//create fake menu tabs for other drop downs so they can be positioned as needed
@@ -223,16 +225,18 @@ public class MatchScreen extends FScreen {
@Override
protected void buildMenu() {
final Localizer localizer = Localizer.getInstance();
if (isTopHumanPlayerActive() == getRotate180()) {
addItem(new MenuItem("Game", gameMenu));
addItem(new MenuItem("Players (" + playerPanels.size() + ")", players));
addItem(new MenuItem("Log", log));
addItem(new MenuItem(localizer.getMessage("lblGame"), gameMenu));
addItem(new MenuItem(localizer.getMessage("lblPlayers") + " (" + playerPanels.size() + ")", players));
addItem(new MenuItem(localizer.getMessage("lblLog"), log));
if (ForgePreferences.DEV_MODE) {
addItem(new MenuItem("Dev", devMenu));
addItem(new MenuItem(localizer.getMessage("lblDev"), devMenu));
}
}
else { //TODO: Support using menu when player doesn't have priority
FMenuItem item = new FMenuItem("Must wait for priority...", null);
FMenuItem item = new FMenuItem(localizer.getMessage("lblMustWaitPriority"), null);
item.setEnabled(false);
addItem(item);
}
@@ -665,7 +669,7 @@ public class MatchScreen extends FScreen {
private boolean hasActivePlane(){
if(MatchController.instance.getGameView() != null)
if(MatchController.instance.getGameView().getPlanarPlayer() != null) {
return MatchController.instance.getGameView().getPlanarPlayer().getCurrentPlaneName() != "";
return !MatchController.instance.getGameView().getPlanarPlayer().getCurrentPlaneName().equals("");
}
return false;
}

View File

@@ -937,3 +937,36 @@ nlShowMatchBackground=Show match background image on battlefield, otherwise back
nlTheme=Sets the theme that determines how display components are skinned.
nlVibrateAfterLongPress=Enable quick vibration to signify a long press, such as for card zooming.
nlVibrateWhenLosingLife=Enable vibration when your player loses life or takes damage during a game.
#MatchScreen.java
lblPlayers=Players
lblLog=Log
lblDev=Dev
lblStack=Stack
lblMustWaitPriority=Must wait for priority...
#FDeckEditor.java
lblImportFromClipboard=Import from Clipboard
lblSaveAs=Save As...
lblNameNewCopyDeck=Enter name for new copy of deck
lblRenameDeck=Rename Deck
lblNewNameDeck=Enter new name for deck
lblDeleteDeck=Delete Deck
lblDelete=Delete
lblConfirmDelete=Are you sure you want to delete
lblNameNewDeck=Enter name for new deck
lblSaveChangesCurrentDeck=Save changes to current deck?
lblAddFavorites=Add to Favorites
lblRemoveFavorites=Remove from Favorites
lblChangePreferredArt=Change Preferred Art
lblSelectPreferredArt=Select preferred art for
lblTo=to
lblAvatar=Avatar
lblCards=Cards
lblPlanes=Planes
lblSchemes=Schemes
lblToMainDeck=to Main Deck
lblHowMany=how many?
lblInventory=Inventory
lblCollection=Collection
lblCatalog=Catalog
lblCommanders=Commanders
lblOathbreakers=Oathbreakers

View File

@@ -937,3 +937,36 @@ nlShowMatchBackground=Show match background image on battlefield, otherwise back
nlTheme=Sets the theme that determines how display components are skinned.
nlVibrateAfterLongPress=Enable quick vibration to signify a long press, such as for card zooming.
nlVibrateWhenLosingLife=Enable vibration when your player loses life or takes damage during a game.
#MatchScreen.java
lblPlayers=Players
lblLog=Log
lblDev=Dev
lblStack=Stack
lblMustWaitPriority=Must wait for priority...
#FDeckEditor.java
lblImportFromClipboard=Import from Clipboard
lblSaveAs=Save As...
lblNameNewCopyDeck=Enter name for new copy of deck
lblRenameDeck=Rename Deck
lblNewNameDeck=Enter new name for deck
lblDeleteDeck=Delete Deck
lblDelete=Delete
lblConfirmDelete=Are you sure you want to delete
lblNameNewDeck=Enter name for new deck
lblSaveChangesCurrentDeck=Save changes to current deck?
lblAddFavorites=Add to Favorites
lblRemoveFavorites=Remove from Favorites
lblChangePreferredArt=Change Preferred Art
lblSelectPreferredArt=Select preferred art for
lblTo=to
lblAvatar=Avatar
lblCards=Cards
lblPlanes=Planes
lblSchemes=Schemes
lblToMainDeck=to Main Deck
lblHowMany=how many?
lblInventory=Inventory
lblCollection=Collection
lblCatalog=Catalog
lblCommanders=Commanders
lblOathbreakers=Oathbreakers

View File

@@ -222,7 +222,7 @@ TresetMatchScreenLayout=Restablecer diseño de pantalla de Juego
OKresetMatchScreenLayout=El diseño de la pantalla de Juego se ha restablecido.
#EMenuGroup.java
lblSanctionedFormats=Formatos Oficiales
lblOnlineMultiplayer=Multijugador en linea
lblOnlineMultiplayer=Multijugador en línea
lblQuestMode=Modo Aventura
lblPuzzleMode=Modo Puzzle
lblGauntlets=Desafíos
@@ -230,8 +230,8 @@ lblGameSettings=Configuración
#VLobby.java
lblHeaderConstructedMode=Formato Oficial: Construido
lblGetNewRandomName=Obtener nuevo nombre aleatorio
lbltypeofName=Qué tipo de nombre quieres generar?
lblconfirmName=Quieres usar el nombre de %n, o probar de nuevo?
lbltypeofName=¿Qué tipo de nombre quieres generar?
lblconfirmName=¿Quieres usar el nombre de %n, o probar de nuevo?
lblUseThisName=Usar este nombre
lblTryAgain=Probar de nuevo
lblAddAPlayer=Añadir Jugador
@@ -315,12 +315,12 @@ lblName=Nombre
lblTeam=Equipo
#InputConfirmMulligan.java
lblKeep=Mantener
lblYouAreGoingFirst=tu vas primero!
lblYouAreGoingFirst=tú vas primero!
lblIsGoingFirst=va primero
lblYouAreGoing=vas
lblMulligan=Mulligan
lblDoYouWantToKeepYourHand=¿Quieres quedarte tu mano?
lblReturnForLondon=Return %d card(s) to the bottom of your library
lblReturnForLondon=Devuelve %d carta(s) en la parte inferior de tu biblioteca
lblOk=Ok
lblReset=Reset
lblAuto=Auto
@@ -545,7 +545,7 @@ lblRandomModernColorDecks=Mazos Standard Aleatorio por Color
lblRandomThemeDecks=Mazos Aleatorios Temáticos
lblRandomDecks=Mazos Aleatorios
lblNetDecks=Mazos en línea
lblNetCommanderDecks=Mazos Commander en linea
lblNetCommanderDecks=Mazos Commander en línea
#VSubmenuPuzzleSolve.java
lblSolve=Resolver
lblPuzzleModeSolve=Modo Puzzle: Resolver
@@ -886,7 +886,7 @@ ttType=Type
#HomeScreen.java
lblNewGame=Nueva partida
lblLoadGame=Cargar partida
lblPlayOnline=Jugar en linea
lblPlayOnline=Jugar online
lblSettings=Configuración
#SettingsPage.java
lblAutomaticBugReports=Informes automáticos de errores
@@ -937,3 +937,36 @@ nlShowMatchBackground=Muestra la imagen de fondo de la partida en el campo de ba
nlTheme=Establece el tema que determina el aspecto global del juego.
nlVibrateAfterLongPress=Habilita la vibración rápida cuando se realice una pulsación prolongada, como p.ej. al realizar zoom de la carta.
nlVibrateWhenLosingLife=Habilita la vibración cuando tu jugador pierde vida o sufre daños durante un juego.
#MatchScreen.java
lblPlayers=Jugadores
lblLog=Log
lblDev=Dev
lblStack=Pila
lblMustWaitPriority=Debes esperar debido a la prioridad...
#FDeckEditor.java
lblImportFromClipboard=Importar del portapapeles
lblSaveAs=Guardar como...
lblNameNewCopyDeck=Introduce un nombre para la nueva copia del mazo
lblRenameDeck=Renombrar Mazo
lblNewNameDeck=Introduce un nuevo nombre para el mazo
lblDeleteDeck=Borrar Mazo
lblDelete=Borrar
lblConfirmDelete=¿Estás seguro que quieres borrar
lblNameNewDeck=Introduce un nombre para el nuevo mazo
lblSaveChangesCurrentDeck=¿Guardar los cambios al mazo actual?
lblAddFavorites=Añadir a Favoritos
lblRemoveFavorites=Eliminar de Favoritos
lblChangePreferredArt=Cambiar Arte Preferido
lblSelectPreferredArt=Selecciona el arte preferido para
lblTo=a
lblAvatar=Avatar
lblCards=Cartas
lblPlanes=Planos
lblSchemes=Schemes
lblToMainDeck=al Mazo Principal
lblHowMany=¿cuántos?
lblInventory=Inventario
lblCollection=Colección
lblCatalog=Catálogo
lblCommanders=Commanders
lblOathbreakers=Oathbreakers

View File

@@ -937,3 +937,36 @@ nlShowMatchBackground=在战场显示背景图片,否则显示背景纹理。
nlTheme=设置显示的组件使用的外观主题。
nlVibrateAfterLongPress=启用长按触发震动,例如长按缩放卡牌图片。
nlVibrateWhenLosingLife=启用当玩家在游戏中失去生命或收到伤害时震动。
#MatchScreen.java
lblPlayers=Players
lblLog=Log
lblDev=Dev
lblStack=Stack
lblMustWaitPriority=Must wait for priority...
#FDeckEditor.java
lblImportFromClipboard=Import from Clipboard
lblSaveAs=Save As...
lblNameNewCopyDeck=Enter name for new copy of deck
lblRenameDeck=Rename Deck
lblNewNameDeck=Enter new name for deck
lblDeleteDeck=Delete Deck
lblDelete=Delete
lblConfirmDelete=Are you sure you want to delete
lblNameNewDeck=Enter name for new deck
lblSaveChangesCurrentDeck=Save changes to current deck?
lblAddFavorites=Add to Favorites
lblRemoveFavorites=Remove from Favorites
lblChangePreferredArt=Change Preferred Art
lblSelectPreferredArt=Select preferred art for
lblTo=to
lblAvatar=Avatar
lblCards=Cards
lblPlanes=Planes
lblSchemes=Schemes
lblToMainDeck=to Main Deck
lblHowMany=how many?
lblInventory=Inventory
lblCollection=Collection
lblCatalog=Catalog
lblCommanders=Commanders
lblOathbreakers=Oathbreakers