mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
Merge branch 'master' of git.cardforge.org:core-developers/forge into agetian-master
This commit is contained in:
@@ -35,6 +35,7 @@ public class StaticData {
|
||||
|
||||
private Predicate<PaperCard> standardPredicate;
|
||||
private Predicate<PaperCard> brawlPredicate;
|
||||
private Predicate<PaperCard> pioneerPredicate;
|
||||
private Predicate<PaperCard> modernPredicate;
|
||||
private Predicate<PaperCard> commanderPredicate;
|
||||
private Predicate<PaperCard> oathbreakerPredicate;
|
||||
@@ -197,13 +198,13 @@ public class StaticData {
|
||||
|
||||
public TokenDb getAllTokens() { return allTokens; }
|
||||
|
||||
public Predicate<PaperCard> getStandardPredicate() {
|
||||
return standardPredicate;
|
||||
}
|
||||
|
||||
|
||||
public void setStandardPredicate(Predicate<PaperCard> standardPredicate) { this.standardPredicate = standardPredicate; }
|
||||
|
||||
public void setModernPredicate(Predicate<PaperCard> modernPredicate) { this.modernPredicate = standardPredicate; }
|
||||
public void setPioneerPredicate(Predicate<PaperCard> pioneerPredicate) { this.pioneerPredicate = pioneerPredicate; }
|
||||
|
||||
public void setModernPredicate(Predicate<PaperCard> modernPredicate) { this.modernPredicate = modernPredicate; }
|
||||
|
||||
public void setCommanderPredicate(Predicate<PaperCard> commanderPredicate) { this.commanderPredicate = commanderPredicate; }
|
||||
|
||||
@@ -211,9 +212,11 @@ public class StaticData {
|
||||
|
||||
public void setBrawlPredicate(Predicate<PaperCard> brawlPredicate) { this.brawlPredicate = brawlPredicate; }
|
||||
|
||||
public Predicate<PaperCard> getModernPredicate() {
|
||||
return modernPredicate;
|
||||
}
|
||||
public Predicate<PaperCard> getStandardPredicate() { return standardPredicate; }
|
||||
|
||||
public Predicate<PaperCard> getPioneerPredicate() { return pioneerPredicate; }
|
||||
|
||||
public Predicate<PaperCard> getModernPredicate() { return modernPredicate; }
|
||||
|
||||
public Predicate<PaperCard> getCommanderPredicate() { return commanderPredicate; }
|
||||
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
package forge.card;
|
||||
package forge.util;
|
||||
|
||||
import com.esotericsoftware.minlog.Log;
|
||||
import com.google.common.base.Charsets;
|
||||
import forge.properties.ForgeConstants;
|
||||
import forge.util.LineReader;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
@@ -15,12 +12,12 @@ public class CardTranslation {
|
||||
private static Map <String, String> translatednames;
|
||||
private static Map <String, String> translatedtypes;
|
||||
private static Map <String, String> translatedoracles;
|
||||
private static String languageSelected;
|
||||
private static String languageSelected = "en-US";
|
||||
|
||||
private static void readTranslationFile(String language) {
|
||||
private static void readTranslationFile(String language, String languagesDirectory) {
|
||||
String filename = "cardnames-" + language + ".txt";
|
||||
|
||||
try (LineReader translationFile = new LineReader(new FileInputStream(ForgeConstants.LANG_DIR + filename), Charsets.UTF_8)) {
|
||||
try (LineReader translationFile = new LineReader(new FileInputStream(languagesDirectory + filename), Charsets.UTF_8)) {
|
||||
for (String line : translationFile.readLines()) {
|
||||
String[] matches = line.split("\\|");
|
||||
if (matches.length >= 2) {
|
||||
@@ -34,7 +31,7 @@ public class CardTranslation {
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
Log.error("Error reading translation file: cardnames-" + language + ".txt");
|
||||
System.err.println("Error reading translation file: cardnames-" + language + ".txt");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,7 +63,7 @@ public class CardTranslation {
|
||||
}
|
||||
|
||||
public static HashMap<String, String> getTranslationTexts(String cardname, String altcardname) {
|
||||
HashMap<String, String> translations = new HashMap<String, String>();
|
||||
HashMap<String, String> translations = new HashMap<>();
|
||||
translations.put("name", getTranslatedName(cardname));
|
||||
translations.put("oracle", getTranslatedOracle(cardname));
|
||||
translations.put("altname", getTranslatedName(altcardname));
|
||||
@@ -78,14 +75,14 @@ public class CardTranslation {
|
||||
return !languageSelected.equals("en-US");
|
||||
}
|
||||
|
||||
public static void preloadTranslation(String language) {
|
||||
public static void preloadTranslation(String language, String languagesDirectory) {
|
||||
languageSelected = language;
|
||||
|
||||
if (needsTranslation()) {
|
||||
translatednames = new HashMap<>();
|
||||
translatedtypes = new HashMap<>();
|
||||
translatedoracles = new HashMap<>();
|
||||
readTranslationFile(languageSelected);
|
||||
readTranslationFile(languageSelected, languagesDirectory);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -47,7 +47,7 @@ import java.util.Map.Entry;
|
||||
public class GameFormat implements Comparable<GameFormat> {
|
||||
private final String name;
|
||||
public enum FormatType {Sanctioned, Casual, Historic, Digital, Custom}
|
||||
public enum FormatSubType {Block, Standard, Extended, Modern, Legacy, Vintage, Commander, Planechase, Videogame, MTGO, Custom}
|
||||
public enum FormatSubType {Block, Standard, Extended, Pioneer, Modern, Legacy, Vintage, Commander, Planechase, Videogame, MTGO, Custom}
|
||||
|
||||
// contains allowed sets, when empty allows all sets
|
||||
private FormatType formatType;
|
||||
@@ -290,6 +290,7 @@ public class GameFormat implements Comparable<GameFormat> {
|
||||
private List<String> coreFormats = new ArrayList<>();
|
||||
{
|
||||
coreFormats.add("Standard.txt");
|
||||
coreFormats.add("Pioneer.txt");
|
||||
coreFormats.add("Modern.txt");
|
||||
coreFormats.add("Legacy.txt");
|
||||
coreFormats.add("Vintage.txt");
|
||||
@@ -468,6 +469,10 @@ public class GameFormat implements Comparable<GameFormat> {
|
||||
return this.map.get("Extended");
|
||||
}
|
||||
|
||||
public GameFormat getPioneer() {
|
||||
return this.map.get("Pioneer");
|
||||
}
|
||||
|
||||
public GameFormat getModern() {
|
||||
return this.map.get("Modern");
|
||||
}
|
||||
|
||||
@@ -383,6 +383,11 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
|
||||
updateMatrix(FModel.getFormats().getStandard());
|
||||
}
|
||||
break;
|
||||
case PIONEER_CARDGEN_DECK:
|
||||
if(FModel.isdeckGenMatrixLoaded()) {
|
||||
updateMatrix(FModel.getFormats().getPioneer());
|
||||
}
|
||||
break;
|
||||
case MODERN_CARDGEN_DECK:
|
||||
if(FModel.isdeckGenMatrixLoaded()) {
|
||||
updateMatrix(FModel.getFormats().getModern());
|
||||
|
||||
@@ -223,6 +223,7 @@ public class VLobby implements ILobbyView {
|
||||
DeckType selectedDeckType = deckChooser.getSelectedDeckType();
|
||||
switch (selectedDeckType){
|
||||
case STANDARD_CARDGEN_DECK:
|
||||
case PIONEER_CARDGEN_DECK:
|
||||
case MODERN_CARDGEN_DECK:
|
||||
case LEGACY_CARDGEN_DECK:
|
||||
case VINTAGE_CARDGEN_DECK:
|
||||
|
||||
@@ -72,6 +72,7 @@ public enum CSubmenuGauntletQuick implements ICDoc {
|
||||
if (view.getBoxColorDecks().isSelected()) { allowedDeckTypes.add(DeckType.COLOR_DECK); }
|
||||
if (view.getBoxStandardColorDecks().isSelected()) { allowedDeckTypes.add(DeckType.STANDARD_COLOR_DECK); }
|
||||
if (view.getBoxStandardGenDecks().isSelected()) { allowedDeckTypes.add(DeckType.STANDARD_CARDGEN_DECK); }
|
||||
if (view.getBoxPioneerGenDecks().isSelected()) { allowedDeckTypes.add(DeckType.PIONEER_CARDGEN_DECK); }
|
||||
if (view.getBoxModernGenDecks().isSelected()) { allowedDeckTypes.add(DeckType.MODERN_CARDGEN_DECK); }
|
||||
if (view.getBoxLegacyGenDecks().isSelected()) { allowedDeckTypes.add(DeckType.LEGACY_CARDGEN_DECK); }
|
||||
if (view.getBoxVintageGenDecks().isSelected()) { allowedDeckTypes.add(DeckType.VINTAGE_CARDGEN_DECK); }
|
||||
|
||||
@@ -56,6 +56,7 @@ public enum VSubmenuGauntletQuick implements IVSubmenu<CSubmenuGauntletQuick> {
|
||||
private final JCheckBox boxColorDecks = new FCheckBox(DeckType.COLOR_DECK.toString());
|
||||
private final JCheckBox boxStandardColorDecks = new FCheckBox(DeckType.STANDARD_COLOR_DECK.toString());
|
||||
private final JCheckBox boxStandardCardgenDecks = new FCheckBox(DeckType.STANDARD_CARDGEN_DECK.toString());
|
||||
private final JCheckBox boxPioneerCardgenDecks = new FCheckBox(DeckType.PIONEER_CARDGEN_DECK.toString());
|
||||
private final JCheckBox boxModernCardgenDecks = new FCheckBox(DeckType.MODERN_CARDGEN_DECK.toString());
|
||||
private final JCheckBox boxLegacyCardgenDecks = new FCheckBox(DeckType.LEGACY_CARDGEN_DECK.toString());
|
||||
private final JCheckBox boxVintageCardgenDecks = new FCheckBox(DeckType.VINTAGE_CARDGEN_DECK.toString());
|
||||
@@ -88,11 +89,13 @@ public enum VSubmenuGauntletQuick implements IVSubmenu<CSubmenuGauntletQuick> {
|
||||
boxStandardColorDecks.setSelected(true);
|
||||
if(FModel.isdeckGenMatrixLoaded()) {
|
||||
boxStandardCardgenDecks.setSelected(true);
|
||||
boxPioneerCardgenDecks.setSelected(true);
|
||||
boxModernCardgenDecks.setSelected(true);
|
||||
boxLegacyCardgenDecks.setSelected(true);
|
||||
boxVintageCardgenDecks.setSelected(true);
|
||||
}else{
|
||||
boxStandardCardgenDecks.setSelected(false);
|
||||
boxPioneerCardgenDecks.setSelected(false);
|
||||
boxModernCardgenDecks.setSelected(false);
|
||||
boxLegacyCardgenDecks.setSelected(false);
|
||||
boxVintageCardgenDecks.setSelected(false);
|
||||
@@ -121,6 +124,7 @@ public enum VSubmenuGauntletQuick implements IVSubmenu<CSubmenuGauntletQuick> {
|
||||
pnlOptions.add(boxColorDecks, "w 96%!, h 30px!, gap 2% 0 0 5px");
|
||||
if(FModel.isdeckGenMatrixLoaded()) {
|
||||
pnlOptions.add(boxStandardCardgenDecks, "w 96%!, h 30px!, gap 2% 0 0 5px");
|
||||
pnlOptions.add(boxPioneerCardgenDecks, "w 96%!, h 30px!, gap 2% 0 0 5px");
|
||||
pnlOptions.add(boxModernCardgenDecks, "w 96%!, h 30px!, gap 2% 0 0 5px");
|
||||
pnlOptions.add(boxLegacyCardgenDecks, "w 96%!, h 30px!, gap 2% 0 0 5px");
|
||||
pnlOptions.add(boxVintageCardgenDecks, "w 96%!, h 30px!, gap 2% 0 0 5px");
|
||||
@@ -221,6 +225,9 @@ public enum VSubmenuGauntletQuick implements IVSubmenu<CSubmenuGauntletQuick> {
|
||||
public JCheckBox getBoxModernGenDecks() {
|
||||
return boxModernCardgenDecks;
|
||||
}
|
||||
public JCheckBox getBoxPioneerGenDecks() {
|
||||
return boxPioneerCardgenDecks;
|
||||
}
|
||||
public JCheckBox getBoxLegacyGenDecks() {
|
||||
return boxLegacyCardgenDecks;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,6 @@ import forge.CachedCardImage;
|
||||
import forge.FThreads;
|
||||
import forge.StaticData;
|
||||
import forge.card.CardEdition;
|
||||
import forge.card.CardTranslation;
|
||||
import forge.card.mana.ManaCost;
|
||||
import forge.game.card.Card;
|
||||
import forge.game.card.CardView;
|
||||
@@ -39,6 +38,7 @@ import forge.screens.match.CMatchUI;
|
||||
import forge.toolbox.CardFaceSymbols;
|
||||
import forge.toolbox.FSkin.SkinnedPanel;
|
||||
import forge.toolbox.IDisposable;
|
||||
import forge.util.CardTranslation;
|
||||
import forge.view.arcane.util.OutlinedLabel;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
@@ -10,7 +10,6 @@ import forge.assets.AssetsDownloader;
|
||||
import forge.assets.FSkin;
|
||||
import forge.assets.FSkinFont;
|
||||
import forge.assets.ImageCache;
|
||||
import forge.card.CardTranslation;
|
||||
import forge.error.BugReporter;
|
||||
import forge.error.ExceptionHandler;
|
||||
import forge.interfaces.IDeviceAdapter;
|
||||
@@ -31,6 +30,7 @@ import forge.toolbox.FGestureAdapter;
|
||||
import forge.toolbox.FOptionPane;
|
||||
import forge.toolbox.FOverlay;
|
||||
import forge.util.Callback;
|
||||
import forge.util.CardTranslation;
|
||||
import forge.util.FileUtil;
|
||||
import forge.util.Localizer;
|
||||
import forge.util.Utils;
|
||||
@@ -130,13 +130,13 @@ public class Forge implements ApplicationListener {
|
||||
FSkinFont.preloadAll(locale);
|
||||
|
||||
splashScreen.getProgressBar().setDescription(localizer.getMessage("lblLoadingCardTranslations"));
|
||||
CardTranslation.preloadTranslation(locale);
|
||||
CardTranslation.preloadTranslation(locale, ForgeConstants.LANG_DIR);
|
||||
|
||||
splashScreen.getProgressBar().setDescription(localizer.getMessage("lblFinishingStartup"));
|
||||
|
||||
//add reminder to preload
|
||||
if (enablePreloadExtendedArt)
|
||||
splashScreen.getProgressBar().setDescription("Preload Extended Art...");
|
||||
splashScreen.getProgressBar().setDescription(localizer.getMessage("lblPreloadExtendedArt"));
|
||||
Gdx.app.postRunnable(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
@@ -28,6 +28,7 @@ import forge.properties.ForgeConstants;
|
||||
import forge.properties.ForgePreferences;
|
||||
import forge.screens.FScreen;
|
||||
import forge.screens.match.MatchController;
|
||||
import forge.util.CardTranslation;
|
||||
import forge.util.Utils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
|
||||
@@ -49,6 +49,7 @@ import forge.properties.ForgePreferences;
|
||||
import forge.properties.ForgePreferences.FPref;
|
||||
import forge.screens.match.MatchController;
|
||||
import forge.toolbox.FList;
|
||||
import forge.util.CardTranslation;
|
||||
import forge.util.Utils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import forge.util.TextBounds;
|
||||
|
||||
@@ -20,6 +20,7 @@ import forge.toolbox.FOptionPane;
|
||||
import forge.toolbox.FTextField;
|
||||
import forge.toolbox.FEvent.FEventHandler;
|
||||
import forge.util.Callback;
|
||||
import forge.util.Localizer;
|
||||
|
||||
public class GameEntityPicker extends TabPageScreen<GameEntityPicker> {
|
||||
private final FOptionPane optionPane;
|
||||
@@ -73,7 +74,7 @@ public class GameEntityPicker extends TabPageScreen<GameEntityPicker> {
|
||||
super(caption0 + " (" + items.size() + ")", icon0);
|
||||
txtSearch = add(new FTextField());
|
||||
txtSearch.setFont(FSkinFont.get(12));
|
||||
txtSearch.setGhostText("Search");
|
||||
txtSearch.setGhostText(Localizer.getInstance().getMessage("lblSearch"));
|
||||
txtSearch.setChangedHandler(new FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
|
||||
@@ -149,6 +149,7 @@ public class FDeckChooser extends FScreen {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
if (selectedDeckType != DeckType.STANDARD_COLOR_DECK && selectedDeckType != DeckType.STANDARD_CARDGEN_DECK
|
||||
&& selectedDeckType != DeckType.PIONEER_CARDGEN_DECK
|
||||
&& selectedDeckType != DeckType.MODERN_CARDGEN_DECK && selectedDeckType != DeckType.LEGACY_CARDGEN_DECK
|
||||
&& selectedDeckType != DeckType.VINTAGE_CARDGEN_DECK && selectedDeckType != DeckType.MODERN_COLOR_DECK &&
|
||||
selectedDeckType != DeckType.COLOR_DECK && selectedDeckType != DeckType.THEME_DECK
|
||||
@@ -172,6 +173,9 @@ public class FDeckChooser extends FScreen {
|
||||
else if (selectedDeckType == DeckType.STANDARD_CARDGEN_DECK){
|
||||
DeckgenUtil.randomSelect(lstDecks);
|
||||
}
|
||||
else if (selectedDeckType == DeckType.PIONEER_CARDGEN_DECK){
|
||||
DeckgenUtil.randomSelect(lstDecks);
|
||||
}
|
||||
else if (selectedDeckType == DeckType.MODERN_CARDGEN_DECK){
|
||||
DeckgenUtil.randomSelect(lstDecks);
|
||||
}
|
||||
@@ -296,6 +300,7 @@ public class FDeckChooser extends FScreen {
|
||||
case RANDOM_CARDGEN_COMMANDER_DECK:
|
||||
case RANDOM_COMMANDER_DECK:
|
||||
case MODERN_CARDGEN_DECK:
|
||||
case PIONEER_CARDGEN_DECK:
|
||||
case LEGACY_CARDGEN_DECK:
|
||||
case VINTAGE_CARDGEN_DECK:
|
||||
case MODERN_COLOR_DECK:
|
||||
@@ -486,6 +491,7 @@ public class FDeckChooser extends FScreen {
|
||||
cmbDeckTypes.addItem(DeckType.STANDARD_COLOR_DECK);
|
||||
if(FModel.isdeckGenMatrixLoaded()) {
|
||||
cmbDeckTypes.addItem(DeckType.STANDARD_CARDGEN_DECK);
|
||||
cmbDeckTypes.addItem(DeckType.PIONEER_CARDGEN_DECK);
|
||||
cmbDeckTypes.addItem(DeckType.MODERN_CARDGEN_DECK);
|
||||
cmbDeckTypes.addItem(DeckType.LEGACY_CARDGEN_DECK);
|
||||
cmbDeckTypes.addItem(DeckType.VINTAGE_CARDGEN_DECK);
|
||||
@@ -698,6 +704,14 @@ public class FDeckChooser extends FScreen {
|
||||
}
|
||||
config = ItemManagerConfig.STRING_ONLY;
|
||||
break;
|
||||
case PIONEER_CARDGEN_DECK:
|
||||
maxSelections = 1;
|
||||
pool= new ArrayList<>();
|
||||
if(FModel.isdeckGenMatrixLoaded()) {
|
||||
pool = ArchetypeDeckGenerator.getMatrixDecks(FModel.getFormats().getPioneer(), isAi);
|
||||
}
|
||||
config = ItemManagerConfig.STRING_ONLY;
|
||||
break;
|
||||
case MODERN_CARDGEN_DECK:
|
||||
maxSelections = 1;
|
||||
pool= new ArrayList<>();
|
||||
@@ -1077,6 +1091,7 @@ public class FDeckChooser extends FScreen {
|
||||
DeckType.STANDARD_COLOR_DECK,
|
||||
DeckType.STANDARD_CARDGEN_DECK,
|
||||
DeckType.MODERN_COLOR_DECK,
|
||||
DeckType.PIONEER_CARDGEN_DECK,
|
||||
DeckType.MODERN_CARDGEN_DECK,
|
||||
DeckType.LEGACY_CARDGEN_DECK,
|
||||
DeckType.VINTAGE_CARDGEN_DECK,
|
||||
@@ -1085,6 +1100,7 @@ public class FDeckChooser extends FScreen {
|
||||
);
|
||||
if (!FModel.isdeckGenMatrixLoaded()) {
|
||||
deckTypes.remove(DeckType.STANDARD_CARDGEN_DECK);
|
||||
deckTypes.remove(DeckType.PIONEER_CARDGEN_DECK);
|
||||
deckTypes.remove(DeckType.MODERN_CARDGEN_DECK);
|
||||
deckTypes.remove(DeckType.LEGACY_CARDGEN_DECK);
|
||||
deckTypes.remove(DeckType.VINTAGE_CARDGEN_DECK);
|
||||
|
||||
@@ -13,6 +13,7 @@ import forge.toolbox.FDisplayObject;
|
||||
import forge.toolbox.FEvent;
|
||||
import forge.toolbox.FEvent.FEventHandler;
|
||||
import forge.toolbox.FTextField;
|
||||
import forge.util.Localizer;
|
||||
|
||||
|
||||
public class TextSearchFilter<T extends InventoryItem> extends ItemFilter<T> {
|
||||
@@ -78,10 +79,10 @@ public class TextSearchFilter<T extends InventoryItem> extends ItemFilter<T> {
|
||||
}
|
||||
|
||||
public String getCaption() {
|
||||
return txtSearch.getGhostText().substring("Search ".length());
|
||||
return txtSearch.getGhostText().substring((Localizer.getInstance().getMessage("lblSearch") + " ").length());
|
||||
}
|
||||
public void setCaption(String caption0) {
|
||||
txtSearch.setGhostText("Search " + caption0);
|
||||
txtSearch.setGhostText(Localizer.getInstance().getMessage("lblSearch") + " " + caption0);
|
||||
}
|
||||
|
||||
protected class SearchField extends FTextField {
|
||||
@@ -89,7 +90,7 @@ public class TextSearchFilter<T extends InventoryItem> extends ItemFilter<T> {
|
||||
|
||||
private SearchField() {
|
||||
setFont(FONT);
|
||||
setGhostText("Search");
|
||||
setGhostText(Localizer.getInstance().getMessage("lblSearch"));
|
||||
setHeight(getDefaultHeight(DEFAULT_FONT)); //set height based on default filter font
|
||||
}
|
||||
|
||||
|
||||
@@ -476,6 +476,7 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
||||
DeckType selectedDeckType = deckChooser.getSelectedDeckType();
|
||||
switch (selectedDeckType){
|
||||
case STANDARD_CARDGEN_DECK:
|
||||
case PIONEER_CARDGEN_DECK:
|
||||
case MODERN_CARDGEN_DECK:
|
||||
case LEGACY_CARDGEN_DECK:
|
||||
case VINTAGE_CARDGEN_DECK:
|
||||
|
||||
@@ -88,6 +88,7 @@ public class NewGauntletScreen extends LaunchScreen {
|
||||
DeckType.STANDARD_COLOR_DECK,
|
||||
DeckType.STANDARD_CARDGEN_DECK,
|
||||
DeckType.MODERN_COLOR_DECK,
|
||||
DeckType.PIONEER_CARDGEN_DECK,
|
||||
DeckType.MODERN_CARDGEN_DECK,
|
||||
DeckType.LEGACY_CARDGEN_DECK,
|
||||
DeckType.VINTAGE_CARDGEN_DECK,
|
||||
|
||||
@@ -395,7 +395,7 @@ public class MatchScreen extends FScreen {
|
||||
return getActivePrompt().getBtnCancel().trigger(); //trigger Cancel if can't trigger OK
|
||||
case Keys.ESCAPE:
|
||||
if (!FModel.getPreferences().getPrefBoolean(FPref.UI_ALLOW_ESC_TO_END_TURN)) {
|
||||
if (getActivePrompt().getBtnCancel().getText().equals("End Turn")) {
|
||||
if (getActivePrompt().getBtnCancel().getText().equals(Localizer.getInstance().getMessage("lblEndTurn"))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Name:Dread Warlock
|
||||
ManaCost:1 B B
|
||||
Types:Creature Human Wizard
|
||||
Types:Creature Human Wizard Warlock
|
||||
PT:2/2
|
||||
K:CantBeBlockedBy Creature.nonBlack
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/dread_warlock.jpg
|
||||
|
||||
Binary file not shown.
Binary file not shown.
BIN
forge-gui/res/deckgendecks/Pioneer.lda.dat
Normal file
BIN
forge-gui/res/deckgendecks/Pioneer.lda.dat
Normal file
Binary file not shown.
BIN
forge-gui/res/deckgendecks/Pioneer.raw.dat
Normal file
BIN
forge-gui/res/deckgendecks/Pioneer.raw.dat
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
[format]
|
||||
Name:Modern
|
||||
Order:102
|
||||
Order:103
|
||||
Subtype:Modern
|
||||
Type:Sanctioned
|
||||
Sets:8ED, MRD, DST, 5DN, CHK, BOK, SOK, 9ED, RAV, GPT, DIS, CSP, TSP, TSB, PLC, FUT, 10E, LRW, EVE, SHM, MOR, ALA, CFX, ARB, M10, ZEN, WWK, ROE, M11, SOM, MBS, NPH, M12, ISD, DKA, AVR, M13, RTR, GTC, DGM, M14, THS, BNG, JOU, M15, KTK, FRF, DTK, MM2, ORI, BFZ, OGW, SOI, EMN, KLD, AER, AKH, W17, HOU, XLN, RIX, DOM, M19, G18, GRN, RNA, WAR, MH1, M20, ELD
|
||||
|
||||
7
forge-gui/res/formats/Sanctioned/Pioneer.txt
Normal file
7
forge-gui/res/formats/Sanctioned/Pioneer.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
[format]
|
||||
Name:Pioneer
|
||||
Order:102
|
||||
Subtype:Pioneer
|
||||
Type:Sanctioned
|
||||
Sets:RTR, GTC, DGM, M14, THS, BNG, JOU, M15, KTK, FRF, DTK, ORI, BFZ, OGW, SOI, EMN, KLD, AER, AKH, HOU, XLN, RIX, DOM, M19, GRN, RNA, WAR, M20, ELD
|
||||
Banned:Bloodstained Mire; Flooded Strand; Polluted Delta; Windswept Heath; Wooded Foothills; Felidar Guardian; Leyline of Abundance; Oath of Nissa
|
||||
@@ -102,7 +102,7 @@ cbpGameLogEntryType=Spielberichtsumfang
|
||||
cbpCloseAction=Beenden
|
||||
cbpDefaultFontSize=Standard Schriftgröße
|
||||
cbpAiProfiles=KI Persönlichkeit
|
||||
cbpDisplayCurrentCardColors=Zeige detaillierte Kartenfarben
|
||||
cbpDisplayCurrentCardColors=Zeige detailierte Kartenfarben
|
||||
cbpAutoYieldMode=Automatische Bestätigung
|
||||
cbpCounterDisplayType=Markeranzeige Art
|
||||
cbpCounterDisplayLocation=Markeranzeige Ort
|
||||
@@ -129,10 +129,10 @@ nlCloneImgSource=Zeige das originale Kartenbild des Klones statt der geklonten K
|
||||
nlPromptFreeBlocks=Wenn ein neuer Block nichts kosten würde, dann wird er automatisch bezahlt.
|
||||
nlPauseWhileMinimized=Wenn aktiviert, pausiert Forge im minimierten Zustand (betrifft hauptsächlich KI gegen KI).
|
||||
nlEscapeEndsTurn=Wenn aktiviert, funktioniert ESCape als Alternative um den Zug zu beenden.
|
||||
nlDetailedPaymentDesc=Wenn aktiviert, werden detaillierte Spruch-/Fähigkeitsbeschreibungen beim Auswählen von Zielen bzw. Bezahlen von Kosten angezeigt.
|
||||
nlDetailedPaymentDesc=Wenn aktiviert, werden deailierte Spruch-/Fähigkeitsbeschreibungen beim Auswählen von Zielen bzw. Bezahlen von Kosten angezeigt.
|
||||
nlShowStormCount=Wenn aktiviert,wird ein Sturmzähler angezeigt.
|
||||
nlRemindOnPriority=Wenn aktiviert, dann blinkt der Auswahlbereich des Spielers bei Erhalt der Priorität.
|
||||
nlPreselectPrevAbOrder=Wenn aktiviert, wird die letzte genutzte Reihenfolge von Fähigkeiten im Auswahlfenster vorbelegt.
|
||||
nlPreselectPrevAbOrder=Wenn aktiviert, wird die letzte genutze Reihenfolge von Fähigkeiten im Auswahlfenster vorbelegt.
|
||||
nlpGraveyardOrdering=Entscheidet, wann auf die Reihenfolge, in welcher Karten auf den Friedhof wandern, geachtet wird. (Niemals, immer oder nur wenn bestimmte Karten es nötig machen.)
|
||||
nlpAutoYieldMode=Definiert die Ebene der automatischen Bestätigung (pro Fähigkeit oder pro einzelner Karte).
|
||||
RandomDeckGeneration=Zufällige Deck-Erstellung
|
||||
@@ -146,7 +146,7 @@ AdvancedSettings=Erweiterte Optionen
|
||||
nlDevMode=Ativiert ein Menü mit Funktionen, welche das Testen vereinfachen.
|
||||
nlWorkshopSyntax=Aktiviert den Syntaxcheck für Kartenskripte im Workshop. Hinweis: Befindet sich noch in der Testphase!
|
||||
nlGameLogEntryType=Steuert den Umfang der Daten in der Protokolldatei. Sortiert vom geringsten zum gröten Umfang.
|
||||
nlCloseAction=Steuert was passiert, wenn X oben rechts gedrückt wird.
|
||||
nlCloseAction=Steuert was passiert, wenn X oben rechts gedückt wird.
|
||||
nlLoadCardsLazily=Wenn aktiviert, lädt Forge Kartenscripte erst wenn sie benötigt werden, nicht bei Programmstart. Warnung: Experimental!!!
|
||||
nlLoadHistoricFormats=Wenn aktiviert, lädt Forge auch ältere Spielformate. Verlängert den Programmstart.
|
||||
GraphicOptions=Grafik Optionen
|
||||
@@ -164,7 +164,7 @@ nlUiForTouchScreen=Vergrößert einige Elemente der Benutzeroberfläche zu besse
|
||||
nlCompactPrompt=Entfernt Überschriften und nutzt kleinere Schriftgröße um Bedienfenster kompakter zu machen.
|
||||
nlHideReminderText=Verstecke Erinnerungstext im Kartendetailfenster.
|
||||
nlOpenPacksIndiv=Beim Öffnen von FatPacks und Boosterboxen werden Booster einzeln nacheinander geöffnet.
|
||||
nlTokensInSeparateRow=Zeige Spielsteine auf dem Spielfeld in einer separaten Reihe unter den Nicht-Spielsteinkreaturen.
|
||||
nlTokensInSeparateRow=Zeige Spielsteinein auf dem Spielfeld in einer separaten Reihe unter den Nicht-Spielsteinkreaturen.
|
||||
nlStackCreatures=Stapelt identische Kreaturen auf dem Spielfeld, analog der Länder, Artefakte und Verzauberungen.
|
||||
nlTimedTargOverlay=Aktiviert eine Optimierung des Zielpfeil-Overlays. Nur bei Problemen/Rucklern auf älteren System deaktivieren. Erfordert den Neustart von laufenden Spielen.
|
||||
nlCounterDisplayType=Bestimmt im Spiel die Art der Anzeige von Markern auf Karten. Text-basiert zählt die Marker als Text auf. Bild-basiert zeigte die Marker als Punkte auf den Karten. Hybrid zeigt beides.
|
||||
@@ -179,8 +179,8 @@ KeyboardShortcuts=Tastenkombinationen
|
||||
lblAchievements=Errungenschaften
|
||||
# VSubmenuDownloaders.java
|
||||
btnDownloadSetPics=Bilder(LQ) Sets herunterladen
|
||||
btnDownloadPicsHQ=Bilder(HQ Karten herunterladen (Sehr langsam!)
|
||||
btnDownloadPics=Bilder(LQ) Karten herunterladen
|
||||
btnDownloadPicsHQ=Bilder(HQ) Karten herunterladen (Sehr langsam!)
|
||||
btnDownloadQuestImages=Bilder für Quests herunterladen
|
||||
btnDownloadAchievementImages=Bilder für Erfolge herunterladen
|
||||
btnReportBug=Einen Fehler melden
|
||||
@@ -221,7 +221,7 @@ AresetMatchScreenLayout=Dies wird das Spielfeldlayout zurücksetzen.\nFalls du v
|
||||
TresetMatchScreenLayout=Spielfeldlayout zurücksetzen
|
||||
OKresetMatchScreenLayout=Spielfeldlayout wurde zurückgesetzt.
|
||||
#EMenuGroup.java
|
||||
lblSanctionedFormats=Gültige Spielformate
|
||||
lblSanctionedFormats=gültige Spielformate
|
||||
lblOnlineMultiplayer=Mehrspieler (online)
|
||||
lblQuestMode=Quest-Modus
|
||||
lblPuzzleMode=Rätsel-Modus
|
||||
@@ -248,7 +248,7 @@ lblSelectaCommanderDeck=Wähle Commanderdeck
|
||||
lblSelectaPlanarDeck=Wähle Weltendeck
|
||||
lblPlanarDeckEditor=Weltendeck-Editor
|
||||
lblSelectaVanguardAvatar=Wähle Vanguard-Avatar
|
||||
lblVanguardAvatar=Vanguard-Avatar
|
||||
lblVanguardAvatar=Vanguard avatar
|
||||
lblDeck=Deck
|
||||
lblSchemeDeck=Komplottdeck
|
||||
lblCommanderDeck=Commanderdeck
|
||||
@@ -357,7 +357,7 @@ lblDraftText3=Dann spiele gegen einen oder alle KI-Gegner.
|
||||
lblNewBoosterDraftGame=Neues Spiel Booster Draft
|
||||
lblDraftDecks=Draft Decks
|
||||
#CSubmenuDraft.java
|
||||
lblNoDeckSelected=Kein Spieler-Deck gewählt.\n(Du mußt eventuell ein neues Deck erstellen.)
|
||||
lblNoDeckSelected=Kein Spieler-Deck gewählt.\n(Du muß eventuell ein neues Deck erstellen.)
|
||||
lblNoDeck=Kein Deck
|
||||
lblChooseDraftFormat=Wähle Draft Format
|
||||
#VSubmenuSealed.java
|
||||
@@ -400,7 +400,7 @@ lblVanguardDesc=Jeder Spieler hat eine eigene spielbeeinflussende \"Avatar\"-Kar
|
||||
lblCommander=Commander
|
||||
lblCommanderDesc=Jeder Spieler hat eine legendäre \"General\"-Karte, welche (fast) jederzeit gespielt werden kann und die Farben des Decks bestimmt.
|
||||
lblOathbreaker=Eidbrecher
|
||||
lblOathbreakerDesc=Jeder Spieler hat eine Planeswalker-Karte als seinen "Eidbrecher", welche jederzeit gespielt werden kann und die Farben des Decks festlegt. Jeder Spieler hat außerdem noch einen "Signatur"-Spruch, welcher gespielt werden kann, solange der Eidbrecher im Spiel ist.
|
||||
lblOathbreakerDesc=Jeder Spieler hat eine Plainswalker-Karte als seinen "Eidbrecher", welche jederzeit gespielt werdeb kann und die Farben des Decks festlegt. Jeder Spieler hat außerdem noch einnen "Signatur"-Spruch, welcher gespielt werden kann, solange der Eidbrecher im Spiel ist.
|
||||
lblTinyLeaders=Kleine Anführer
|
||||
lblTinyLeadersDesc=Jeder Spieler hat eine legendäre \"General\"-Karte, welche (fast) jederzeit gespielt werden kann und die Farben des Decks bestimmt. Alle Karten haben umgewandelte Manakosten von max. 3.
|
||||
lblBrawl=Brawl
|
||||
@@ -409,7 +409,7 @@ lblPlaneswalker=Planeswalker
|
||||
lblPlaneswalkerDesc=Jeder Spieler hat eine Planeswalker-Karte, welche (fast) jederzeit gespielt werden kann.
|
||||
lblPlanechase=Weltenjagd
|
||||
lblPlanechaseDesc=Weltenkarten haben globale Effekte. Wenn ein Spieler auf dem Weltenwürfel \"Planeswalk\"wirft, wechselt die Weltenkarte.
|
||||
lblArchenemyDesc=Ein Spieler ist der Erzfeind und kämpft gegen die anderen Spieler. Er hat Komplottkarten.\nEiner gegen alle.
|
||||
lblArchenemyDesc=Ein Spieler ist der Erzfeind und kämpft gegen die anderen Spieler. Er hat Komplottkarten.\NEiner gegen alle.
|
||||
lblArchenemyRumble=Erzfeind Rumble
|
||||
lblArchenemyRumbleDesc=Alle Spieler sind Erzfeinde und haben Komplottkarten.\nJeder gegen jeden.
|
||||
lblMomirBasic=Momir Basic
|
||||
@@ -453,7 +453,7 @@ lblStartingPoolDistribution=Verteilung der Startkarten
|
||||
lblChooseDistribution=Wähle Verteilung
|
||||
lblPrizedCards=Karten-Gewinn
|
||||
lblAllCardsAvailableWin=Alle Karten können gewonnen werden.
|
||||
lblOnlySetsInStarting=Nur Karten aus den gewählten Startsets
|
||||
lblOnlySetsInStarting=Nur Karten aus den gewählten Startssets
|
||||
lblAllowUnlockAdEd=Erlaube Freischaltung weiterer Blöcke
|
||||
lblEmbark=Aufbrechen!
|
||||
lblboxCompleteSet=Du startest mit je 4 Stück jeder Karte der gewählten Sets.
|
||||
@@ -497,7 +497,7 @@ lblColorless=Farblos
|
||||
lblIncludeArtifacts=mit Artefakten
|
||||
lblBalanced=Ausgeglichen
|
||||
lblTrueRandom=Wirklich zufällig
|
||||
lblSurpriseMe=Überrasche mich
|
||||
lblSurpriseMe=Überrasch mich
|
||||
lblBoosters=Booster
|
||||
lblClearAll=Alles löschen
|
||||
lblNumberofBoosters=Anzahl Booster
|
||||
@@ -512,7 +512,7 @@ lblradBoosters=Ignoriert Farbwahl. Entnimmt die Karten einer gewählten Anzahl B
|
||||
lblcbxArtifacts=Wenn gewählt, werden Artefakte hinzugefügt, unabhängig von der Farbwahl. Imitiert das alte Erstellungsverhalten.
|
||||
#VSubmenuChallenges.java
|
||||
lblQuestChallenges=Quest Herausforderungen
|
||||
htmlLaunchZeppelin=<html>Starte<br>Zeppelin</html>
|
||||
htmlLaunchZeppelin=<html>Starte<br>Zepelin</html>
|
||||
lblQuestModeChallenges=Quest Modus: Herausforderungen
|
||||
lblWhichChallenge=Welche Herausforderung nimmst du an?
|
||||
#VSubmenuQuestDraft.java
|
||||
@@ -539,7 +539,7 @@ lblConstructedDecks=Konstruierte Decks
|
||||
lblCommanderDecks=Commander Decks
|
||||
lblRandomCommanderDecks=Zufälliges Commander Deck
|
||||
lblRandomCommanderCard-basedDecks=Zufälliges Commander Deck (kartenbasiert)
|
||||
lblOathbreakerDecks=Eidbrecher-Decks
|
||||
lblOathbreakerDecks=Oathbreaker-Decks
|
||||
lblTinyLeadersDecks=Kleine-Anführer-Decks
|
||||
lblBrawlDecks=Brawl Decks
|
||||
lblSchemeDecks=Komplott-Decks
|
||||
@@ -548,6 +548,7 @@ lblPreconstructedDecks=Vorkonstruiertes Deck
|
||||
lblQuestOpponentDecks=Quest-Gegner-Deck
|
||||
lblRandomColorDecks=Decks - zufällige Farben
|
||||
lblRandomStandardArchetypeDecks=Decks - zufälliger Standard-Archetyp
|
||||
lblRandomPioneerArchetypeDecks=Decks - zufälliger Pioneer-Archetyp
|
||||
lblRandomModernArchetypeDecks=Decks - zufälliger Modern-Archetyp
|
||||
lblRandomLegacyArchetypeDecks=Decks - zufälliger Legacy-Archetyp
|
||||
lblRandomVintageArchetypeDecks=Decks - zufälliger Vintage-Archetyp
|
||||
@@ -587,7 +588,7 @@ lblGauntletDesc2=Die Pfeiltasten rauf/runter ändern die Reihenfolge der Gegner.
|
||||
lblDecklist=Doppelklicke auf Deck für Deckliste.
|
||||
btnUp=Bewege dieses Deck nach vorne.
|
||||
btnDown=Bewege dieses Deck nach hinten.
|
||||
btnRight=Füge dieses Deck hinzu.
|
||||
btnRight=Füge dieses Deck himzu.
|
||||
btnLeft=Entferne dieses Deck.
|
||||
btnSaveGauntlet=Sichere den Spießrutenlauf
|
||||
btnNewGauntlet=Erzeuge einen neuen Spießrutenlauf
|
||||
@@ -628,11 +629,11 @@ titleUnlocked=%n freigeschaltet!
|
||||
lblStartADuel=Starte eine Duell.
|
||||
lblSelectAQuestDeck=Wähle ein Quest-Deck
|
||||
lblInvalidDeck=Unzulässiges Deck
|
||||
lblInvalidDeckDesc=Dein Deck %n. Bitte ändern oder anderes Deck wählen.
|
||||
lblInvalidDeckDesc=Dein Deck %n\nBitte ändern oder anderes Deck wählen.
|
||||
#VSubmenuQuestPrefs.java
|
||||
lblQuestPreferences=Quest-Einstellungen
|
||||
lblRewardsError=Fehler bei Belohnungen
|
||||
lblDifficultyError=Fehler bei Schwierigkeitsgrad
|
||||
lblDifficultyError=Fehler bei Schwierigskeitsgrad
|
||||
lblBoosterError=Fehler bei Boostern
|
||||
lblShopError=Fehler im Laden
|
||||
lblDraftTournamentsError=Fehler im Draft-Turnier
|
||||
@@ -699,7 +700,7 @@ ttPlaysetSize=Die Anzahl Karten, welche behalten werden, bevor der Rest verkauft
|
||||
lblPlaysetSizeBasicLand=Playsetgröße: Standardland
|
||||
ttPlaysetSizeBasicLand=Die Anzahl Standardländer, welche behalten werden, bevor der Rest verkauft wird.
|
||||
lblPlaysetSizeAnyNumber=Playsetgröße: beliebige Anzahl
|
||||
ttPlaysetSizeAnyNumber=Die Anzahl von Unbarmherzige Ratten oder ähnlicher Karten ohne Limit, welche behalten werden, bevor der Rest verkauft wird.
|
||||
ttPlaysetSizeAnyNumber=Die Anzahl von Rstlose Ratten oder ähnlicher Karten ohne Limit, welche behalten werden, bevor der Rest verkauft wird.
|
||||
lblItemLevelRestriction=Einschränkung des Gegenstandsniveau
|
||||
lblFoilfilterAlwaysOn=Foil Filter immer an
|
||||
lblRatingsfilterAlwaysOn=Bewertungsfilter immer an
|
||||
@@ -709,7 +710,7 @@ lblWinsforNewDraft=Siege für neues Draft-Spiel
|
||||
lblWinsperDraftRotation=Siege pro Draft notwendig
|
||||
ttWinsperDraftRotation=Wenn ein Draft nicht soweit fertig gespielt wird, wird er entfernt oder ersetzt.
|
||||
lblRotationType=Austauschtyp
|
||||
ttRotationType=Bei 0 verschwinden alte Drafts, bei 1 wird er durch einen neuen ersetzt.
|
||||
ttRotationType=Bei 0 verschwinden alte Drafts, bei 1 wird er duch einen neuen ersetzt.
|
||||
#StatTypeFilter.java
|
||||
lblclicktotoogle=Klicke zum Umschalten des Filters, Rechtsklick für Einzelanzeige von:
|
||||
#SItemManagerUtil.java
|
||||
@@ -758,7 +759,7 @@ lblUniqueCardsOnly=Nur eine Version
|
||||
ttUniqueCardsOnly=Schaltet zwischen der Anzeige der neuesten oder aller Versionen einer Karte um.
|
||||
#ACEditorBase.java
|
||||
lblAddcard=Karten hinzufügen
|
||||
ttAddcard=Fügt gewählte Karte dem Deck hinzu (oder Doppelklick oder Leertaste drücken)
|
||||
ttAddcard=Fügt gewählte Karte dem Deck hinzu (oder Doppelklick oder Leertate drücken)
|
||||
lblAdd4ofcard=4 Karten hinzufügen
|
||||
ttAdd4ofcard=Fügt bis zu 4 Kopien der gewählten Karte dem Deck hinzu
|
||||
lblRemovecard=Entferne Karte
|
||||
@@ -795,7 +796,7 @@ lbltodeck=zum Deck
|
||||
lblfromdeck=vom Deck
|
||||
lbltosideboard=zum Sideboard
|
||||
lblfromsideboard=vom Sideboard
|
||||
lblascommander=als Kommandeur
|
||||
lblascommander=als General
|
||||
lblasoathbreaker=als "Eidbrecher"
|
||||
lblassignaturespell=als "Signatur"-Spruch
|
||||
lblasavatar=als Avatar
|
||||
@@ -807,7 +808,7 @@ lbltoplanardeck=zum Weltendeck
|
||||
lbltoconspiracydeck=zum Verschwörungsdeck
|
||||
lblMove=Verschieben
|
||||
#VDock.java
|
||||
lblDock=Symbolleiste
|
||||
lblDock=Anhängen
|
||||
lblViewDeckList=Zeige Deckliste
|
||||
lblRevertLayout=Layout zurücksetzen
|
||||
lblOpenLayout=Lade Layout
|
||||
@@ -827,7 +828,7 @@ lblMulticolor=Mehrfarbig
|
||||
#DeckFileMenu.java
|
||||
lblNewDeck=Neues Deck
|
||||
lblOpenDeck=Öffne Deck
|
||||
lblImportDeck=Deck importieren
|
||||
lblImportDeck=Deck importiren
|
||||
lblSaveDeck=Speichere Deck
|
||||
lblSaveDeckAs=Speichere Deck unter
|
||||
lblPrinttoHTMLfile=Speicher als HTML-Datei
|
||||
@@ -857,11 +858,11 @@ ttbtnRandDeck3=Erzeugt konstuiertes Deck in drei Farben
|
||||
btnRandDeck5=Constructed (5 Farben)
|
||||
ttbtnRandDeck5=Erzeugt konstuiertes Deck in fünf Farben
|
||||
#DeckCotroller.java
|
||||
lblCurrentDeck2=Aktuelles Deck
|
||||
lblCurrentDeck2=aktuelles Deck
|
||||
lblUntitled=Unbenannt
|
||||
#VPrompt.java
|
||||
lblPrompt=Meldungen
|
||||
lblGameSetup=Spielvorbereitung
|
||||
lblPrompt=Abfrage
|
||||
lblGameSetup=Spielaufbau
|
||||
#ColumnDef.java
|
||||
lblAIStatus=KI-Status
|
||||
lblCMC=UMK
|
||||
@@ -902,13 +903,13 @@ lblSettings=Einstellungen
|
||||
#SettingsPage.java
|
||||
lblAutomaticBugReports=Automatischer Fehlerbericht
|
||||
lblBattlefieldTextureFiltering=Texturenfilter Spielfeld
|
||||
lblCompactListItems=Kompakte Liste
|
||||
lblCompactTabs=Kompakte Tabs
|
||||
lblCardOverlays=Karten-Einblendungen
|
||||
lblCompactListItems=kompakte Liste
|
||||
lblCompactTabs=kompakte Tabs
|
||||
lblCardOverlays=Karten-Overlays
|
||||
lblDisableCardEffect=Karten-"Effekt"-Anzeige abschalten
|
||||
lblDynamicBackgroundPlanechase=Weltenjagd dynamischer Hintergrund
|
||||
lblGameplayOptions=Spiel-Optionen
|
||||
lblGeneralSettings=Allgem. Einstellungen
|
||||
lblGeneralSettings=allgem. Einstellungen
|
||||
lblHotSeatMode=Hot-Seat-Modus
|
||||
lblLandscapeMode=Querformat
|
||||
lblLater=Später
|
||||
@@ -944,18 +945,18 @@ nlShowAbilityIconsOverlays=Blendet kleine Bilder für Fähigkeiten über die Kar
|
||||
nlShowCardIDOverlays=Blendet die ID-Nummer über die Karten.
|
||||
nlShowCardManaCostOverlays=Blendet die Manakosten über die Karten.
|
||||
nlShowCardNameOverlays=Blendet die Namen über die Karten.
|
||||
nlShowCardOverlays=Aktiviert die Einblendungen über den Karten.
|
||||
nlShowCardOverlays=Aktiviert die Einblendungen übder den Karten.
|
||||
nlShowCardPTOverlays=Blendet die Stärke und Widerstand über die Karten.
|
||||
nlShowMatchBackground=Zeige Bilder im Spielfeldhintergrund.
|
||||
nlTheme=Wähle ein Thema um die Bildschirmanzeigen anzupassen.
|
||||
nlVibrateAfterLongPress=Aktiviert Vibration bei langen Druck, z.B. beim Zoomen.
|
||||
nlVibrateWhenLosingLife=Aktiviert Vibration bei Lebenspunktverlust.
|
||||
lblEnableRoundBorder=Enable Round Border Mask
|
||||
nlEnableRoundBorder=When enabled, the card corners are rounded (Preferably Card with Full Borders).
|
||||
lblPreloadExtendedArtCards=Preload Extended Art Cards
|
||||
nlPreloadExtendedArtCards=When enabled, Preloads Extended Art Cards to Cache on Startup.
|
||||
lblShowFPSDisplay=Show FPS Display
|
||||
nlShowFPSDisplay=When enabled, show the FPS Display (Experimental).
|
||||
nlVibrateAfterLongPress=Aktiviert Vabration bei langen Druck, z.B. beim Zoomen.
|
||||
nlVibrateWhenLosingLife=Aktiviert eine Vibration bei jedem Lebenspunktverlust.
|
||||
lblEnableRoundBorder=Aktiviere Maske mit runden Ränder
|
||||
nlEnableRoundBorder=Wenn aktiviert, werden Kartenecken abgerundet. Vorzugsweise bei Karten mit vollem Rand.
|
||||
lblPreloadExtendedArtCards=Erw. Kartenbilder bei Start laden
|
||||
nlPreloadExtendedArtCards=Wenn aktiviert, werden erweiterte Kartenbilder bereits beim Start in den Speicher geladen.
|
||||
lblShowFPSDisplay=FPS-Anzeige
|
||||
nlShowFPSDisplay=Aktiviert die Frames-per-second-Anzeige (Experimental).
|
||||
#MatchScreen.java
|
||||
lblPlayers=Spieler
|
||||
lblLog=Bericht
|
||||
@@ -986,12 +987,13 @@ lblToMainDeck=zum Haupt-Deck
|
||||
lblHowMany=wie viel?
|
||||
lblInventory=Inhaltsverzeichnis
|
||||
lblCollection=Sammlung
|
||||
lblCommanders=Komandeure
|
||||
lblCommanders=Generäle
|
||||
lblOathbreakers=Eidbrecher
|
||||
#Forge.java
|
||||
lblLoadingFonts=Lade Schriftarten...
|
||||
lblLoadingCardTranslations=Lade Karten-Übersetzungen...
|
||||
lblFinishingStartup=Letzte Vorbereitungen...
|
||||
lblPreloadExtendedArt=Lade erweiterte Bilder...
|
||||
#LobbyScreen.java
|
||||
lblMore=Mehr...
|
||||
lblLoadingNewGame=Lade neues Spiel...
|
||||
@@ -1040,7 +1042,7 @@ lblSwipeUpTo=Wische hoch für %s
|
||||
lblSwipeDownDetailView=Wische runter für Detailansicht
|
||||
lblSwipeDownPictureView=Wische runter für Bildansicht
|
||||
#VGameMenu.java
|
||||
lblNoPlayerPriorityNoDeckListViewed=Kein Spieler hat Priorität, daher keine Decklistenanzeige möglich.
|
||||
lblNoPlayerPriorityNoDeckListViewed=Kein Spieler hat Prioriät, daher keine Decklistenanzeige möglich.
|
||||
#FilesPage.java
|
||||
lblFiles=Dateien
|
||||
lblStorageLocations=Speicherort
|
||||
@@ -1065,12 +1067,12 @@ lblImportLatestVersionCard=Importiere neueste Kartenversion
|
||||
lblUseOnlySetsReleasedBefore=Nur Sets verwenden vor:
|
||||
lblUseOnlyCoreAndExpansionSets=Nutze nur Haupt- u. Erweiterungssets
|
||||
lblFollowingCardsCannotBeImported=Folgende Karten können nicht importiert werden, wegen Tippfehlern, Seteinschränkungen oder weil nicht in Forge:
|
||||
lblImportRemainingCards=Verbleibende Karten importieren?
|
||||
lblImportRemainingCards=Verbleibende Karteen importieren?
|
||||
lblNoKnownCardsOnClipboard=Keine Karten in der Zwischenablage gefunden.\n\nKopiere eine Deckliste in die Zwischenablage und versuche es erneut.
|
||||
#FDeckViewer.java
|
||||
lblDeckListCopiedClipboard=Deckliste von "%s" in Zwischenablage kopiert.
|
||||
#FSideboardDialog.java
|
||||
lblUpdateMainFromSideboard=Aktualisiere %s aus dem Sideboard
|
||||
lblUpdateMainFromSideboard=Aktuallisiere %s aus dem Sideboard
|
||||
#FVanguardChooser.java
|
||||
lblRandomVanguard=Zufälliger Avatar
|
||||
#FOptionPane.java
|
||||
@@ -1094,7 +1096,7 @@ lblStormCount=Sturmzähler
|
||||
#PlayerControllerHuman.java
|
||||
lblYouHaveWonTheCoinToss=%s, du hast den Münzwurf gewonnen.
|
||||
lblYouLostTheLastGame=%s, du hast das letzte Spiel verloren.
|
||||
lblWouldYouLiketoPlayorDraw=Willst du lieber zuerst spielen oder ziehen.
|
||||
lblWouldYouLiketoPlayorDraw=Willst du lieber zuerst spielen oder ziehen?
|
||||
lblWhoWouldYouLiketoStartthisGame=Wer soll das Spiel beginnen? (Klicke auf das Portrait.)
|
||||
lblPlay=Spielen
|
||||
lblDraw=Ziehen
|
||||
@@ -1118,7 +1120,7 @@ lblYouMustHavePrioritytoUseThisFeature=Um diese Funktion zu nutzen brauchst du d
|
||||
lblNameTheCard=Nenne die Karte
|
||||
lblWhichPlayerShouldRoll=Welcher Spieler soll würfeln?
|
||||
lblChooseResult=Wähle Ergebnis
|
||||
lblChosenCardNotPermanentorCantExistIndependentlyontheBattleground=Die gewählte Karte ist keine bleibende oder kann nicht alleine auf dem Spielfeld existieren.\nWenn du einen Nicht-bleibenden-Karte-Spruch sprechen, oder einen Bleibende-Karte-Spruch auf dem Stapel platzieren möchtest, nutze bitte den "Zauber wirken/Land spielen"-Knopf.
|
||||
lblChosenCardNotPermanentorCantExistIndependentlyontheBattleground=Die gewählte Karte ist keine bleibende oder kann nicht alleine auf dem Spielfeld existieren.\nWenn du einen Nicht-bleibenden-Karte-Spruch sprechen, oder einen Bleibende-Karte-Spruch auf dem Stapel plazieren möchtest, nutze bitte den "Zauber wirken/Land spielen"-Knopf.
|
||||
lblError=Fehler
|
||||
lblWinGame=Gewinne Spiel
|
||||
lblSetLifetoWhat=Setze Lebenspunkte auf?
|
||||
@@ -1146,6 +1148,28 @@ lblArrangeCardsToBePutOnTopOfYourLibrary=Ordne Karten, welche unter die Biblioth
|
||||
lblTopOfLibrary=Oben auf Bibliothek
|
||||
lblSelectCardsToBePutIntoTheGraveyard=Wähle Karten, welche auf den Friedhof gelegt werden sollen
|
||||
lblCardsToPutInTheGraveyard=Karten, welche auf den Friedhof gelegt werden sollen
|
||||
lblDiscardUpToNCards=Werfe bis zu %d Karte(n) ab
|
||||
lblDiscardNCards=Werfe %d Karte(n) ab
|
||||
lblSelectNCardsToDiscardUnlessDiscarduType=Wähle bis zu %d Karte(n) zum abwerfen, außer du wirfst eine %s ab.
|
||||
lblCleanupPhase=Aufräumphase
|
||||
lblSelectCardsToDiscardHandDownMaximum=Werfe %d Karte(n) ab um dein Handmaximum von %max Karte(n) zu erfüllen.
|
||||
lblChooseMinCardToDiscard=Wähle %d Karte(n) zm Abwerfen
|
||||
lblDiscarded=Abgeworfen
|
||||
lblChooseDamageOrderFor=Wähle Schadensreihenfolge für %s
|
||||
lblDamagedFirst=Zuerst geschädigt
|
||||
lblChooseBlockerAfterWhichToPlaceAttackert=Wähle Blocker für Platz %s in der Schadensreihenfolge; Abbrechen für ersten Platz
|
||||
lblPutCardOnTopOrBottomLibrary=Lege %s auf oder unter deine Bibliothek?
|
||||
lblChooseOrderCardsPutIntoLibrary=Wähle die Reihenfolge der Karten, in der sie in die Bibliothek gelegt werden
|
||||
lblClosestToTop=Zuoberst
|
||||
lblChooseOrderCardsPutOntoBattlefield=Wähle die Reihenfolge der Karten, in der sie auf das Spielfeld gebracht werden
|
||||
lblPutFirst=Lege zuerst
|
||||
lblChooseOrderCardsPutIntoGraveyard=Wähle die Reihenfolge der Karten, in der sie in den Friedhof gelegt werden
|
||||
lblClosestToBottom=Zuunterst
|
||||
lblChooseOrderCardsPutIntoPlanarDeck=Wähle die Reihenfolge der Karten, in der sie in das Weltendeck gelegt werden
|
||||
lblChooseOrderCardsPutIntoSchemeDeck=Wähle die Reihenfolge der Karten, in der sie in den Verschwörungsdeck gelegt werden
|
||||
lblChooseOrderCopiesCast=Wähle die Reihenfolge für die Kopien
|
||||
lblDelveHowManyCards=Wühlen - Wie viele Karten?
|
||||
lblExileWhichCard=Schicke welche Karte ins Exil?
|
||||
#AbstractGuiGame.java
|
||||
lblConcedeCurrentGame=Das Spiel wird als verloren gewertet.\n\nTrotzdem aufgeben?
|
||||
lblConcedeTitle=Spiel verloren geben?
|
||||
@@ -1177,28 +1201,41 @@ btnQuitMatch=Beende Partie
|
||||
lblItsADraw=Es ist ein Unentschieden!
|
||||
lblTeamWon=Team %s hat gewonnen!
|
||||
lblWinnerWon=%s hat gewonnen!
|
||||
lblGameLog=Spiel-Aufzeichnung
|
||||
lblGameLog=Spiel-Bericht
|
||||
#NewDraftScreen.java
|
||||
lblLoadingNewDraft=Loading new draft...
|
||||
lblLoadingNewDraft=Lade neuen Draft...
|
||||
#LoadDraftScreen.java
|
||||
lblDoubleTapToEditDeck=Double-tap to edit deck (Long-press to view)
|
||||
lblMode=Mode:
|
||||
lblYouMustSelectExistingDeck=You must select an existing deck or build a deck from a new booster draft game.
|
||||
lblWhichOpponentWouldYouLikeToFace=Which opponent would you like to face?
|
||||
lblSingleMatch=Single Match
|
||||
lblDoubleTapToEditDeck=Doppelklick zum Bearbeiten. Lange drücken für Anzeige.
|
||||
lblMode=Modus:
|
||||
lblYouMustSelectExistingDeck=Du mußt eine bestehendes Deck wählen oder ein neues Draft-Deck erstellen.
|
||||
lblWhichOpponentWouldYouLikeToFace=Wähle deinen Gegner!
|
||||
lblSingleMatch=Einzelnes Spiel
|
||||
#NewGauntletScreen.java
|
||||
lblGauntletText1=In Gauntlet mode, you select a deck and play against multiple opponents.
|
||||
lblGauntletText2=Configure how many opponents you wish to face and what decks or types of decks they will play.
|
||||
lblGauntletText3=Then, try to beat all AI opponents without losing a match.
|
||||
lblSelectGauntletType=Select a Gauntlet Type
|
||||
lblCustomGauntlet=Custom Gauntlet
|
||||
lblGauntletContest=Gauntlet Contest
|
||||
lblSelectYourDeck=Select Your Deck
|
||||
lblSelectDeckForOpponent=Select Deck for Opponent
|
||||
lblSelectGauntletContest=Select Gauntlet Contest
|
||||
lblGauntletText1=Beim Spießrutenlauf wählst du ein Deck und tritts gegen mehrer Gegner an.
|
||||
lblGauntletText2=Wähle die Anzahl der Gegener und welche Art Deck sie spielen sollen.
|
||||
lblGauntletText3=Dann versuche alle Gegner zu besiegen auche ein Spiel zu verlieren.
|
||||
lblSelectGauntletType=Wähle die Art des Spießrutenlaufs
|
||||
lblCustomGauntlet=angepaßter Spießrutenlauf
|
||||
lblGauntletContest=Wettbewerb
|
||||
lblSelectYourDeck=Wähle dein Deck
|
||||
lblSelectDeckForOpponent=Wähle Deck für Gegner
|
||||
lblSelectGauntletContest=Wähle Wettbewerb
|
||||
#PuzzleScreen.java
|
||||
lblPuzzleText1=Puzzle Mode loads in a puzzle that you have to win in a predetermined time/way.
|
||||
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...
|
||||
lblPuzzleText1=Der puzzle-Modus lädt ein Puzzle, welches du auf eine bestimmte Art zu gewinnen hast.
|
||||
lblPuzzleText2=Drücke Start und wähle ein Puzzle aus der Liste.
|
||||
lblPuzzleText3=Zu Beginn wird dir in einem Fenster dein Ziel erklärt, und auch eventuelle spezielle Karten in deiner Kommandozone.
|
||||
lblChooseAPuzzle=Wähle ein Puzzle
|
||||
lblLoadingThePuzzle=Lade das Puzzle...
|
||||
#InputPassPriority.java
|
||||
lblCastSpell=Einen Zauberspruch sprechen
|
||||
lblPlayLand=Spiele ein Land
|
||||
lblActivateAbility=Aktiviere Fähigkeit
|
||||
lblYouHaveManaFloatingInYourManaPoolCouldBeLostIfPassPriority=Du hast noch unverbrauchtes Mana, welches verloren geht, wenn du die Priorität abgibst.
|
||||
lblYouWillTakeManaBurnDamageEqualAmountFloatingManaLostThisWay=Du wirst Manabrand erleiden, in Höhe des verlorenen Manas.
|
||||
lblManaFloating=Unverbrauchtes Mana
|
||||
#InputPayManaOfCostPayment.java
|
||||
lblPayManaCost=Zahle die Spruchkosten:
|
||||
lblLifePaidForPhyrexianMana=(%d Leben wurde bezahlt für phyrexianisches Mana)
|
||||
lblClickOnYourLifeTotalToPayLifeForPhyrexianMana=Klicke auf deine Lebenspunkte um phyrexianisches Mana zu bezahlen.
|
||||
lblClickOnYourLifeTotalToPayLifeForBlackMana=Klicke auf deine Lebenspunkte um schwarzes Mana zu bezahlen.
|
||||
lblClickOnYourLifeTotalToPayLifeForPhyrexianOrBlackMana=Klicke auf deine Lebenspunkte um phyrexianisches oder schwarzes Mana zu bezahlen.
|
||||
@@ -548,6 +548,7 @@ lblPreconstructedDecks=Preconstructed Decks
|
||||
lblQuestOpponentDecks=Quest Opponent Decks
|
||||
lblRandomColorDecks=Random Color Decks
|
||||
lblRandomStandardArchetypeDecks=Random Standard Archetype Decks
|
||||
lblRandomPioneerArchetypeDecks=Random Pioneer Archetype Decks
|
||||
lblRandomModernArchetypeDecks=Random Modern Archetype Decks
|
||||
lblRandomLegacyArchetypeDecks=Random Legacy Archetype Decks
|
||||
lblRandomVintageArchetypeDecks=Random Vintage Archetype Decks
|
||||
@@ -992,6 +993,7 @@ lblOathbreakers=Oathbreakers
|
||||
lblLoadingFonts=Loading fonts...
|
||||
lblLoadingCardTranslations=Loading card translations...
|
||||
lblFinishingStartup=Finishing startup...
|
||||
lblPreloadExtendedArt=Preload Extended Art...
|
||||
#LobbyScreen.java
|
||||
lblMore=More...
|
||||
lblLoadingNewGame=Loading new game...
|
||||
@@ -1146,6 +1148,28 @@ lblArrangeCardsToBePutOnTopOfYourLibrary=Arrange cards to be put on top of your
|
||||
lblTopOfLibrary=Top of Library
|
||||
lblSelectCardsToBePutIntoTheGraveyard=Select cards to be put into the graveyard
|
||||
lblCardsToPutInTheGraveyard=Cards to put in the graveyard
|
||||
lblDiscardUpToNCards=Discard up to %d card(s)
|
||||
lblDiscardNCards=Discard %d card(s)
|
||||
lblSelectNCardsToDiscardUnlessDiscarduType=Select %d card(s) to discard, unless you discard a %s.
|
||||
lblCleanupPhase=Cleanup Phase
|
||||
lblSelectCardsToDiscardHandDownMaximum=Select %d card(s) to discard to bring your hand down to the maximum of %max cards.
|
||||
lblChooseMinCardToDiscard=Choose %d card(s) to discard
|
||||
lblDiscarded=Discarded
|
||||
lblChooseDamageOrderFor=Choose Damage Order for %s
|
||||
lblDamagedFirst=Damaged First
|
||||
lblChooseBlockerAfterWhichToPlaceAttackert=Choose blocker after which to place %s in damage order; cancel to place it first
|
||||
lblPutCardOnTopOrBottomLibrary=Put %s on the top or bottom of your library?
|
||||
lblChooseOrderCardsPutIntoLibrary=Choose order of cards to put into the library
|
||||
lblClosestToTop=Closest to top
|
||||
lblChooseOrderCardsPutOntoBattlefield=Choose order of cards to put onto the battlefield
|
||||
lblPutFirst=Put first
|
||||
lblChooseOrderCardsPutIntoGraveyard=Choose order of cards to put into the graveyard
|
||||
lblClosestToBottom=Closest to bottom
|
||||
lblChooseOrderCardsPutIntoPlanarDeck=Choose order of cards to put into the planar deck
|
||||
lblChooseOrderCardsPutIntoSchemeDeck=Choose order of cards to put into the scheme deck
|
||||
lblChooseOrderCopiesCast=Choose order of copies to cast
|
||||
lblDelveHowManyCards=Delve how many cards?
|
||||
lblExileWhichCard=Exile which card?
|
||||
#AbstractGuiGame.java
|
||||
lblConcedeCurrentGame=This will concede the current game and you will lose.\n\nConcede anyway?
|
||||
lblConcedeTitle=Concede Game?
|
||||
@@ -1202,3 +1226,16 @@ lblPuzzleText2=To begin, press the Start button below, then select a puzzle from
|
||||
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...
|
||||
#InputPassPriority.java
|
||||
lblCastSpell=cast spell
|
||||
lblPlayLand=play land
|
||||
lblActivateAbility=activate ability
|
||||
lblYouHaveManaFloatingInYourManaPoolCouldBeLostIfPassPriority=You have mana floating in your mana pool that could be lost if you pass priority now.
|
||||
lblYouWillTakeManaBurnDamageEqualAmountFloatingManaLostThisWay=You will take mana burn damage equal to the amount of floating mana lost this way.
|
||||
lblManaFloating=Mana Floating
|
||||
#InputPayManaOfCostPayment.java
|
||||
lblPayManaCost=Pay Mana Cost:
|
||||
lblLifePaidForPhyrexianMana=(%d life paid for phyrexian mana)
|
||||
lblClickOnYourLifeTotalToPayLifeForPhyrexianMana=Click on your life total to pay life for phyrexian mana.
|
||||
lblClickOnYourLifeTotalToPayLifeForBlackMana=Click on your life total to pay life for black mana.
|
||||
lblClickOnYourLifeTotalToPayLifeForPhyrexianOrBlackMana=Click on your life total to pay life for phyrexian mana or black mana.
|
||||
@@ -548,6 +548,7 @@ lblPreconstructedDecks=Mazos Preconstruidos
|
||||
lblQuestOpponentDecks=Mazos de los Oponentes de la Aventura
|
||||
lblRandomColorDecks=Mazos Aleatorios por Color
|
||||
lblRandomStandardArchetypeDecks=Mazos Standard por Arquetipo
|
||||
lblRandomPioneerArchetypeDecks=Random Pioneer Archetype Decks
|
||||
lblRandomModernArchetypeDecks=Mazos Modern por Arquetipo
|
||||
lblRandomLegacyArchetypeDecks=Mazos Legacy por Arquetipo
|
||||
lblRandomVintageArchetypeDecks=Mazos Vintage por Arquetipo
|
||||
@@ -950,12 +951,12 @@ 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.
|
||||
lblEnableRoundBorder=Enable Round Border Mask
|
||||
nlEnableRoundBorder=When enabled, the card corners are rounded (Preferably Card with Full Borders).
|
||||
lblPreloadExtendedArtCards=Preload Extended Art Cards
|
||||
nlPreloadExtendedArtCards=When enabled, Preloads Extended Art Cards to Cache on Startup.
|
||||
lblShowFPSDisplay=Show FPS Display
|
||||
nlShowFPSDisplay=When enabled, show the FPS Display (Experimental).
|
||||
lblEnableRoundBorder=Habilitar máscara de bordes redondeados
|
||||
nlEnableRoundBorder=Cuando está habilitado, las esquinas de las cartas se redondean (Preferiblemente Cartas con bordes completos).
|
||||
lblPreloadExtendedArtCards=Precargar Cartas de Arte Extendido
|
||||
nlPreloadExtendedArtCards=Cuando está habilitado, carga previamente las cartas de arte ampliadas en la caché al iniciar el programa.
|
||||
lblShowFPSDisplay=Mostrar FPS
|
||||
nlShowFPSDisplay=Cuando está habilitado, muestra los FPS (Experimental).
|
||||
#MatchScreen.java
|
||||
lblPlayers=Jugadores
|
||||
lblLog=Log
|
||||
@@ -992,6 +993,7 @@ lblOathbreakers=Oathbreakers
|
||||
lblLoadingFonts=Cargando fuentes...
|
||||
lblLoadingCardTranslations=Cargando traducciones de cartas...
|
||||
lblFinishingStartup=Finalizando el arranque...
|
||||
lblPreloadExtendedArt=Precargando Arte Extendido...
|
||||
#LobbyScreen.java
|
||||
lblMore=Más...
|
||||
lblLoadingNewGame=Cargando nueva partida...
|
||||
@@ -1146,6 +1148,28 @@ lblArrangeCardsToBePutOnTopOfYourLibrary=Organizar las cartas para colocarlas en
|
||||
lblTopOfLibrary=Parte Superior de la Biblioteca
|
||||
lblSelectCardsToBePutIntoTheGraveyard=Selecciona las cartas para ponerlas en el Cementerio
|
||||
lblCardsToPutInTheGraveyard=Cartas para poner en el Cementerio
|
||||
lblDiscardUpToNCards=Descarta hasta %d carta(s)
|
||||
lblDiscardNCards=Descarta %d carta(s)
|
||||
lblSelectNCardsToDiscardUnlessDiscarduType=Selecciona %d carta(s) para descartar, a menos que descartes un %s.
|
||||
lblCleanupPhase=Fase de Limpieza
|
||||
lblSelectCardsToDiscardHandDownMaximum=Selecciona %d carta(s) a descartar para reducir tu mano al máximo de %max cartas.
|
||||
lblChooseMinCardToDiscard=Elige %d carta(s) para descartar
|
||||
lblDiscarded=Descartado
|
||||
lblChooseDamageOrderFor=Selecciona el Orden de Daños para %s
|
||||
lblDamagedFirst=Dañado Primero
|
||||
lblChooseBlockerAfterWhichToPlaceAttackert=Elige un bloqueador después del cual colocar %s en el orden de daño; cancela para colocarlo primero.
|
||||
lblPutCardOnTopOrBottomLibrary=¿Poner %s en la parte superior o inferior de tu biblioteca?
|
||||
lblChooseOrderCardsPutIntoLibrary=Elige el orden de las cartas para poner en la biblioteca
|
||||
lblClosestToTop=Más cerca de la parte superior
|
||||
lblChooseOrderCardsPutOntoBattlefield=Elige el orden de las cartas que quieres poner en el campo de batalla
|
||||
lblPutFirst=Poner en primer lugar
|
||||
lblChooseOrderCardsPutIntoGraveyard=Elige el orden de las cartas para poner en el cementerio
|
||||
lblClosestToBottom=Más cerca de la parte inferior
|
||||
lblChooseOrderCardsPutIntoPlanarDeck=Elige el orden de las cartas que quieres poner en el mazo planar
|
||||
lblChooseOrderCardsPutIntoSchemeDeck=Elige el orden de las cartas que quieres poner en el mazo scheme
|
||||
lblChooseOrderCopiesCast=Elige el orden de las copias que se van a invocar
|
||||
lblDelveHowManyCards=¿Excavar cuántas cartas?
|
||||
lblExileWhichCard=¿Exiliar qué carta?
|
||||
#AbstractGuiGame.java
|
||||
lblConcedeCurrentGame=Esto concederá la partida actual y perderás.\n\n¿Conceder de todos modos?
|
||||
lblConcedeTitle=¿Conceder Partida?
|
||||
@@ -1202,3 +1226,16 @@ lblPuzzleText2=Para comenzar, pulsa el botón Inicio y selecciona un puzzle de u
|
||||
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...
|
||||
#InputPassPriority.java
|
||||
lblCastSpell=lanzar hechizo
|
||||
lblPlayLand=jugar tierra
|
||||
lblActivateAbility=activar abilidad
|
||||
lblYouHaveManaFloatingInYourManaPoolCouldBeLostIfPassPriority=Tienes maná flotando en tu pool de maná que podría perderse si pasas la prioridad ahora.
|
||||
lblYouWillTakeManaBurnDamageEqualAmountFloatingManaLostThisWay=Recibirás un daño por quemadura de maná igual a la cantidad de maná flotante perdido de esta manera.
|
||||
lblManaFloating=Maná Flotante
|
||||
#InputPayManaOfCostPayment.java
|
||||
lblPayManaCost=Paga el coste de maná:
|
||||
lblLifePaidForPhyrexianMana=(%d de vida pagado por el maná filaxiano)
|
||||
lblClickOnYourLifeTotalToPayLifeForPhyrexianMana=Haga clic en el total de su vida para pagar la vida por el maná filaxiano.
|
||||
lblClickOnYourLifeTotalToPayLifeForBlackMana=Haga clic en el total de su vida para pagar la vida de maná negro.
|
||||
lblClickOnYourLifeTotalToPayLifeForPhyrexianOrBlackMana=Haga clic en el total de su vida para pagar la vida por maná filoxiano o maná negro.
|
||||
@@ -548,6 +548,7 @@ lblPreconstructedDecks=预组套牌
|
||||
lblQuestOpponentDecks=冒险之旅套牌
|
||||
lblRandomColorDecks=随机颜色套牌
|
||||
lblRandomStandardArchetypeDecks=随机标准原型套牌
|
||||
lblRandomPioneerArchetypeDecks=随机先驱原型套牌
|
||||
lblRandomModernArchetypeDecks=随机摩登原型套牌
|
||||
lblRandomLegacyArchetypeDecks=随机薪传原型套牌
|
||||
lblRandomVintageArchetypeDecks=随机特选原型套牌
|
||||
@@ -883,7 +884,7 @@ lblQty=数量
|
||||
lblQuantity=数量
|
||||
lblSide=备牌
|
||||
lblSideboard=备牌
|
||||
lblNew=新建
|
||||
lblNew=新获得
|
||||
lblOwned=拥有
|
||||
lblPower=力量
|
||||
ttPower=力量
|
||||
@@ -992,6 +993,7 @@ lblOathbreakers=破誓者
|
||||
lblLoadingFonts=加载字体中
|
||||
lblLoadingCardTranslations=加载卡牌翻译中
|
||||
lblFinishingStartup=完成启动
|
||||
lblPreloadExtendedArt=预加载拉伸卡图
|
||||
#LobbyScreen.java
|
||||
lblMore=更多
|
||||
lblLoadingNewGame=载入新游戏中
|
||||
@@ -1146,6 +1148,28 @@ lblArrangeCardsToBePutOnTopOfYourLibrary=为放于牌库顶的卡牌排序
|
||||
lblTopOfLibrary=牌库顶
|
||||
lblSelectCardsToBePutIntoTheGraveyard=选择要放于坟场的卡牌
|
||||
lblCardsToPutInTheGraveyard=放于坟场的卡牌
|
||||
lblDiscardUpToNCards=最多弃%d张牌
|
||||
lblDiscardNCards=弃%d张牌
|
||||
lblSelectNCardsToDiscardUnlessDiscarduType=选择要丢弃的%d张牌,除非你丢弃%s。
|
||||
lblCleanupPhase=清除步骤
|
||||
lblSelectCardsToDiscardHandDownMaximum=选择要丢弃的%d张牌,以使你的手牌数量减少到%max张。
|
||||
lblChooseMinCardToDiscard=选择%d张牌弃掉
|
||||
lblDiscarded=弃牌
|
||||
lblChooseDamageOrderFor=选择%s造成伤害的顺序
|
||||
lblDamagedFirst=先造成伤害
|
||||
lblChooseBlockerAfterWhichToPlaceAttackert=选择%s后造成伤害的阻挡者; cancel to place it first
|
||||
lblPutCardOnTopOrBottomLibrary=将%s放到牌库顶还是底?
|
||||
lblChooseOrderCardsPutIntoLibrary=选择要放入牌库中的牌的顺序
|
||||
lblClosestToTop=最接近顶部
|
||||
lblChooseOrderCardsPutOntoBattlefield=选择要放入战场中的牌的顺序
|
||||
lblPutFirst=放在最前
|
||||
lblChooseOrderCardsPutIntoGraveyard=选择要放入坟场中的牌的顺序
|
||||
lblClosestToBottom=最接近底部
|
||||
lblChooseOrderCardsPutIntoPlanarDeck=选择要放入时空竞逐套牌中的牌的顺序
|
||||
lblChooseOrderCardsPutIntoSchemeDeck=选择要放入魔王套牌中的牌的顺序
|
||||
lblChooseOrderCopiesCast=选择要复制品的释放顺序。
|
||||
lblDelveHowManyCards=掘穴多少张牌?
|
||||
lblExileWhichCard=放逐哪张牌?
|
||||
#AbstractGuiGame.java
|
||||
lblConcedeCurrentGame=这局游戏认输。\n\n确认吗?
|
||||
lblConcedeTitle=这局游戏认输?
|
||||
@@ -1202,3 +1226,16 @@ lblPuzzleText2=首先,按下面的开始按钮,然后从列表中选择一
|
||||
lblPuzzleText3=当解谜开始的时候,该谜题的要求将会显示在弹窗中,并且还会在指挥官区域放置一张特殊效应卡指示这个谜题的要求。
|
||||
lblChooseAPuzzle=选择一个谜题
|
||||
lblLoadingThePuzzle=加载新的谜题中
|
||||
#InputPassPriority.java
|
||||
lblCastSpell=释放咒语
|
||||
lblPlayLand=使用地
|
||||
lblActivateAbility=启动式异能
|
||||
lblYouHaveManaFloatingInYourManaPoolCouldBeLostIfPassPriority=你的法术力池中还有剩余的法术力,如果现在让过优先权,这些法术力可能会丢失。
|
||||
lblYouWillTakeManaBurnDamageEqualAmountFloatingManaLostThisWay=你将受到等同于通过这种方式失去的剩余法术力数量的法术力灼烧伤害。
|
||||
lblManaFloating=剩余法术力
|
||||
#InputPayManaOfCostPayment.java
|
||||
lblPayManaCost=支付法术力:
|
||||
lblLifePaidForPhyrexianMana=(以%d生命支付了非瑞克西亚法术力)
|
||||
lblClickOnYourLifeTotalToPayLifeForPhyrexianMana=单击你的总生命,以生命值支付非瑞克西亚法术力。
|
||||
lblClickOnYourLifeTotalToPayLifeForBlackMana=单击你的总生命,以生命值支付黑色法术力。
|
||||
lblClickOnYourLifeTotalToPayLifeForPhyrexianOrBlackMana=单击你的总生命,以生命值支付黑色或非瑞克西亚法术力。
|
||||
@@ -1,5 +1,6 @@
|
||||
Name:Main world
|
||||
Name:Random Standard
|
||||
Name:Random Pioneer
|
||||
Name:Random Modern
|
||||
Name:Random Commander
|
||||
Name:Amonkhet|Dir:Amonkhet|Sets:AKH, HOU
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 32 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 565 KiB After Width: | Height: | Size: 687 KiB |
@@ -14,6 +14,7 @@ import forge.item.SealedProduct;
|
||||
import forge.model.FModel;
|
||||
import forge.properties.ForgeConstants;
|
||||
import forge.properties.ForgePreferences;
|
||||
import forge.util.CardTranslation;
|
||||
import forge.util.Lang;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ public final class CardArchetypeLDAGenerator {
|
||||
public static boolean initialize(){
|
||||
List<String> formatStrings = new ArrayList<>();
|
||||
formatStrings.add(FModel.getFormats().getStandard().getName());
|
||||
formatStrings.add(FModel.getFormats().getPioneer().getName());
|
||||
formatStrings.add(FModel.getFormats().getModern().getName());
|
||||
formatStrings.add("Legacy");
|
||||
formatStrings.add("Vintage");
|
||||
|
||||
@@ -20,6 +20,7 @@ public enum DeckType {
|
||||
QUEST_OPPONENT_DECK("lblQuestOpponentDecks"),
|
||||
COLOR_DECK("lblRandomColorDecks"),
|
||||
STANDARD_CARDGEN_DECK("lblRandomStandardArchetypeDecks"),
|
||||
PIONEER_CARDGEN_DECK("lblRandomPioneerArchetypeDecks"),
|
||||
MODERN_CARDGEN_DECK("lblRandomModernArchetypeDecks"),
|
||||
LEGACY_CARDGEN_DECK("lblRandomLegacyArchetypeDecks"),
|
||||
VINTAGE_CARDGEN_DECK("lblRandomVintageArchetypeDecks"),
|
||||
@@ -41,6 +42,7 @@ public enum DeckType {
|
||||
DeckType.QUEST_OPPONENT_DECK,
|
||||
DeckType.COLOR_DECK,
|
||||
DeckType.STANDARD_CARDGEN_DECK,
|
||||
DeckType.PIONEER_CARDGEN_DECK,
|
||||
DeckType.MODERN_CARDGEN_DECK,
|
||||
DeckType.LEGACY_CARDGEN_DECK,
|
||||
DeckType.VINTAGE_CARDGEN_DECK,
|
||||
|
||||
@@ -104,6 +104,8 @@ public class RandomDeckGenerator extends DeckProxy implements Comparable<RandomD
|
||||
return DeckgenUtil.buildColorDeck(colors, null, isAi);
|
||||
case STANDARD_CARDGEN_DECK:
|
||||
return DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().getStandard(),isAi);
|
||||
case PIONEER_CARDGEN_DECK:
|
||||
return DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().getPioneer(),isAi);
|
||||
case MODERN_CARDGEN_DECK:
|
||||
return DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().getModern(),isAi);
|
||||
case LEGACY_CARDGEN_DECK:
|
||||
|
||||
@@ -36,6 +36,9 @@ public class GauntletUtil {
|
||||
case STANDARD_CARDGEN_DECK:
|
||||
deck = DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().getStandard(),true);
|
||||
break;
|
||||
case PIONEER_CARDGEN_DECK:
|
||||
deck = DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().getPioneer(),true);
|
||||
break;
|
||||
case MODERN_CARDGEN_DECK:
|
||||
deck = DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().getModern(),true);
|
||||
break;
|
||||
|
||||
@@ -30,6 +30,7 @@ import forge.player.GamePlayerUtil;
|
||||
import forge.player.PlayerControllerHuman;
|
||||
import forge.properties.ForgePreferences.FPref;
|
||||
import forge.util.ITriggerEvent;
|
||||
import forge.util.Localizer;
|
||||
import forge.util.ThreadUtil;
|
||||
|
||||
/**
|
||||
@@ -55,11 +56,12 @@ public class InputPassPriority extends InputSyncronizedBase {
|
||||
public final void showMessage() {
|
||||
showMessage(getTurnPhasePriorityMessage(getController().getGame()));
|
||||
chosenSa = null;
|
||||
Localizer localizer = Localizer.getInstance();
|
||||
if (getController().canUndoLastAction()) { //allow undoing with cancel button if can undo last action
|
||||
getController().getGui().updateButtons(getOwner(), "OK", "Undo", true, true, true);
|
||||
getController().getGui().updateButtons(getOwner(), localizer.getMessage("lblOK"), localizer.getMessage("lblUndo"), true, true, true);
|
||||
}
|
||||
else { //otherwise allow ending turn with cancel button
|
||||
getController().getGui().updateButtons(getOwner(), "OK", "End Turn", true, true, true);
|
||||
getController().getGui().updateButtons(getOwner(), localizer.getMessage("lblOK"), localizer.getMessage("lblEndTurn"), true, true, true);
|
||||
}
|
||||
|
||||
getController().getGui().alertUser();
|
||||
@@ -106,11 +108,12 @@ public class InputPassPriority extends InputSyncronizedBase {
|
||||
ThreadUtil.invokeInGameThread(new Runnable() { //must invoke in game thread so dialog can be shown on mobile game
|
||||
@Override
|
||||
public void run() {
|
||||
String message = "You have mana floating in your mana pool that could be lost if you pass priority now.";
|
||||
Localizer localizer = Localizer.getInstance();
|
||||
String message = localizer.getMessage("lblYouHaveManaFloatingInYourManaPoolCouldBeLostIfPassPriority");
|
||||
if (FModel.getPreferences().getPrefBoolean(FPref.UI_MANABURN)) {
|
||||
message += " You will take mana burn damage equal to the amount of floating mana lost this way.";
|
||||
message += " " + localizer.getMessage("lblYouWillTakeManaBurnDamageEqualAmountFloatingManaLostThisWay");
|
||||
}
|
||||
if (getController().getGui().showConfirmDialog(message, "Mana Floating", "Ok", "Cancel")) {
|
||||
if (getController().getGui().showConfirmDialog(message, localizer.getMessage("lblManaFloating"), localizer.getMessage("lblOk"), localizer.getMessage("lblCancel"))) {
|
||||
runnable.run();
|
||||
}
|
||||
}
|
||||
@@ -161,12 +164,12 @@ public class InputPassPriority extends InputSyncronizedBase {
|
||||
}
|
||||
final SpellAbility sa = abilities.get(0);
|
||||
if (sa.isSpell()) {
|
||||
return "cast spell";
|
||||
return Localizer.getInstance().getMessage("lblCastSpell");
|
||||
}
|
||||
if (sa instanceof LandAbility) {
|
||||
return "play land";
|
||||
return Localizer.getInstance().getMessage("lblPlayLand");
|
||||
}
|
||||
return "activate ability";
|
||||
return Localizer.getInstance().getMessage("lblActivateAbility");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
package forge.match.input;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import forge.card.mana.ManaAtom;
|
||||
import forge.card.mana.ManaCostShard;
|
||||
import forge.game.card.Card;
|
||||
@@ -15,7 +11,7 @@ import forge.model.FModel;
|
||||
import forge.player.PlayerControllerHuman;
|
||||
import forge.properties.ForgePreferences;
|
||||
import forge.util.ITriggerEvent;
|
||||
import forge.util.Lang;
|
||||
import forge.util.Localizer;
|
||||
|
||||
public class InputPayManaOfCostPayment extends InputPayMana {
|
||||
public InputPayManaOfCostPayment(final PlayerControllerHuman controller, ManaCostBeingPaid cost, SpellAbility spellAbility, Player payer, ManaConversionMatrix matrix) {
|
||||
@@ -64,6 +60,7 @@ public class InputPayManaOfCostPayment extends InputPayMana {
|
||||
protected String getMessage() {
|
||||
final String displayMana = manaCost.toString(false, player.getManaPool());
|
||||
final StringBuilder msg = new StringBuilder();
|
||||
final Localizer localizer = Localizer.getInstance();
|
||||
|
||||
applyMatrix();
|
||||
|
||||
@@ -78,26 +75,22 @@ public class InputPayManaOfCostPayment extends InputPayMana {
|
||||
msg.append(saPaidFor.getHostCard()).append(" - ").append(saPaidFor.toString()).append("\n\n");
|
||||
}
|
||||
}
|
||||
msg.append("Pay Mana Cost: ").append(displayMana);
|
||||
msg.append(localizer.getMessage("lblPayManaCost")).append(" ").append(displayMana);
|
||||
if (this.phyLifeToLose > 0) {
|
||||
msg.append(" (");
|
||||
msg.append(this.phyLifeToLose);
|
||||
msg.append(" life paid for phyrexian mana)");
|
||||
msg.append(" ").append(String.format(localizer.getMessage("lblLifePaidForPhyrexianMana"), this.phyLifeToLose));
|
||||
}
|
||||
|
||||
boolean isLifeInsteadBlack = player.hasKeyword("PayLifeInsteadOf:B") && manaCost.hasAnyKind(ManaAtom.BLACK);
|
||||
|
||||
if (manaCost.containsPhyrexianMana() || isLifeInsteadBlack) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("Click on your life total to pay life for ");
|
||||
List<String> list = Lists.newArrayList();
|
||||
if (manaCost.containsPhyrexianMana()) {
|
||||
list.add("phyrexian mana");
|
||||
if (manaCost.containsPhyrexianMana() && !isLifeInsteadBlack) {
|
||||
sb.append(localizer.getMessage("lblClickOnYourLifeTotalToPayLifeForPhyrexianMana"));
|
||||
} else if (!manaCost.containsPhyrexianMana() && isLifeInsteadBlack) {
|
||||
sb.append(localizer.getMessage("lblClickOnYourLifeTotalToPayLifeForBlackMana"));
|
||||
} else if (manaCost.containsPhyrexianMana() && isLifeInsteadBlack) {
|
||||
sb.append(localizer.getMessage("lblClickOnYourLifeTotalToPayLifeForPhyrexianOrBlackMana"));
|
||||
}
|
||||
if (isLifeInsteadBlack) {
|
||||
list.add("black mana");
|
||||
}
|
||||
sb.append(Lang.joinHomogenous(list, null, "or")).append(".");
|
||||
msg.append("\n(").append(sb).append(")");
|
||||
}
|
||||
|
||||
|
||||
@@ -17,10 +17,6 @@
|
||||
*/
|
||||
package forge.match.input;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import forge.card.mana.ManaAtom;
|
||||
import forge.card.mana.ManaCost;
|
||||
import forge.card.mana.ManaCostShard;
|
||||
@@ -33,7 +29,7 @@ import forge.model.FModel;
|
||||
import forge.player.PlayerControllerHuman;
|
||||
import forge.properties.ForgePreferences;
|
||||
import forge.util.ITriggerEvent;
|
||||
import forge.util.Lang;
|
||||
import forge.util.Localizer;
|
||||
|
||||
//pays the cost of a card played from the player's hand
|
||||
//the card is removed from the players hand if the cost is paid
|
||||
@@ -136,29 +132,26 @@ public class InputPayManaSimple extends InputPayMana {
|
||||
@Override
|
||||
protected String getMessage() {
|
||||
final StringBuilder msg = new StringBuilder();
|
||||
final Localizer localizer = Localizer.getInstance();
|
||||
if (FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DETAILED_SPELLDESC_IN_PROMPT)) {
|
||||
msg.append(saPaidFor.getStackDescription().replace("(Targeting ERROR)", "")).append("\n\n");
|
||||
}
|
||||
msg.append("Pay Mana Cost: ").append(this.manaCost.toString(false, player.getManaPool()));
|
||||
msg.append(localizer.getMessage("lblPayManaCost")).append(" ").append(this.manaCost.toString(false, player.getManaPool()));
|
||||
if (this.phyLifeToLose > 0) {
|
||||
msg.append(" (");
|
||||
msg.append(this.phyLifeToLose);
|
||||
msg.append(" life paid for phyrexian mana)");
|
||||
msg.append(" ").append(String.format(localizer.getMessage("lblLifePaidForPhyrexianMana"), this.phyLifeToLose));
|
||||
}
|
||||
|
||||
boolean isLifeInsteadBlack = player.hasKeyword("PayLifeInsteadOf:B") && manaCost.hasAnyKind(ManaAtom.BLACK);
|
||||
|
||||
if (manaCost.containsPhyrexianMana() || isLifeInsteadBlack) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("Click on your life total to pay life for ");
|
||||
List<String> list = Lists.newArrayList();
|
||||
if (manaCost.containsPhyrexianMana()) {
|
||||
list.add("phyrexian mana");
|
||||
if (manaCost.containsPhyrexianMana() && !isLifeInsteadBlack) {
|
||||
sb.append(localizer.getMessage("lblClickOnYourLifeTotalToPayLifeForPhyrexianMana"));
|
||||
} else if (!manaCost.containsPhyrexianMana() && isLifeInsteadBlack) {
|
||||
sb.append(localizer.getMessage("lblClickOnYourLifeTotalToPayLifeForBlackMana"));
|
||||
} else if (manaCost.containsPhyrexianMana() && isLifeInsteadBlack) {
|
||||
sb.append(localizer.getMessage("lblClickOnYourLifeTotalToPayLifeForPhyrexianOrBlackMana"));
|
||||
}
|
||||
if (isLifeInsteadBlack) {
|
||||
list.add("black mana");
|
||||
}
|
||||
sb.append(Lang.joinHomogenous(list, null, "or")).append(".");
|
||||
msg.append("\n(").append(sb).append(")");
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,6 @@ import forge.CardStorageReader.ProgressObserver;
|
||||
import forge.achievement.*;
|
||||
import forge.ai.AiProfileUtil;
|
||||
import forge.card.CardPreferences;
|
||||
import forge.card.CardTranslation;
|
||||
import forge.card.CardType;
|
||||
import forge.deck.CardArchetypeLDAGenerator;
|
||||
import forge.deck.CardRelationMatrixGenerator;
|
||||
@@ -49,6 +48,7 @@ import forge.quest.QuestController;
|
||||
import forge.quest.QuestWorld;
|
||||
import forge.quest.data.QuestPreferences;
|
||||
import forge.tournament.TournamentData;
|
||||
import forge.util.CardTranslation;
|
||||
import forge.util.FileUtil;
|
||||
import forge.util.Localizer;
|
||||
import forge.util.storage.IStorage;
|
||||
@@ -147,7 +147,7 @@ public final class FModel {
|
||||
final CardStorageReader tokenReader = new CardStorageReader(ForgeConstants.TOKEN_DATA_DIR, progressBarBridge,
|
||||
FModel.getPreferences().getPrefBoolean(FPref.LOAD_CARD_SCRIPTS_LAZILY));
|
||||
magicDb = new StaticData(reader, tokenReader, ForgeConstants.EDITIONS_DIR, ForgeConstants.BLOCK_DATA_DIR);
|
||||
CardTranslation.preloadTranslation(preferences.getPref(FPref.UI_LANGUAGE));
|
||||
CardTranslation.preloadTranslation(preferences.getPref(FPref.UI_LANGUAGE), ForgeConstants.LANG_DIR);
|
||||
|
||||
//create profile dirs if they don't already exist
|
||||
for (final String dname : ForgeConstants.PROFILE_DIRS) {
|
||||
@@ -168,6 +168,7 @@ public final class FModel {
|
||||
new File(ForgeConstants.USER_FORMATS_DIR), preferences.getPrefBoolean(FPref.LOAD_HISTORIC_FORMATS)));
|
||||
|
||||
magicDb.setStandardPredicate(formats.getStandard().getFilterRules());
|
||||
magicDb.setPioneerPredicate(formats.getPioneer().getFilterRules());
|
||||
magicDb.setModernPredicate(formats.getModern().getFilterRules());
|
||||
magicDb.setCommanderPredicate(formats.get("Commander").getFilterRules());
|
||||
magicDb.setOathbreakerPredicate(formats.get("Oathbreaker").getFilterRules());
|
||||
|
||||
@@ -678,7 +678,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
|
||||
public CardCollection orderBlockers(final Card attacker, final CardCollection blockers) {
|
||||
final CardView vAttacker = CardView.get(attacker);
|
||||
getGui().setPanelSelection(vAttacker);
|
||||
return game.getCardList(getGui().order("Choose Damage Order for " + vAttacker, "Damaged First",
|
||||
return game.getCardList(getGui().order(localizer.getMessage("lblChooseDamageOrderFor").replace("%s", vAttacker.toString()), localizer.getMessage("lblDamagedFirst"),
|
||||
CardView.getCollection(blockers), vAttacker));
|
||||
}
|
||||
|
||||
@@ -703,7 +703,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
|
||||
final CardView vAttacker = CardView.get(attacker);
|
||||
getGui().setPanelSelection(vAttacker);
|
||||
return game.getCardList(getGui().insertInList(
|
||||
"Choose blocker after which to place " + vAttacker + " in damage order; cancel to place it first",
|
||||
localizer.getMessage("lblChooseBlockerAfterWhichToPlaceAttackert").replace("%s", vAttacker.toString()),
|
||||
CardView.get(blocker), CardView.getCollection(oldBlockers)));
|
||||
}
|
||||
|
||||
@@ -711,7 +711,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
|
||||
public CardCollection orderAttackers(final Card blocker, final CardCollection attackers) {
|
||||
final CardView vBlocker = CardView.get(blocker);
|
||||
getGui().setPanelSelection(vBlocker);
|
||||
return game.getCardList(getGui().order("Choose Damage Order for " + vBlocker, "Damaged First",
|
||||
return game.getCardList(getGui().order(localizer.getMessage("lblChooseDamageOrderFor").replace("%s", vBlocker.toString()), localizer.getMessage("lblDamagedFirst"),
|
||||
CardView.getCollection(attackers), vBlocker));
|
||||
}
|
||||
|
||||
@@ -841,7 +841,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
|
||||
getGui().setCard(c.getView());
|
||||
|
||||
boolean result = false;
|
||||
result = InputConfirm.confirm(this, view, TextUtil.concatNoSpace("Put ", view.toString(), " on the top or bottom of your library?"),
|
||||
result = InputConfirm.confirm(this, view, localizer.getMessage("lblPutCardOnTopOrBottomLibrary").replace("%s", view.toString()),
|
||||
true, ImmutableList.of("Top", "Bottom"));
|
||||
|
||||
endTempShowCards();
|
||||
@@ -876,27 +876,27 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
|
||||
tempShowCards(cards);
|
||||
switch (destinationZone) {
|
||||
case Library:
|
||||
choices = getGui().order("Choose order of cards to put into the library", "Closest to top",
|
||||
choices = getGui().order(localizer.getMessage("lblChooseOrderCardsPutIntoLibrary"), localizer.getMessage("lblClosestToTop"),
|
||||
CardView.getCollection(cards), null);
|
||||
break;
|
||||
case Battlefield:
|
||||
choices = getGui().order("Choose order of cards to put onto the battlefield", "Put first",
|
||||
choices = getGui().order(localizer.getMessage("lblChooseOrderCardsPutOntoBattlefield"), localizer.getMessage("lblPutFirst"),
|
||||
CardView.getCollection(cards), null);
|
||||
break;
|
||||
case Graveyard:
|
||||
choices = getGui().order("Choose order of cards to put into the graveyard", "Closest to bottom",
|
||||
choices = getGui().order(localizer.getMessage("lblChooseOrderCardsPutIntoGraveyard"), localizer.getMessage("lblClosestToBottom"),
|
||||
CardView.getCollection(cards), null);
|
||||
break;
|
||||
case PlanarDeck:
|
||||
choices = getGui().order("Choose order of cards to put into the planar deck", "Closest to top",
|
||||
choices = getGui().order(localizer.getMessage("lblChooseOrderCardsPutIntoPlanarDeck"), localizer.getMessage("lblClosestToTop"),
|
||||
CardView.getCollection(cards), null);
|
||||
break;
|
||||
case SchemeDeck:
|
||||
choices = getGui().order("Choose order of cards to put into the scheme deck", "Closest to top",
|
||||
choices = getGui().order(localizer.getMessage("lblChooseOrderCardsPutIntoSchemeDeck"), localizer.getMessage("lblClosestToTop"),
|
||||
CardView.getCollection(cards), null);
|
||||
break;
|
||||
case Stack:
|
||||
choices = getGui().order("Choose order of copies to cast", "Put first", CardView.getCollection(cards),
|
||||
choices = getGui().order(localizer.getMessage("lblChooseOrderCopiesCast"), localizer.getMessage("lblPutFirst"), CardView.getCollection(cards),
|
||||
null);
|
||||
break;
|
||||
default:
|
||||
@@ -914,14 +914,14 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
|
||||
if (p != player) {
|
||||
tempShowCards(valid);
|
||||
final CardCollection choices = game
|
||||
.getCardList(getGui().many("Choose " + min + " card" + (min != 1 ? "s" : "") + " to discard",
|
||||
"Discarded", min, min, CardView.getCollection(valid), null));
|
||||
.getCardList(getGui().many(String.format(localizer.getMessage("lblChooseMinCardToDiscard"), min),
|
||||
localizer.getMessage("lblDiscarded"), min, min, CardView.getCollection(valid), null));
|
||||
endTempShowCards();
|
||||
return choices;
|
||||
}
|
||||
|
||||
final InputSelectCardsFromList inp = new InputSelectCardsFromList(this, min, max, valid, sa);
|
||||
inp.setMessage(sa.hasParam("AnyNumber") ? "Discard up to %d card(s)" : "Discard %d card(s)");
|
||||
inp.setMessage(sa.hasParam("AnyNumber") ? localizer.getMessage("lblDiscardUpToNCards") : localizer.getMessage("lblDiscardNCards"));
|
||||
inp.showAndWait();
|
||||
return new CardCollection(inp.getSelected());
|
||||
}
|
||||
@@ -938,9 +938,9 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
|
||||
for (int i = 0; i <= cardsInGrave; i++) {
|
||||
cntChoice.add(Integer.valueOf(i));
|
||||
}
|
||||
final int chosenAmount = getGui().one("Delve how many cards?", cntChoice.build()).intValue();
|
||||
final int chosenAmount = getGui().one(localizer.getMessage("lblDelveHowManyCards"), cntChoice.build()).intValue();
|
||||
for (int i = 0; i < chosenAmount; i++) {
|
||||
final CardView nowChosen = getGui().oneOrNone("Exile which card?", CardView.getCollection(grave));
|
||||
final CardView nowChosen = getGui().oneOrNone(localizer.getMessage("lblExileWhichCard"), CardView.getCollection(grave));
|
||||
|
||||
if (nowChosen == null) {
|
||||
// User canceled,abort delving.
|
||||
@@ -1003,7 +1003,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
|
||||
return super.hasAllTargets();
|
||||
}
|
||||
};
|
||||
target.setMessage("Select %d card(s) to discard, unless you discard a " + uType + ".");
|
||||
target.setMessage(localizer.getMessage("lblSelectNCardsToDiscardUnlessDiscarduType").replace("%s", uType));
|
||||
target.showAndWait();
|
||||
return new CardCollection(target.getSelected());
|
||||
}
|
||||
@@ -1316,8 +1316,8 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
|
||||
// opponent's next turn
|
||||
}
|
||||
};
|
||||
final String message = "Cleanup Phase\nSelect " + nDiscard + " card" + (nDiscard > 1 ? "s" : "")
|
||||
+ " to discard to bring your hand down to the maximum of " + max + " cards.";
|
||||
final String message = localizer.getMessage("lblCleanupPhase") + "\n"
|
||||
+ localizer.getMessage("lblSelectCardsToDiscardHandDownMaximum").replace("%d", String.valueOf(nDiscard)).replace("%max", String.valueOf(max));
|
||||
inp.setMessage(message);
|
||||
inp.setCancelAllowed(false);
|
||||
inp.showAndWait();
|
||||
|
||||
@@ -448,6 +448,9 @@ public class QuestController {
|
||||
if (world.getName().equals(QuestWorld.STANDARDWORLDNAME)) {
|
||||
this.duelManager = new QuestEventLDADuelManager(FModel.getFormats().getStandard());
|
||||
return;
|
||||
} else if (world.getName().equals(QuestWorld.PIONEERWORLDNAME)) {
|
||||
this.duelManager = new QuestEventLDADuelManager(FModel.getFormats().getPioneer());
|
||||
return;
|
||||
}else if (world.getName().equals(QuestWorld.MODERNWORLDNAME)) {
|
||||
this.duelManager = new QuestEventLDADuelManager(FModel.getFormats().getModern());
|
||||
return;
|
||||
|
||||
@@ -40,6 +40,7 @@ public class QuestWorld implements Comparable<QuestWorld>{
|
||||
private final String dir;
|
||||
private final GameFormatQuest format;
|
||||
public static final String STANDARDWORLDNAME = "Random Standard";
|
||||
public static final String PIONEERWORLDNAME = "Random Pioneer";
|
||||
public static final String MODERNWORLDNAME = "Random Modern";
|
||||
public static final String RANDOMCOMMANDERWORLDNAME = "Random Commander";
|
||||
|
||||
@@ -195,6 +196,12 @@ public class QuestWorld implements Comparable<QuestWorld>{
|
||||
FModel.getFormats().getStandard().getBannedCardNames(),false);
|
||||
}
|
||||
|
||||
if (useName.equalsIgnoreCase(QuestWorld.PIONEERWORLDNAME)){
|
||||
useFormat = new GameFormatQuest(QuestWorld.PIONEERWORLDNAME,
|
||||
FModel.getFormats().getPioneer().getAllowedSetCodes(),
|
||||
FModel.getFormats().getPioneer().getBannedCardNames(),false);
|
||||
}
|
||||
|
||||
if (useName.equalsIgnoreCase(QuestWorld.MODERNWORLDNAME)){
|
||||
useFormat = new GameFormatQuest(QuestWorld.MODERNWORLDNAME,
|
||||
FModel.getFormats().getModern().getAllowedSetCodes(),
|
||||
|
||||
@@ -36,6 +36,9 @@ public class TournamentUtil {
|
||||
case STANDARD_CARDGEN_DECK:
|
||||
deck = DeckgenUtil.buildCardGenDeck(FModel.getFormats().getStandard(),true);
|
||||
break;
|
||||
case PIONEER_CARDGEN_DECK:
|
||||
deck = DeckgenUtil.buildCardGenDeck(FModel.getFormats().getPioneer(),true);
|
||||
break;
|
||||
case MODERN_CARDGEN_DECK:
|
||||
deck = DeckgenUtil.buildCardGenDeck(FModel.getFormats().getModern(),true);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user