mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48:00 +00:00
Moving hard-coded text to res files
This commit is contained in:
@@ -65,7 +65,8 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
|
|||||||
chooser.populate();
|
chooser.populate();
|
||||||
final Dimension parentSize = JOptionPane.getRootFrame().getSize();
|
final Dimension parentSize = JOptionPane.getRootFrame().getSize();
|
||||||
chooser.setMinimumSize(new Dimension((int)(parentSize.getWidth() / 2), (int)parentSize.getHeight() - 200));
|
chooser.setMinimumSize(new Dimension((int)(parentSize.getWidth() / 2), (int)parentSize.getHeight() - 200));
|
||||||
final FOptionPane optionPane = new FOptionPane(null, title, null, chooser, ImmutableList.of("OK", "Cancel"), 0);
|
final Localizer localizer = Localizer.getInstance();
|
||||||
|
final FOptionPane optionPane = new FOptionPane(null, title, null, chooser, ImmutableList.of(localizer.getMessage("lblOk"), localizer.getMessage("lblCancel")), 0);
|
||||||
optionPane.setDefaultFocus(chooser);
|
optionPane.setDefaultFocus(chooser);
|
||||||
chooser.lstDecks.setItemActivateCommand(new UiCommand() {
|
chooser.lstDecks.setItemActivateCommand(new UiCommand() {
|
||||||
@Override
|
@Override
|
||||||
@@ -152,7 +153,7 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
|
|||||||
lstDecks.setPool(ColorDeckGenerator.getColorDecks(lstDecks, formatFilter, isAi));
|
lstDecks.setPool(ColorDeckGenerator.getColorDecks(lstDecks, formatFilter, isAi));
|
||||||
lstDecks.setup(ItemManagerConfig.STRING_ONLY);
|
lstDecks.setup(ItemManagerConfig.STRING_ONLY);
|
||||||
|
|
||||||
btnRandom.setText("Random Colors");
|
btnRandom.setText(localizer.getMessage("lblRandomColors"));
|
||||||
btnRandom.setCommand(new UiCommand() {
|
btnRandom.setCommand(new UiCommand() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import javax.swing.event.ListSelectionListener;
|
|||||||
import forge.deck.Deck;
|
import forge.deck.Deck;
|
||||||
import forge.screens.deckeditor.controllers.CEditorConstructed;
|
import forge.screens.deckeditor.controllers.CEditorConstructed;
|
||||||
import forge.screens.home.quest.DialogChooseFormats;
|
import forge.screens.home.quest.DialogChooseFormats;
|
||||||
|
import forge.util.Localizer;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import forge.Singletons;
|
import forge.Singletons;
|
||||||
@@ -200,6 +201,7 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
||||||
protected void buildAddFilterMenu(final JMenu menu) {
|
protected void buildAddFilterMenu(final JMenu menu) {
|
||||||
GuiUtils.addSeparator(menu); //separate from current search item
|
GuiUtils.addSeparator(menu); //separate from current search item
|
||||||
|
|
||||||
@@ -210,7 +212,9 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
|
|||||||
merge(hierarchy, buildHierarchy(path));
|
merge(hierarchy, buildHierarchy(path));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
final JMenu folder = GuiUtils.createMenu("Folder");
|
|
||||||
|
final Localizer localizer = Localizer.getInstance();
|
||||||
|
final JMenu folder = GuiUtils.createMenu(localizer.getMessage("lblFolder"));
|
||||||
if (hierarchy.size() > 0) {
|
if (hierarchy.size() > 0) {
|
||||||
buildNestedMenu(hierarchy, folder, null);
|
buildNestedMenu(hierarchy, folder, null);
|
||||||
}
|
}
|
||||||
@@ -219,7 +223,8 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
|
|||||||
}
|
}
|
||||||
menu.add(folder);
|
menu.add(folder);
|
||||||
|
|
||||||
final JMenu fmt = GuiUtils.createMenu("Format");
|
final JMenu fmt = GuiUtils.createMenu(localizer.getMessage("lblFormat"));
|
||||||
|
|
||||||
for (final GameFormat f : FModel.getFormats().getFilterList()) {
|
for (final GameFormat f : FModel.getFormats().getFilterList()) {
|
||||||
GuiUtils.addMenuItem(fmt, f.getName(), null, new Runnable() {
|
GuiUtils.addMenuItem(fmt, f.getName(), null, new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
@@ -231,7 +236,7 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
|
|||||||
menu.add(fmt);
|
menu.add(fmt);
|
||||||
|
|
||||||
|
|
||||||
GuiUtils.addMenuItem(menu, "Formats...", null, new Runnable() {
|
GuiUtils.addMenuItem(menu, localizer.getMessage("lblFormats") + "...", null, new Runnable() {
|
||||||
@Override public void run() {
|
@Override public void run() {
|
||||||
final DeckFormatFilter existingFilter = getFilter(DeckFormatFilter.class);
|
final DeckFormatFilter existingFilter = getFilter(DeckFormatFilter.class);
|
||||||
if (existingFilter != null) {
|
if (existingFilter != null) {
|
||||||
@@ -253,7 +258,7 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
GuiUtils.addMenuItem(menu, "Sets...", null, new Runnable() {
|
GuiUtils.addMenuItem(menu, localizer.getMessage("lblSets") + "...", null, new Runnable() {
|
||||||
@Override public void run() {
|
@Override public void run() {
|
||||||
final DeckSetFilter existingFilter = getFilter(DeckSetFilter.class);
|
final DeckSetFilter existingFilter = getFilter(DeckSetFilter.class);
|
||||||
if (existingFilter != null) {
|
if (existingFilter != null) {
|
||||||
@@ -272,7 +277,7 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
final JMenu world = GuiUtils.createMenu("Quest world");
|
final JMenu world = GuiUtils.createMenu(localizer.getMessage("lblQuestWorld"));
|
||||||
for (final QuestWorld w : FModel.getWorlds()) {
|
for (final QuestWorld w : FModel.getWorlds()) {
|
||||||
GuiUtils.addMenuItem(world, w.getName(), null, new Runnable() {
|
GuiUtils.addMenuItem(world, w.getName(), null, new Runnable() {
|
||||||
@Override public void run() {
|
@Override public void run() {
|
||||||
@@ -284,7 +289,7 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
|
|||||||
|
|
||||||
GuiUtils.addSeparator(menu);
|
GuiUtils.addSeparator(menu);
|
||||||
|
|
||||||
GuiUtils.addMenuItem(menu, "Colors", null, new Runnable() {
|
GuiUtils.addMenuItem(menu, localizer.getMessage("lblColors"), null, new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
addFilter(new DeckColorFilter(DeckManager.this));
|
addFilter(new DeckColorFilter(DeckManager.this));
|
||||||
@@ -293,7 +298,7 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
|
|||||||
|
|
||||||
GuiUtils.addSeparator(menu);
|
GuiUtils.addSeparator(menu);
|
||||||
|
|
||||||
GuiUtils.addMenuItem(menu, "Advanced...", null, new Runnable() {
|
GuiUtils.addMenuItem(menu, localizer.getMessage("lblAdvanced") + "...", null, new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public void run() {
|
public void run() {
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ import javax.swing.table.TableCellRenderer;
|
|||||||
import javax.swing.table.TableColumn;
|
import javax.swing.table.TableColumn;
|
||||||
import javax.swing.table.TableColumnModel;
|
import javax.swing.table.TableColumnModel;
|
||||||
|
|
||||||
|
import forge.util.Localizer;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import forge.assets.FSkinProp;
|
import forge.assets.FSkinProp;
|
||||||
@@ -108,7 +109,7 @@ public final class ItemListView<T extends InventoryItem> extends ItemView<T> {
|
|||||||
|
|
||||||
private final ItemTable table = new ItemTable();
|
private final ItemTable table = new ItemTable();
|
||||||
private final ItemTableModel tableModel;
|
private final ItemTableModel tableModel;
|
||||||
|
final Localizer localizer = Localizer.getInstance();
|
||||||
public ItemTableModel getTableModel() {
|
public ItemTableModel getTableModel() {
|
||||||
return this.tableModel;
|
return this.tableModel;
|
||||||
}
|
}
|
||||||
@@ -176,7 +177,7 @@ public final class ItemListView<T extends InventoryItem> extends ItemView<T> {
|
|||||||
getPnlOptions().removeAll();
|
getPnlOptions().removeAll();
|
||||||
|
|
||||||
if (config.getShowUniqueCardsOption()) {
|
if (config.getShowUniqueCardsOption()) {
|
||||||
final FCheckBox chkBox = new FCheckBox("Unique Cards Only", this.itemManager.getWantUnique());
|
final FCheckBox chkBox = new FCheckBox(localizer.getMessage("lblUniqueCardsOnly"), this.itemManager.getWantUnique());
|
||||||
chkBox.setFont(ROW_FONT);
|
chkBox.setFont(ROW_FONT);
|
||||||
chkBox.setToolTipText("Toggle whether to show unique cards only");
|
chkBox.setToolTipText("Toggle whether to show unique cards only");
|
||||||
chkBox.addChangeListener(new ChangeListener() {
|
chkBox.addChangeListener(new ChangeListener() {
|
||||||
|
|||||||
@@ -268,22 +268,22 @@ public final class CEditorConstructed extends CDeckEditor<Deck> {
|
|||||||
cmb.addMoveAlternateItems(localizer.getMessage("lblAdd"), localizer.getMessage("lbltosideboard"));
|
cmb.addMoveAlternateItems(localizer.getMessage("lblAdd"), localizer.getMessage("lbltosideboard"));
|
||||||
break;
|
break;
|
||||||
case Sideboard:
|
case Sideboard:
|
||||||
cmb.addMoveItems(localizer.getMessage("lblAdd"), "to sideboard");
|
cmb.addMoveItems(localizer.getMessage("lblAdd"), localizer.getMessage("lbltosideboard"));
|
||||||
break;
|
break;
|
||||||
case Commander:
|
case Commander:
|
||||||
cmb.addMoveItems("Set", "as commander");
|
cmb.addMoveItems(localizer.getMessage("lblSet2"), localizer.getMessage("lblascommander"));
|
||||||
break;
|
break;
|
||||||
case Avatar:
|
case Avatar:
|
||||||
cmb.addMoveItems("Set", "as avatar");
|
cmb.addMoveItems(localizer.getMessage("lblSet2"), localizer.getMessage("lblasavatar"));
|
||||||
break;
|
break;
|
||||||
case Schemes:
|
case Schemes:
|
||||||
cmb.addMoveItems(localizer.getMessage("lblAdd"), "to scheme deck");
|
cmb.addMoveItems(localizer.getMessage("lblAdd"), localizer.getMessage("lbltoschemedeck"));
|
||||||
break;
|
break;
|
||||||
case Planes:
|
case Planes:
|
||||||
cmb.addMoveItems(localizer.getMessage("lblAdd"), "to planar deck");
|
cmb.addMoveItems(localizer.getMessage("lblAdd"), localizer.getMessage("lbltoplanardeck"));
|
||||||
break;
|
break;
|
||||||
case Conspiracy:
|
case Conspiracy:
|
||||||
cmb.addMoveItems(localizer.getMessage("lblAdd"), "to conspiracy deck");
|
cmb.addMoveItems(localizer.getMessage("lblAdd"), localizer.getMessage("lbltoconspiracydeck"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -293,7 +293,7 @@ public final class CEditorConstructed extends CDeckEditor<Deck> {
|
|||||||
switch (sectionMode) {
|
switch (sectionMode) {
|
||||||
case Main:
|
case Main:
|
||||||
cmb.addMoveItems(localizer.getMessage("lblRemove"), localizer.getMessage("lblfromdeck"));
|
cmb.addMoveItems(localizer.getMessage("lblRemove"), localizer.getMessage("lblfromdeck"));
|
||||||
cmb.addMoveAlternateItems("Move", "to sideboard");
|
cmb.addMoveAlternateItems(localizer.getMessage("lblMove"), localizer.getMessage("lbltosideboard"));
|
||||||
break;
|
break;
|
||||||
case Sideboard:
|
case Sideboard:
|
||||||
cmb.addMoveItems(localizer.getMessage("lblRemove"), localizer.getMessage("lblfromsideboard"));
|
cmb.addMoveItems(localizer.getMessage("lblRemove"), localizer.getMessage("lblfromsideboard"));
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ public enum VCurrentDeck implements IVDoc<CCurrentDeck> {
|
|||||||
.tooltip(localizer.getMessage("ttImportDeck"))
|
.tooltip(localizer.getMessage("ttImportDeck"))
|
||||||
.opaque(true).hoverable(true).build();
|
.opaque(true).hoverable(true).build();
|
||||||
|
|
||||||
private final FTextField txfTitle = new FTextField.Builder().ghostText("[New Deck]").build();
|
private final FTextField txfTitle = new FTextField.Builder().ghostText("[" + localizer.getMessage("lblNewDeck") +"]").build();
|
||||||
|
|
||||||
private final JPanel pnlHeader = new JPanel();
|
private final JPanel pnlHeader = new JPanel();
|
||||||
|
|
||||||
|
|||||||
@@ -720,7 +720,7 @@ public class VLobby implements ILobbyView {
|
|||||||
switch (forGameType) {
|
switch (forGameType) {
|
||||||
case Constructed:
|
case Constructed:
|
||||||
decksFrame.add(deckChoosers.get(playerWithFocus), "grow, push");
|
decksFrame.add(deckChoosers.get(playerWithFocus), "grow, push");
|
||||||
if (deckChoosers.get(playerWithFocus).getSelectedDeckType().toString().contains("Random")) {
|
if (deckChoosers.get(playerWithFocus).getSelectedDeckType().toString().contains(localizer.getMessage("lblRandom"))) {
|
||||||
final String strCheckboxConstraints = "h 30px!, gap 0 20px 0 0";
|
final String strCheckboxConstraints = "h 30px!, gap 0 20px 0 0";
|
||||||
decksFrame.add(cbSingletons, strCheckboxConstraints);
|
decksFrame.add(cbSingletons, strCheckboxConstraints);
|
||||||
decksFrame.add(cbArtifacts, strCheckboxConstraints);
|
decksFrame.add(cbArtifacts, strCheckboxConstraints);
|
||||||
@@ -894,7 +894,7 @@ public class VLobby implements ILobbyView {
|
|||||||
final List<String> usedNames = getPlayerNames();
|
final List<String> usedNames = getPlayerNames();
|
||||||
do {
|
do {
|
||||||
newName = NameGenerator.getRandomName(gender, type, usedNames);
|
newName = NameGenerator.getRandomName(gender, type, usedNames);
|
||||||
confirmMsg = localizer.getMessage("lblconfirmName").replace("%s","\"" +newName + "\"");
|
confirmMsg = localizer.getMessage("lblconfirmName").replace("%n","\"" +newName + "\"");
|
||||||
} while (!FOptionPane.showConfirmDialog(confirmMsg, title, localizer.getMessage("lblUseThisName"), localizer.getMessage("lblTryAgain"), true));
|
} while (!FOptionPane.showConfirmDialog(confirmMsg, title, localizer.getMessage("lblUseThisName"), localizer.getMessage("lblTryAgain"), true));
|
||||||
|
|
||||||
return newName;
|
return newName;
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import forge.toolbox.FSkin;
|
|||||||
import forge.toolbox.FSkin.SkinColor;
|
import forge.toolbox.FSkin.SkinColor;
|
||||||
import forge.toolbox.FSkin.SkinImage;
|
import forge.toolbox.FSkin.SkinImage;
|
||||||
import forge.toolbox.FSkin.SkinnedLabel;
|
import forge.toolbox.FSkin.SkinnedLabel;
|
||||||
|
import forge.util.Localizer;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
|
|
||||||
@@ -39,20 +40,19 @@ import java.awt.event.MouseEvent;
|
|||||||
* <br><br><i>(V at beginning of class name denotes a view class.)</i>
|
* <br><br><i>(V at beginning of class name denotes a view class.)</i>
|
||||||
*/
|
*/
|
||||||
public class VDock implements IVDoc<CDock> {
|
public class VDock implements IVDoc<CDock> {
|
||||||
|
final Localizer localizer = Localizer.getInstance();
|
||||||
// Fields used with interface IVDoc
|
// Fields used with interface IVDoc
|
||||||
private DragCell parentCell;
|
private DragCell parentCell;
|
||||||
private final DragTab tab = new DragTab("Dock");
|
private final DragTab tab = new DragTab(localizer.getMessage("lblDock"));
|
||||||
|
|
||||||
// Dock button instances
|
// Dock button instances
|
||||||
private final DockButton btnConcede = new DockButton(FSkin.getIcon(FSkinProp.ICO_CONCEDE), "Concede Game");
|
private final DockButton btnConcede = new DockButton(FSkin.getIcon(FSkinProp.ICO_CONCEDE), localizer.getMessage("lblConcedeGame"));
|
||||||
private final DockButton btnSettings = new DockButton(FSkin.getIcon(FSkinProp.ICO_SETTINGS), "Game Settings");
|
private final DockButton btnSettings = new DockButton(FSkin.getIcon(FSkinProp.ICO_SETTINGS), localizer.getMessage("lblGameSettings"));
|
||||||
private final DockButton btnEndTurn = new DockButton(FSkin.getIcon(FSkinProp.ICO_ENDTURN), "End Turn");
|
private final DockButton btnEndTurn = new DockButton(FSkin.getIcon(FSkinProp.ICO_ENDTURN), localizer.getMessage("lblEndTurn"));
|
||||||
private final DockButton btnViewDeckList = new DockButton(FSkin.getIcon(FSkinProp.ICO_DECKLIST), "View Deck List");
|
private final DockButton btnViewDeckList = new DockButton(FSkin.getIcon(FSkinProp.ICO_DECKLIST), localizer.getMessage("lblViewDeckList"));
|
||||||
private final DockButton btnRevertLayout = new DockButton(FSkin.getIcon(FSkinProp.ICO_REVERTLAYOUT), "Revert Layout");
|
private final DockButton btnRevertLayout = new DockButton(FSkin.getIcon(FSkinProp.ICO_REVERTLAYOUT), localizer.getMessage("lblRevertLayout"));
|
||||||
private final DockButton btnOpenLayout = new DockButton(FSkin.getIcon(FSkinProp.ICO_OPENLAYOUT), "Open Layout");
|
private final DockButton btnOpenLayout = new DockButton(FSkin.getIcon(FSkinProp.ICO_OPENLAYOUT), localizer.getMessage("lblOpenLayout"));
|
||||||
private final DockButton btnSaveLayout = new DockButton(FSkin.getIcon(FSkinProp.ICO_SAVELAYOUT), "Save Layout");
|
private final DockButton btnSaveLayout = new DockButton(FSkin.getIcon(FSkinProp.ICO_SAVELAYOUT), localizer.getMessage("lblSaveLayout"));
|
||||||
private final DockButton btnAlphaStrike = new DockButton(FSkin.getIcon(FSkinProp.ICO_ALPHASTRIKE), "Alpha Strike");
|
private final DockButton btnAlphaStrike = new DockButton(FSkin.getIcon(FSkinProp.ICO_ALPHASTRIKE), localizer.getMessage("lblAlphaStrike"));
|
||||||
private final FLabel btnTargeting = new FLabel.Builder().icon(FSkin.getIcon(FSkinProp.ICO_ARCSOFF))
|
private final FLabel btnTargeting = new FLabel.Builder().icon(FSkin.getIcon(FSkinProp.ICO_ARCSOFF))
|
||||||
.hoverable(true).iconInBackground(true).iconScaleFactor(1.0).build();
|
.hoverable(true).iconInBackground(true).iconScaleFactor(1.0).build();
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import forge.properties.ForgePreferences;
|
|||||||
import forge.properties.ForgePreferences.FPref;
|
import forge.properties.ForgePreferences.FPref;
|
||||||
import forge.screens.match.controllers.CPrompt;
|
import forge.screens.match.controllers.CPrompt;
|
||||||
import forge.toolbox.*;
|
import forge.toolbox.*;
|
||||||
|
import forge.util.Localizer;
|
||||||
import net.miginfocom.swing.MigLayout;
|
import net.miginfocom.swing.MigLayout;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
@@ -46,11 +47,12 @@ public class VPrompt implements IVDoc<CPrompt> {
|
|||||||
|
|
||||||
// Fields used with interface IVDoc
|
// Fields used with interface IVDoc
|
||||||
private DragCell parentCell;
|
private DragCell parentCell;
|
||||||
private final DragTab tab = new DragTab("Prompt");
|
final Localizer localizer = Localizer.getInstance();
|
||||||
|
private final DragTab tab = new DragTab(localizer.getMessage("lblPrompt"));
|
||||||
|
|
||||||
// Various components
|
// Various components
|
||||||
private final FButton btnOK = new FButton("OK");
|
private final FButton btnOK = new FButton(localizer.getMessage("lblOk"));
|
||||||
private final FButton btnCancel = new FButton("Cancel");
|
private final FButton btnCancel = new FButton(localizer.getMessage("lblCancel"));
|
||||||
private final FHtmlViewer tarMessage = new FHtmlViewer();
|
private final FHtmlViewer tarMessage = new FHtmlViewer();
|
||||||
private final FScrollPane messageScroller = new FScrollPane(tarMessage, false,
|
private final FScrollPane messageScroller = new FScrollPane(tarMessage, false,
|
||||||
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
|
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
|
||||||
@@ -122,7 +124,7 @@ public class VPrompt implements IVDoc<CPrompt> {
|
|||||||
container.add(lblGames, "span 2, w 10:100%, h 22px!");
|
container.add(lblGames, "span 2, w 10:100%, h 22px!");
|
||||||
tarMessage.setFont(FSkin.getRelativeFont(14));
|
tarMessage.setFont(FSkin.getRelativeFont(14));
|
||||||
}
|
}
|
||||||
lblGames.setText("Game Setup");
|
lblGames.setText(localizer.getMessage("lblGameSetup"));
|
||||||
|
|
||||||
container.add(messageScroller, "span 2, w 10:100%, h 0:100%");
|
container.add(messageScroller, "span 2, w 10:100%, h 0:100%");
|
||||||
|
|
||||||
|
|||||||
@@ -233,6 +233,7 @@ lblUseThisName=Nutzen
|
|||||||
lblTryAgain=Neu
|
lblTryAgain=Neu
|
||||||
lblAddAPlayer=Spieler hinzufügen
|
lblAddAPlayer=Spieler hinzufügen
|
||||||
lblVariants=Varianten
|
lblVariants=Varianten
|
||||||
|
lblRandom=Random
|
||||||
#VSubmenuConstructed.java
|
#VSubmenuConstructed.java
|
||||||
lblConstructedMode=Constructed-Modus
|
lblConstructedMode=Constructed-Modus
|
||||||
lblConstructed=Constructed
|
lblConstructed=Constructed
|
||||||
@@ -368,6 +369,7 @@ btnBuildNewSealedDeck=Erstelle neues Sealed Deck
|
|||||||
#FDeckChooser.java
|
#FDeckChooser.java
|
||||||
lblViewDeck=Zeige Deck
|
lblViewDeck=Zeige Deck
|
||||||
lblRandomDeck=Zufälliges Deck
|
lblRandomDeck=Zufälliges Deck
|
||||||
|
lblRandomColors=Random Colors
|
||||||
#GameType.java
|
#GameType.java
|
||||||
lblSealed=Sealed
|
lblSealed=Sealed
|
||||||
lblDraft=Draft
|
lblDraft=Draft
|
||||||
@@ -734,6 +736,9 @@ lbl4starcards=4 star cards
|
|||||||
lbl5starcards=5 star cards
|
lbl5starcards=5 star cards
|
||||||
lblXcopiesof=X copies of
|
lblXcopiesof=X copies of
|
||||||
lblcopiesof=copies of
|
lblcopiesof=copies of
|
||||||
|
#ItemListView.java
|
||||||
|
lblUniqueCardsOnly=Unique Cards Only
|
||||||
|
ttUniqueCardsOnly=Toggle whether to show unique cards only
|
||||||
#ACEditorBase.java
|
#ACEditorBase.java
|
||||||
lblAddcard=Add card
|
lblAddcard=Add card
|
||||||
ttAddcard=Add selected card to current deck (or double click the row or hit the spacebar)
|
ttAddcard=Add selected card to current deck (or double click the row or hit the spacebar)
|
||||||
@@ -766,7 +771,7 @@ lblCollapseallgroups=Collapse all groups
|
|||||||
lblGroupby=group by
|
lblGroupby=group by
|
||||||
lblPileby=pile by
|
lblPileby=pile by
|
||||||
lblColumns=Columns
|
lblColumns=Columns
|
||||||
#CEditorVariant.java
|
#CEditorVariant.java, CEditorConstructed.java
|
||||||
lblCatalog=Catalog
|
lblCatalog=Catalog
|
||||||
lblAdd=Add
|
lblAdd=Add
|
||||||
lbltodeck=to deck
|
lbltodeck=to deck
|
||||||
@@ -778,10 +783,22 @@ lblasavatar=as avatar
|
|||||||
lblfromschemedeck=from scheme deck
|
lblfromschemedeck=from scheme deck
|
||||||
lblfromplanardeck=from planar deck
|
lblfromplanardeck=from planar deck
|
||||||
lblfromconspiracydeck=from conspiracy deck
|
lblfromconspiracydeck=from conspiracy deck
|
||||||
|
lbltoschemedeck=to scheme deck
|
||||||
|
lbltoplanardeck=to planar deck
|
||||||
|
lbltoconspiracydeck=to conspiracy deck
|
||||||
|
lblMove=Move
|
||||||
|
#VDock.java
|
||||||
|
lblDock=Dock
|
||||||
|
lblViewDeckList=View DeckList
|
||||||
|
lblRevertLayout=Revert Layout
|
||||||
|
lblOpenLayout=OpenLayout
|
||||||
|
lblSaveLayout=Save Layout
|
||||||
#GroupDef.java
|
#GroupDef.java
|
||||||
lblColor=Color
|
lblColor=Color
|
||||||
lblColorIdentity=Color Identity
|
lblColorIdentity=Color Identity
|
||||||
lblSet=Set
|
lblSet=Set
|
||||||
|
lblSet2=Set
|
||||||
|
#Set word has different meanings in other languages
|
||||||
lblDefault=Default
|
lblDefault=Default
|
||||||
lblType=Type
|
lblType=Type
|
||||||
lblPlaneswalkerDeckSort=Planeswalker Deck Sort
|
lblPlaneswalkerDeckSort=Planeswalker Deck Sort
|
||||||
@@ -823,3 +840,38 @@ ttbtnRandDeck5=Generate 5 color constructed deck in current deck area
|
|||||||
#DeckCotroller.java
|
#DeckCotroller.java
|
||||||
lblCurrentDeck2=Current Deck
|
lblCurrentDeck2=Current Deck
|
||||||
lblUntitled=Untitled
|
lblUntitled=Untitled
|
||||||
|
#VPrompt.java
|
||||||
|
lblPrompt=Prompt
|
||||||
|
lblGameSetup=Game Setup
|
||||||
|
#ColumnDef.java
|
||||||
|
lblAIStatus=AI Status
|
||||||
|
lblCMC=CMC
|
||||||
|
ttCMC=CMC
|
||||||
|
lblCN=CN
|
||||||
|
ttCN=Collector Number Order
|
||||||
|
ttColor=Color
|
||||||
|
lblCost=Cost
|
||||||
|
ttCost=Cost
|
||||||
|
lblDecks=Decks
|
||||||
|
lblDeleteEdit=Delete/Edit
|
||||||
|
lblSetEdition=Mystery column. We don't know what it does or if that's what it should do.
|
||||||
|
ttFavorite=Favorite
|
||||||
|
lblFolder=Folder
|
||||||
|
ttFormats=Formats deck is legal in
|
||||||
|
lblMain=Main
|
||||||
|
ttMain=MainDeck
|
||||||
|
lblQty=Qty
|
||||||
|
lblQuantity=Quantity
|
||||||
|
lblSide=Side
|
||||||
|
lblSideboard=Sideboard
|
||||||
|
lblNew=New
|
||||||
|
lblOwned=Owned
|
||||||
|
lblPower=Power
|
||||||
|
ttPower=Power
|
||||||
|
lblPrice=Price
|
||||||
|
ttPrice=Price
|
||||||
|
lblRanking=Ranking
|
||||||
|
lblDraftRanking=Draft Ranking
|
||||||
|
lblToughness=Toughness
|
||||||
|
ttToughness=Toughness
|
||||||
|
ttType=Type
|
||||||
@@ -233,6 +233,7 @@ lblUseThisName=Use this name
|
|||||||
lblTryAgain=Try Again
|
lblTryAgain=Try Again
|
||||||
lblAddAPlayer=Add a Player
|
lblAddAPlayer=Add a Player
|
||||||
lblVariants=Variants
|
lblVariants=Variants
|
||||||
|
lblRandom=Random
|
||||||
#VSubmenuConstructed.java
|
#VSubmenuConstructed.java
|
||||||
lblConstructedMode=Constructed Mode
|
lblConstructedMode=Constructed Mode
|
||||||
lblConstructed=Constructed
|
lblConstructed=Constructed
|
||||||
@@ -368,6 +369,7 @@ btnBuildNewSealedDeck=Build New Sealed Deck
|
|||||||
#FDeckChooser.java
|
#FDeckChooser.java
|
||||||
lblViewDeck=View Deck
|
lblViewDeck=View Deck
|
||||||
lblRandomDeck=Random Deck
|
lblRandomDeck=Random Deck
|
||||||
|
lblRandomColors=Random Colors
|
||||||
#GameType.java
|
#GameType.java
|
||||||
lblSealed=Sealed
|
lblSealed=Sealed
|
||||||
lblDraft=Draft
|
lblDraft=Draft
|
||||||
@@ -734,6 +736,9 @@ lbl4starcards=4 star cards
|
|||||||
lbl5starcards=5 star cards
|
lbl5starcards=5 star cards
|
||||||
lblXcopiesof=X copies of
|
lblXcopiesof=X copies of
|
||||||
lblcopiesof=copies of
|
lblcopiesof=copies of
|
||||||
|
#ItemListView.java
|
||||||
|
lblUniqueCardsOnly=Unique Cards Only
|
||||||
|
ttUniqueCardsOnly=Toggle whether to show unique cards only
|
||||||
#ACEditorBase.java
|
#ACEditorBase.java
|
||||||
lblAddcard=Add card
|
lblAddcard=Add card
|
||||||
ttAddcard=Add selected card to current deck (or double click the row or hit the spacebar)
|
ttAddcard=Add selected card to current deck (or double click the row or hit the spacebar)
|
||||||
@@ -766,7 +771,7 @@ lblCollapseallgroups=Collapse all groups
|
|||||||
lblGroupby=group by
|
lblGroupby=group by
|
||||||
lblPileby=pile by
|
lblPileby=pile by
|
||||||
lblColumns=Columns
|
lblColumns=Columns
|
||||||
#CEditorVariant.java
|
#CEditorVariant.java, CEditorConstructed.java
|
||||||
lblCatalog=Catalog
|
lblCatalog=Catalog
|
||||||
lblAdd=Add
|
lblAdd=Add
|
||||||
lbltodeck=to deck
|
lbltodeck=to deck
|
||||||
@@ -778,10 +783,22 @@ lblasavatar=as avatar
|
|||||||
lblfromschemedeck=from scheme deck
|
lblfromschemedeck=from scheme deck
|
||||||
lblfromplanardeck=from planar deck
|
lblfromplanardeck=from planar deck
|
||||||
lblfromconspiracydeck=from conspiracy deck
|
lblfromconspiracydeck=from conspiracy deck
|
||||||
|
lbltoschemedeck=to scheme deck
|
||||||
|
lbltoplanardeck=to planar deck
|
||||||
|
lbltoconspiracydeck=to conspiracy deck
|
||||||
|
lblMove=Move
|
||||||
|
#VDock.java
|
||||||
|
lblDock=Dock
|
||||||
|
lblViewDeckList=View DeckList
|
||||||
|
lblRevertLayout=Revert Layout
|
||||||
|
lblOpenLayout=Open Layout
|
||||||
|
lblSaveLayout=Save Layout
|
||||||
#GroupDef.java
|
#GroupDef.java
|
||||||
lblColor=Color
|
lblColor=Color
|
||||||
lblColorIdentity=Color Identity
|
lblColorIdentity=Color Identity
|
||||||
lblSet=Set
|
lblSet=Set
|
||||||
|
lblSet2=Set
|
||||||
|
#Set word has different meanings in other languages
|
||||||
lblDefault=Default
|
lblDefault=Default
|
||||||
lblType=Type
|
lblType=Type
|
||||||
lblPlaneswalkerDeckSort=Planeswalker Deck Sort
|
lblPlaneswalkerDeckSort=Planeswalker Deck Sort
|
||||||
@@ -823,3 +840,38 @@ ttbtnRandDeck5=Generate 5 color constructed deck in current deck area
|
|||||||
#DeckCotroller.java
|
#DeckCotroller.java
|
||||||
lblCurrentDeck2=Current Deck
|
lblCurrentDeck2=Current Deck
|
||||||
lblUntitled=Untitled
|
lblUntitled=Untitled
|
||||||
|
#VPrompt.java
|
||||||
|
lblPrompt=Prompt
|
||||||
|
lblGameSetup=Game Setup
|
||||||
|
#ColumnDef.java
|
||||||
|
lblAIStatus=AI Status
|
||||||
|
lblCMC=CMC
|
||||||
|
ttCMC=CMC
|
||||||
|
lblCN=CN
|
||||||
|
ttCN=Collector Number Order
|
||||||
|
ttColor=Color
|
||||||
|
lblCost=Cost
|
||||||
|
ttCost=Cost
|
||||||
|
lblDecks=Decks
|
||||||
|
lblDeleteEdit=Delete/Edit
|
||||||
|
lblSetEdition=Mystery column. We don't know what it does or if that's what it should do.
|
||||||
|
ttFavorite=Favorite
|
||||||
|
lblFolder=Folder
|
||||||
|
ttFormats=Formats deck is legal in
|
||||||
|
lblMain=Main
|
||||||
|
ttMain=Main Deck
|
||||||
|
lblQty=Qty
|
||||||
|
lblQuantity=Quantity
|
||||||
|
lblSide=Side
|
||||||
|
lblSideboard=Sideboard
|
||||||
|
lblNew=New
|
||||||
|
lblOwned=Owned
|
||||||
|
lblPower=Power
|
||||||
|
ttPower=Power
|
||||||
|
lblPrice=Price
|
||||||
|
ttPrice=Price
|
||||||
|
lblRanking=Ranking
|
||||||
|
lblDraftRanking=Draft Ranking
|
||||||
|
lblToughness=Toughness
|
||||||
|
ttToughness=Toughness
|
||||||
|
ttType=Type
|
||||||
@@ -233,6 +233,7 @@ lblUseThisName=Usar este nombre
|
|||||||
lblTryAgain=Probar de nuevo
|
lblTryAgain=Probar de nuevo
|
||||||
lblAddAPlayer=Añadir Jugador
|
lblAddAPlayer=Añadir Jugador
|
||||||
lblVariants=Variantes
|
lblVariants=Variantes
|
||||||
|
lblRandom=Aleatorio
|
||||||
#VSubmenuConstructed.java
|
#VSubmenuConstructed.java
|
||||||
lblConstructedMode=Modo Construido
|
lblConstructedMode=Modo Construido
|
||||||
lblConstructed=Construido
|
lblConstructed=Construido
|
||||||
@@ -368,6 +369,7 @@ btnBuildNewSealedDeck=Nuevo Mazo Sellado
|
|||||||
#FDeckChooser.java
|
#FDeckChooser.java
|
||||||
lblViewDeck=Ver Mazo
|
lblViewDeck=Ver Mazo
|
||||||
lblRandomDeck=Mazo Aleatorio
|
lblRandomDeck=Mazo Aleatorio
|
||||||
|
lblRandomColors=Colores Aleatorios
|
||||||
#GameType.java
|
#GameType.java
|
||||||
lblSealed=Sellado
|
lblSealed=Sellado
|
||||||
lblDraft=Draft
|
lblDraft=Draft
|
||||||
@@ -641,7 +643,7 @@ lblEasy=Fácil
|
|||||||
lblMedium=Medio
|
lblMedium=Medio
|
||||||
lblHard=Difícil
|
lblHard=Difícil
|
||||||
lblExpert=Experto
|
lblExpert=Experto
|
||||||
lblWinsforBooster=Victorias para Booster
|
lblWinsforBooster=Victorias para Sobres
|
||||||
lblWinsforRankIncrease=Victorias por subir de Nivel
|
lblWinsforRankIncrease=Victorias por subir de Nivel
|
||||||
lblWinsforMediumAI=Victoria por IA nivel Medio
|
lblWinsforMediumAI=Victoria por IA nivel Medio
|
||||||
lblWinsforHardAI=Victoria por IA nivel Dificil
|
lblWinsforHardAI=Victoria por IA nivel Dificil
|
||||||
@@ -659,8 +661,8 @@ lblMoreDuelChoices=Más Opciones de Duelo
|
|||||||
lblCommon=Común
|
lblCommon=Común
|
||||||
lblUncommon=Infrecuente
|
lblUncommon=Infrecuente
|
||||||
lblRare=Rara
|
lblRare=Rara
|
||||||
lblSpecialBoosters=Boosters Espciales
|
lblSpecialBoosters=Sobres Especiales
|
||||||
ttSpecialBoosters=Permite que en la tienda aparezcan boosters especiales, específicos para cada color, y como recompensas.
|
ttSpecialBoosters=Permite que en la tienda aparezcan sobres especiales, específicos para cada color y como recompensas.
|
||||||
lblMaximumPacks=Pack máximos
|
lblMaximumPacks=Pack máximos
|
||||||
lblMinimumPacks=Pack mínimos
|
lblMinimumPacks=Pack mínimos
|
||||||
lblStartingPacks=Packs de Inicio
|
lblStartingPacks=Packs de Inicio
|
||||||
@@ -680,7 +682,7 @@ ttPlaysetSize=El número de copias de cartas a conservar antes de vender extras.
|
|||||||
lblPlaysetSizeBasicLand=Playset: Tierras Básicas
|
lblPlaysetSizeBasicLand=Playset: Tierras Básicas
|
||||||
ttPlaysetSizeBasicLand=El número de copias de tierras básicas a conservar antes de vender extras.
|
ttPlaysetSizeBasicLand=El número de copias de tierras básicas a conservar antes de vender extras.
|
||||||
lblPlaysetSizeAnyNumber=Playset: Cartas sin límite
|
lblPlaysetSizeAnyNumber=Playset: Cartas sin límite
|
||||||
ttPlaysetSizeAnyNumber=El número de copias de Ratas Implacables u otras cartassimilares sin límite, antes de vender extras.
|
ttPlaysetSizeAnyNumber=El número de copias de Ratas Implacables u otras cartas similares sin límite, antes de vender extras.
|
||||||
lblItemLevelRestriction=Restricción de nivel del Artículo
|
lblItemLevelRestriction=Restricción de nivel del Artículo
|
||||||
lblFoilfilterAlwaysOn=Filtro Foil Siempre Activado
|
lblFoilfilterAlwaysOn=Filtro Foil Siempre Activado
|
||||||
lblRatingsfilterAlwaysOn=Filtro de Clasificación Siempre Activado
|
lblRatingsfilterAlwaysOn=Filtro de Clasificación Siempre Activado
|
||||||
@@ -734,6 +736,9 @@ lbl4starcards=Cartas 4 estrellas
|
|||||||
lbl5starcards=Cartas 5 estrellas
|
lbl5starcards=Cartas 5 estrellas
|
||||||
lblXcopiesof=X copias de
|
lblXcopiesof=X copias de
|
||||||
lblcopiesof=copias de
|
lblcopiesof=copias de
|
||||||
|
#ItemListView.java
|
||||||
|
lblUniqueCardsOnly=Solo Cartas Únicas
|
||||||
|
ttUniqueCardsOnly=Alternar para mostrar solo cartas únicas
|
||||||
#ACEditorBase.java
|
#ACEditorBase.java
|
||||||
lblAddcard=Añadir carta
|
lblAddcard=Añadir carta
|
||||||
ttAddcard=Añade la carta seleccionada al mazo actual (o haz doble clic en la fila o presiona la barra espaciadora)
|
ttAddcard=Añade la carta seleccionada al mazo actual (o haz doble clic en la fila o presiona la barra espaciadora)
|
||||||
@@ -766,7 +771,7 @@ lblCollapseallgroups=Contraer todos los grupos
|
|||||||
lblGroupby=agrupar por
|
lblGroupby=agrupar por
|
||||||
lblPileby=apilar por
|
lblPileby=apilar por
|
||||||
lblColumns=Columnas
|
lblColumns=Columnas
|
||||||
#CEditorVariant.java
|
#CEditorVariant.java, CEditorConstructed.java
|
||||||
lblCatalog=Catálogo
|
lblCatalog=Catálogo
|
||||||
lblAdd=Añadir
|
lblAdd=Añadir
|
||||||
lbltodeck=al mazo
|
lbltodeck=al mazo
|
||||||
@@ -778,10 +783,22 @@ lblasavatar=como avatar
|
|||||||
lblfromschemedeck=del mazo de escenario
|
lblfromschemedeck=del mazo de escenario
|
||||||
lblfromplanardeck=del mazo planar
|
lblfromplanardeck=del mazo planar
|
||||||
lblfromconspiracydeck=del mazo conspiracy
|
lblfromconspiracydeck=del mazo conspiracy
|
||||||
|
lbltoschemedeck=al mazo de escenario
|
||||||
|
lbltoplanardeck=al mazo planar
|
||||||
|
lbltoconspiracydeck=al mazo conspiracy
|
||||||
|
lblMove=Mover
|
||||||
|
#VDock.java
|
||||||
|
lblDock=Dock
|
||||||
|
lblViewDeckList=Ver Lista del Mazo
|
||||||
|
lblRevertLayout=Revertir Disposición de Elementos
|
||||||
|
lblOpenLayout=Abrir Disposición de Elementos
|
||||||
|
lblSaveLayout=Salvar Disposición de Elementos
|
||||||
#GroupDef.java
|
#GroupDef.java
|
||||||
lblColor=Color
|
lblColor=Color
|
||||||
lblColorIdentity=Identidad de Color
|
lblColorIdentity=Identidad de Color
|
||||||
lblSet=Edición
|
lblSet=Edición
|
||||||
|
lblSet2=Establecer
|
||||||
|
#Set word has different meanings in other languages
|
||||||
lblDefault=por defecto
|
lblDefault=por defecto
|
||||||
lblType=Tipo
|
lblType=Tipo
|
||||||
lblPlaneswalkerDeckSort=por Planewalkers
|
lblPlaneswalkerDeckSort=por Planewalkers
|
||||||
@@ -811,15 +828,50 @@ lblFoil=Foil
|
|||||||
lblPersonalRating=Puntuación Personal
|
lblPersonalRating=Puntuación Personal
|
||||||
lblAdvanced=Avanzado
|
lblAdvanced=Avanzado
|
||||||
#VDeckgen.java
|
#VDeckgen.java
|
||||||
lblDeckGeneration=Deck Generation
|
lblDeckGeneration=Generación de Mazos
|
||||||
btnRandCardpool=Random Cardpool
|
btnRandCardpool=Pool de Cartas Aleatorio
|
||||||
ttbtnRandCardpool=Generate random constructed cardpool in current deck area
|
ttbtnRandCardpool=Genera un grupo de cartas para formato construido de manera aleatoria en el área de Mazo Actual
|
||||||
btnRandDeck2=Constructed (2 color)
|
btnRandDeck2=Construido (2 colores)
|
||||||
ttbtnRandDeck2=Generate 2 color constructed deck in current deck area
|
ttbtnRandDeck2=Genera un Mazo Construido de 2 colores en el área de Mazo Actual
|
||||||
btnRandDeck3=Constructed (3 color)
|
btnRandDeck3=Construido (3 colores)
|
||||||
ttbtnRandDeck3=Generate 3 color constructed deck in current deck area
|
ttbtnRandDeck3=Genera un Mazo Construido de 3 colores en el área de Mazo Actual
|
||||||
btnRandDeck5=Constructed (5 color)
|
btnRandDeck5=Construido (5 colores)
|
||||||
ttbtnRandDeck5=Generate 5 color constructed deck in current deck area
|
ttbtnRandDeck5=Genera un Mazo Construido de 5 colores en el área de Mazo Actual
|
||||||
#DeckCotroller.java
|
#DeckCotroller.java
|
||||||
lblCurrentDeck2=Current Deck
|
lblCurrentDeck2=Mazo Actual
|
||||||
lblUntitled=Untitled
|
lblUntitled=Sin Título
|
||||||
|
#VPrompt.java
|
||||||
|
lblPrompt=Aviso
|
||||||
|
lblGameSetup=Configuración del Juego
|
||||||
|
#ColumnDef.java
|
||||||
|
lblAIStatus=Estado de la IA
|
||||||
|
lblCMC=CMC
|
||||||
|
ttCMC=Coste de Maná Convertido
|
||||||
|
lblCN=CN
|
||||||
|
ttCN=Orden de Número de Coleccionista
|
||||||
|
ttColor=Color
|
||||||
|
lblCost=Coste
|
||||||
|
ttCost=Coste
|
||||||
|
lblDecks=Mazos
|
||||||
|
lblDeleteEdit=Borrar/Editar
|
||||||
|
lblSetEdition=Mystery column. We don't know what it does or if that's what it should do.
|
||||||
|
ttFavorite=Favorite
|
||||||
|
lblFolder=Carpeta
|
||||||
|
ttFormats=Formats deck is legal in
|
||||||
|
lblMain=Principal
|
||||||
|
ttMain=Mazo Principal
|
||||||
|
lblQty=Cantidad
|
||||||
|
lblQuantity=Cantidad
|
||||||
|
lblSide=Banquillo
|
||||||
|
lblSideboard=Banquillo
|
||||||
|
lblNew=Nuevo
|
||||||
|
lblOwned=Adquirida
|
||||||
|
lblPower=Fuerza
|
||||||
|
ttPower=Power
|
||||||
|
lblPrice=Precio
|
||||||
|
ttPrice=Price
|
||||||
|
lblRanking=Ranking
|
||||||
|
lblDraftRanking=Ranking en el Draft
|
||||||
|
lblToughness=Resistencia
|
||||||
|
ttToughness=Toughness
|
||||||
|
ttType=Type
|
||||||
@@ -30,172 +30,14 @@ import forge.item.PaperCard;
|
|||||||
import forge.itemmanager.ItemColumnConfig.SortState;
|
import forge.itemmanager.ItemColumnConfig.SortState;
|
||||||
import forge.limited.DraftRankCache;
|
import forge.limited.DraftRankCache;
|
||||||
import forge.model.FModel;
|
import forge.model.FModel;
|
||||||
|
import forge.util.Localizer;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
public enum ColumnDef {
|
public enum ColumnDef {
|
||||||
/**The column containing the inventory item name.*/
|
AI("lblAI", "lblAIStatus", 30, true, SortState.ASC,
|
||||||
STRING("", "", 0, false, SortState.ASC,
|
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
|
||||||
@Override
|
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
|
||||||
return from.getKey() instanceof Comparable<?> ? (Comparable<?>)from.getKey() : from.getKey().getName();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
|
||||||
@Override
|
|
||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
|
||||||
return from.getKey().toString();
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
/**The name column.*/
|
|
||||||
NAME("Name", "Name", 180, false, SortState.ASC,
|
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
|
||||||
@Override
|
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
|
||||||
return toSortableName(from.getKey().getName());
|
|
||||||
}
|
|
||||||
},
|
|
||||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
|
||||||
@Override
|
|
||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
|
||||||
return from.getKey().getName();
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
|
|
||||||
/**The column for sorting cards in collector order.*/
|
|
||||||
COLLECTOR_ORDER("CN", "Collector Number Order", 20, false, SortState.ASC,
|
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
|
||||||
@Override
|
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
|
||||||
return toCollectorPrefix(from.getKey());
|
|
||||||
}
|
|
||||||
},
|
|
||||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
|
||||||
@Override
|
|
||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
/**The type column.*/
|
|
||||||
TYPE("Type", "Type", 100, false, SortState.ASC,
|
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
|
||||||
@Override
|
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
|
||||||
return toType(from.getKey());
|
|
||||||
}
|
|
||||||
},
|
|
||||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
|
||||||
@Override
|
|
||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
|
||||||
return toType(from.getKey());
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
/**The mana cost column.*/
|
|
||||||
COST("Cost", "Cost", 70, true, SortState.ASC,
|
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
|
||||||
@Override
|
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
|
||||||
return toManaCost(from.getKey());
|
|
||||||
}
|
|
||||||
},
|
|
||||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
|
||||||
@Override
|
|
||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
|
||||||
return toCardRules(from.getKey());
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
/**The color column.*/
|
|
||||||
COLOR("Color", "Color", 46, true, SortState.ASC,
|
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
|
||||||
@Override
|
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
|
||||||
return toColor(from.getKey());
|
|
||||||
}
|
|
||||||
},
|
|
||||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
|
||||||
@Override
|
|
||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
|
||||||
return toColor(from.getKey());
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
/**The power column.*/
|
|
||||||
POWER("Power", "Power", 20, true, SortState.DESC,
|
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
|
||||||
@Override
|
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
|
||||||
return toPower(from.getKey());
|
|
||||||
}
|
|
||||||
},
|
|
||||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
|
||||||
@Override
|
|
||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
|
||||||
return toPower(from.getKey());
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
/**The toughness column.*/
|
|
||||||
TOUGHNESS("Toughness", "Toughness", 20, true, SortState.DESC,
|
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
|
||||||
@Override
|
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
|
||||||
return toToughness(from.getKey());
|
|
||||||
}
|
|
||||||
},
|
|
||||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
|
||||||
@Override
|
|
||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
|
||||||
return toToughness(from.getKey());
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
/**The converted mana cost column.*/
|
|
||||||
CMC("CMC", "CMC", 20, true, SortState.ASC,
|
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
|
||||||
@Override
|
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
|
||||||
return toCMC(from.getKey());
|
|
||||||
}
|
|
||||||
},
|
|
||||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
|
||||||
@Override
|
|
||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
|
||||||
return toCMC(from.getKey());
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
/**The rarity column.*/
|
|
||||||
RARITY("Rarity", "Rarity", 20, true, SortState.DESC,
|
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
|
||||||
@Override
|
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
|
||||||
return toRarity(from.getKey());
|
|
||||||
}
|
|
||||||
},
|
|
||||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
|
||||||
@Override
|
|
||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
|
||||||
return toRarity(from.getKey());
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
/**The set code column.*/
|
|
||||||
SET("Set", "Set", 38, true, SortState.DESC,
|
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
|
||||||
@Override
|
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
|
||||||
InventoryItem i = from.getKey();
|
|
||||||
return i instanceof InventoryItemFromSet ? FModel.getMagicDb().getEditions()
|
|
||||||
.get(((InventoryItemFromSet) i).getEdition()) : CardEdition.UNKNOWN;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
|
||||||
@Override
|
|
||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
|
||||||
InventoryItem i = from.getKey();
|
|
||||||
return i instanceof InventoryItemFromSet ? ((InventoryItemFromSet) i).getEdition() : "n/a";
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
/**The AI compatibility flag column*/
|
|
||||||
AI("AI", "AI Status", 30, true, SortState.ASC,
|
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
@Override
|
@Override
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
@@ -216,81 +58,111 @@ public enum ColumnDef {
|
|||||||
return ai.getRemAIDecks() ? (ai.getRemRandomDecks() ? "AI ?" : "AI")
|
return ai.getRemAIDecks() ? (ai.getRemRandomDecks() ? "AI ?" : "AI")
|
||||||
: (ai.getRemRandomDecks() ? "?" : "");
|
: (ai.getRemRandomDecks() ? "?" : "");
|
||||||
}
|
}
|
||||||
}),
|
})/**The AI compatibility flag column*/
|
||||||
/**The Draft ranking column.*/
|
,
|
||||||
RANKING("Ranking", "Draft Ranking", 50, true, SortState.ASC,
|
CMC("lblCMC", "ttCMC", 20, true, SortState.ASC,
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
@Override
|
@Override
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
return toRanking(from.getKey(), false);
|
return toCMC(from.getKey());
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||||
@Override
|
@Override
|
||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
return toRanking(from.getKey(), true);
|
return toCMC(from.getKey());
|
||||||
}
|
}
|
||||||
}),
|
})/**The converted mana cost column.*/
|
||||||
/**The quantity column.*/
|
,
|
||||||
QUANTITY("Qty", "Quantity", 25, true, SortState.ASC,
|
|
||||||
|
COLLECTOR_ORDER("lblCN", "ttCN", 20, false, SortState.ASC,
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
@Override
|
@Override
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
return from.getValue();
|
return toCollectorPrefix(from.getKey());
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||||
@Override
|
@Override
|
||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
return from.getValue();
|
return "";
|
||||||
}
|
}
|
||||||
}),
|
})/**The column for sorting cards in collector order.*/
|
||||||
/**The quantity in deck column.*/
|
,
|
||||||
DECK_QUANTITY("Quantity", "Quantity", 50, true, SortState.ASC,
|
COLOR("lblColor", "ttColor", 46, true, SortState.ASC,
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
@Override
|
@Override
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
return from.getValue();
|
return toColor(from.getKey());
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||||
@Override
|
@Override
|
||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
return from.getValue();
|
return toColor(from.getKey());
|
||||||
}
|
}
|
||||||
}),
|
})/**The color column.*/
|
||||||
/**The new inventory flag column.*/
|
,
|
||||||
NEW("New", "New", 30, true, SortState.DESC,
|
COST("lblCost", "ttCost", 70, true, SortState.ASC,
|
||||||
null, null), //functions will be set later
|
|
||||||
/**The price column.*/
|
|
||||||
PRICE("Price", "Price", 35, true, SortState.DESC,
|
|
||||||
null, null),
|
|
||||||
/**The quantity owned column.*/
|
|
||||||
OWNED("Owned", "Owned", 20, true, SortState.ASC,
|
|
||||||
null, null),
|
|
||||||
/**The deck name column.*/
|
|
||||||
DECKS("Decks", "Decks", 20, true, SortState.ASC,
|
|
||||||
null, null),
|
|
||||||
/**The favorite flag column.*/
|
|
||||||
FAVORITE("", "Favorite", 18, true, SortState.DESC,
|
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
@Override
|
@Override
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
IPaperCard card = toCard(from.getKey());
|
return toManaCost(from.getKey());
|
||||||
if (card == null) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
return CardPreferences.getPrefs(card).getStarCount();
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||||
@Override
|
@Override
|
||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
return toCard(from.getKey());
|
return toCardRules(from.getKey());
|
||||||
}
|
}
|
||||||
}),
|
})/**The mana cost column.*/
|
||||||
/**The favorite deck flag column.*/
|
,
|
||||||
DECK_FAVORITE("", "Favorite", 18, true, SortState.DESC,
|
DECKS("lblDecks", "lblDecks", 20, true, SortState.ASC,
|
||||||
|
null, null)/**The deck name column.*/
|
||||||
|
,
|
||||||
|
DECK_ACTIONS("", "lblDeleteEdit", 40, true, SortState.DESC,
|
||||||
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
|
@Override
|
||||||
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||||
|
@Override
|
||||||
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
|
return toDeck(from.getKey());
|
||||||
|
}
|
||||||
|
})/**The edit/delete deck column.*/
|
||||||
|
,
|
||||||
|
DECK_COLOR("lblColor", "lblColor", 70, true, SortState.ASC,
|
||||||
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
|
@Override
|
||||||
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
|
return toDeckColor(from.getKey());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||||
|
@Override
|
||||||
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
|
return toDeckColor(from.getKey());
|
||||||
|
}
|
||||||
|
})/**The deck color column.*/
|
||||||
|
,
|
||||||
|
DECK_EDITION("lblSet", "lblSetEdition", 38, true, SortState.DESC,
|
||||||
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
|
@Override
|
||||||
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
|
return toDeck(from.getKey()).getEdition();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||||
|
@Override
|
||||||
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
|
return toDeck(from.getKey()).getEdition().getCode();
|
||||||
|
}
|
||||||
|
})/**The deck edition column, a mystery to us all.*/
|
||||||
|
,
|
||||||
|
DECK_FAVORITE("", "ttFavorite", 18, true, SortState.DESC,
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
@Override
|
@Override
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
@@ -306,23 +178,9 @@ public enum ColumnDef {
|
|||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
return toDeck(from.getKey());
|
return toDeck(from.getKey());
|
||||||
}
|
}
|
||||||
}),
|
})/**The favorite deck flag column.*/
|
||||||
/**The edit/delete deck column.*/
|
,
|
||||||
DECK_ACTIONS("", "Delete/Edit", 40, true, SortState.DESC,
|
DECK_FOLDER("lblFolder", "lblFolder", 80, false, SortState.ASC,
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
|
||||||
@Override
|
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
|
||||||
@Override
|
|
||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
|
||||||
return toDeck(from.getKey());
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
/**The deck folder column.*/
|
|
||||||
DECK_FOLDER("Folder", "Folder", 80, false, SortState.ASC,
|
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
@Override
|
@Override
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
@@ -334,23 +192,9 @@ public enum ColumnDef {
|
|||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
return toDeckFolder(from.getKey());
|
return toDeckFolder(from.getKey());
|
||||||
}
|
}
|
||||||
}),
|
})/**The deck folder column.*/
|
||||||
/**The deck color column.*/
|
,
|
||||||
DECK_COLOR("Color", "Color", 70, true, SortState.ASC,
|
DECK_FORMAT("lblFormat", "ttFormats", 60, false, SortState.DESC,
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
|
||||||
@Override
|
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
|
||||||
return toDeckColor(from.getKey());
|
|
||||||
}
|
|
||||||
},
|
|
||||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
|
||||||
@Override
|
|
||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
|
||||||
return toDeckColor(from.getKey());
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
/**The deck format column.*/
|
|
||||||
DECK_FORMAT("Format", "Formats deck is legal in", 60, false, SortState.DESC,
|
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
@Override
|
@Override
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
@@ -360,9 +204,9 @@ public enum ColumnDef {
|
|||||||
}
|
}
|
||||||
Iterable<GameFormat> all = deck.getExhaustiveFormats();
|
Iterable<GameFormat> all = deck.getExhaustiveFormats();
|
||||||
int acc = 0;
|
int acc = 0;
|
||||||
for(GameFormat gf : all) {
|
for (GameFormat gf : all) {
|
||||||
int ix = gf.getIndex();
|
int ix = gf.getIndex();
|
||||||
if( ix < 30 && ix > 0)
|
if (ix < 30 && ix > 0)
|
||||||
acc |= 0x40000000 >> (ix - 1);
|
acc |= 0x40000000 >> (ix - 1);
|
||||||
}
|
}
|
||||||
return acc;
|
return acc;
|
||||||
@@ -377,23 +221,9 @@ public enum ColumnDef {
|
|||||||
}
|
}
|
||||||
return deck.getFormatsString();
|
return deck.getFormatsString();
|
||||||
}
|
}
|
||||||
}),
|
})/**The deck format column.*/
|
||||||
/**The deck edition column, a mystery to us all.*/
|
,
|
||||||
DECK_EDITION("Set", "Mystery column. We don't know what it does or if that's what it should do.", 38, true, SortState.DESC,
|
DECK_MAIN("lblMain", "ttMain", 30, true, SortState.ASC,
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
|
||||||
@Override
|
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
|
||||||
return toDeck(from.getKey()).getEdition();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
|
||||||
@Override
|
|
||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
|
||||||
return toDeck(from.getKey()).getEdition().getCode();
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
/**The main library size column.*/
|
|
||||||
DECK_MAIN("Main", "Main Deck", 30, true, SortState.ASC,
|
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
@Override
|
@Override
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
@@ -405,9 +235,23 @@ public enum ColumnDef {
|
|||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
return toDeck(from.getKey()).getMainSize();
|
return toDeck(from.getKey()).getMainSize();
|
||||||
}
|
}
|
||||||
}),
|
})/**The main library size column.*/
|
||||||
/**The sideboard size column.*/
|
,
|
||||||
DECK_SIDE("Side", "Sideboard", 30, true, SortState.ASC,
|
DECK_QUANTITY("lblQty", "lblQuantity", 50, true, SortState.ASC,
|
||||||
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
|
@Override
|
||||||
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
|
return from.getValue();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||||
|
@Override
|
||||||
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
|
return from.getValue();
|
||||||
|
}
|
||||||
|
})/**The quantity in deck column.*/
|
||||||
|
,
|
||||||
|
DECK_SIDE("lblSide", "lblSideboard", 30, true, SortState.ASC,
|
||||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
@Override
|
@Override
|
||||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
@@ -419,13 +263,174 @@ public enum ColumnDef {
|
|||||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
return toDeck(from.getKey()).getSideSize();
|
return toDeck(from.getKey()).getSideSize();
|
||||||
}
|
}
|
||||||
});
|
})/**The sideboard size column.*/
|
||||||
|
,
|
||||||
|
FAVORITE("", "ttFavorite", 18, true, SortState.DESC,
|
||||||
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
|
@Override
|
||||||
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
|
IPaperCard card = toCard(from.getKey());
|
||||||
|
if (card == null) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return CardPreferences.getPrefs(card).getStarCount();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||||
|
@Override
|
||||||
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
|
return toCard(from.getKey());
|
||||||
|
}
|
||||||
|
})/**The favorite flag column.*/
|
||||||
|
,
|
||||||
|
NAME("lblName", "lblName", 180, false, SortState.ASC,
|
||||||
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
|
@Override
|
||||||
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
|
return toSortableName(from.getKey().getName());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||||
|
@Override
|
||||||
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
|
return from.getKey().getName();
|
||||||
|
}
|
||||||
|
})/**The name column.*/
|
||||||
|
,
|
||||||
|
NEW("lblNew", "lblNew", 30, true, SortState.DESC,
|
||||||
|
null, null)/**The new inventory flag column.*/
|
||||||
|
, //functions will be set later
|
||||||
|
OWNED("lblOwned", "lblOwned", 20, true, SortState.ASC,
|
||||||
|
null, null)/**The quantity owned column.*/
|
||||||
|
,
|
||||||
|
POWER("lblPower", "ttPower", 20, true, SortState.DESC,
|
||||||
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
|
@Override
|
||||||
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
|
return toPower(from.getKey());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||||
|
@Override
|
||||||
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
|
return toPower(from.getKey());
|
||||||
|
}
|
||||||
|
})/**The power column.*/
|
||||||
|
,
|
||||||
|
PRICE("lblPrice", "ttPrice", 35, true, SortState.DESC,
|
||||||
|
null, null)/**The price column.*/
|
||||||
|
,
|
||||||
|
QUANTITY("lblQty", "lblQuantity", 25, true, SortState.ASC,
|
||||||
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
|
@Override
|
||||||
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
|
return from.getValue();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||||
|
@Override
|
||||||
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
|
return from.getValue();
|
||||||
|
}
|
||||||
|
})/**The quantity column.*/
|
||||||
|
,
|
||||||
|
RANKING("lblRanking", "lblDraftRanking", 50, true, SortState.ASC,
|
||||||
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
|
@Override
|
||||||
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
|
return toRanking(from.getKey(), false);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||||
|
@Override
|
||||||
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
|
return toRanking(from.getKey(), true);
|
||||||
|
}
|
||||||
|
})/**The Draft ranking column.*/
|
||||||
|
,
|
||||||
|
RARITY("lblRarity", "lblRarity", 20, true, SortState.DESC,
|
||||||
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
|
@Override
|
||||||
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
|
return toRarity(from.getKey());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||||
|
@Override
|
||||||
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
|
return toRarity(from.getKey());
|
||||||
|
}
|
||||||
|
})/**The rarity column.*/
|
||||||
|
,
|
||||||
|
SET("lblSet", "lblSet", 38, true, SortState.DESC,
|
||||||
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
|
@Override
|
||||||
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
|
InventoryItem i = from.getKey();
|
||||||
|
return i instanceof InventoryItemFromSet ? FModel.getMagicDb().getEditions()
|
||||||
|
.get(((InventoryItemFromSet) i).getEdition()) : CardEdition.UNKNOWN;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||||
|
@Override
|
||||||
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
|
InventoryItem i = from.getKey();
|
||||||
|
return i instanceof InventoryItemFromSet ? ((InventoryItemFromSet) i).getEdition() : "n/a";
|
||||||
|
}
|
||||||
|
})/**The set code column.*/
|
||||||
|
,
|
||||||
|
STRING("", "", 0, false, SortState.ASC,
|
||||||
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
|
@Override
|
||||||
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
|
return from.getKey() instanceof Comparable<?> ? (Comparable<?>) from.getKey() : from.getKey().getName();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||||
|
@Override
|
||||||
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
|
return from.getKey().toString();
|
||||||
|
}
|
||||||
|
})/**The column containing the inventory item name.*/
|
||||||
|
,
|
||||||
|
TOUGHNESS("lblToughness", "ttToughness", 20, true, SortState.DESC,
|
||||||
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
|
@Override
|
||||||
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
|
return toToughness(from.getKey());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||||
|
@Override
|
||||||
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
|
return toToughness(from.getKey());
|
||||||
|
}
|
||||||
|
})/**The toughness column.*/
|
||||||
|
,
|
||||||
|
TYPE("lblType", "ttType", 100, false, SortState.ASC,
|
||||||
|
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||||
|
@Override
|
||||||
|
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||||
|
return toType(from.getKey());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||||
|
@Override
|
||||||
|
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||||
|
return toType(from.getKey());
|
||||||
|
}
|
||||||
|
})/**The type column.*/
|
||||||
|
;
|
||||||
|
|
||||||
ColumnDef(String shortName0, String longName0, int preferredWidth0, boolean isWidthFixed0, SortState sortState0,
|
ColumnDef(String shortName0, String longName0, int preferredWidth0, boolean isWidthFixed0, SortState sortState0,
|
||||||
Function<Entry<InventoryItem, Integer>, Comparable<?>> fnSort0,
|
Function<Entry<InventoryItem, Integer>, Comparable<?>> fnSort0,
|
||||||
Function<Entry<? extends InventoryItem, Integer>, Object> fnDisplay0) {
|
Function<Entry<? extends InventoryItem, Integer>, Object> fnDisplay0) {
|
||||||
this.shortName = shortName0;
|
|
||||||
this.longName = longName0;
|
final Localizer localizer = Localizer.getInstance();
|
||||||
|
|
||||||
|
if (shortName0 != null && !shortName0.isEmpty()) { this.shortName = localizer.getMessage(shortName0);} else {this.shortName = shortName0;}
|
||||||
|
if (longName0 != null && !longName0.isEmpty()) { this.longName = localizer.getMessage(longName0);} else {this.longName = longName0;}
|
||||||
|
|
||||||
this.preferredWidth = preferredWidth0;
|
this.preferredWidth = preferredWidth0;
|
||||||
this.isWidthFixed = isWidthFixed0;
|
this.isWidthFixed = isWidthFixed0;
|
||||||
this.sortState = sortState0;
|
this.sortState = sortState0;
|
||||||
@@ -444,7 +449,8 @@ public enum ColumnDef {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return this.longName;
|
return this.longName;
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
|
/**
|
||||||
*Converts a card name to a sortable name.
|
*Converts a card name to a sortable name.
|
||||||
* Trim leading quotes, then move article last, then replace characters.
|
* Trim leading quotes, then move article last, then replace characters.
|
||||||
* Because An-Havva Constable.
|
* Because An-Havva Constable.
|
||||||
@@ -456,7 +462,7 @@ public enum ColumnDef {
|
|||||||
*/
|
*/
|
||||||
private static String toSortableName(String printedName) {
|
private static String toSortableName(String printedName) {
|
||||||
if (printedName.startsWith("\"")) printedName = printedName.substring(1);
|
if (printedName.startsWith("\"")) printedName = printedName.substring(1);
|
||||||
return moveArticleToEnd(printedName).toLowerCase().replaceAll("[^\\s'0-9a-z]","");
|
return moveArticleToEnd(printedName).toLowerCase().replaceAll("[^\\s'0-9a-z]", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -473,12 +479,12 @@ public enum ColumnDef {
|
|||||||
/**Detects whether a string begins with an article word
|
/**Detects whether a string begins with an article word
|
||||||
@param str The name of the card.
|
@param str The name of the card.
|
||||||
@return The sort-friendly name of the card. Example: "The Hive" becomes "Hive The".*/
|
@return The sort-friendly name of the card. Example: "The Hive" becomes "Hive The".*/
|
||||||
private static String moveArticleToEnd(String str){
|
private static String moveArticleToEnd(String str) {
|
||||||
String articleWord;
|
String articleWord;
|
||||||
for (int i = 0; i < ARTICLE_WORDS.length; i++){
|
for (int i = 0; i < ARTICLE_WORDS.length; i++) {
|
||||||
articleWord = ARTICLE_WORDS[i];
|
articleWord = ARTICLE_WORDS[i];
|
||||||
if (str.startsWith(articleWord + " ")){
|
if (str.startsWith(articleWord + " ")) {
|
||||||
str = str.substring(articleWord.length()+1) + " " + articleWord;
|
str = str.substring(articleWord.length() + 1) + " " + articleWord;
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -486,15 +492,17 @@ public enum ColumnDef {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static String toType(final InventoryItem i) {
|
private static String toType(final InventoryItem i) {
|
||||||
return i instanceof IPaperCard ? ((IPaperCard)i).getRules().getType().toString() : i.getItemType();
|
return i instanceof IPaperCard ? ((IPaperCard) i).getRules().getType().toString() : i.getItemType();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static IPaperCard toCard(final InventoryItem i) {
|
private static IPaperCard toCard(final InventoryItem i) {
|
||||||
return i instanceof IPaperCard ? ((IPaperCard) i) : null;
|
return i instanceof IPaperCard ? ((IPaperCard) i) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ManaCost toManaCost(final InventoryItem i) {
|
private static ManaCost toManaCost(final InventoryItem i) {
|
||||||
return i instanceof IPaperCard ? ((IPaperCard) i).getRules().getManaCost() : ManaCost.NO_COST;
|
return i instanceof IPaperCard ? ((IPaperCard) i).getRules().getManaCost() : ManaCost.NO_COST;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static CardRules toCardRules(final InventoryItem i) {
|
private static CardRules toCardRules(final InventoryItem i) {
|
||||||
return i instanceof IPaperCard ? ((IPaperCard) i).getRules() : null;
|
return i instanceof IPaperCard ? ((IPaperCard) i).getRules() : null;
|
||||||
}
|
}
|
||||||
@@ -508,7 +516,7 @@ public enum ColumnDef {
|
|||||||
if (i instanceof PaperCard) {
|
if (i instanceof PaperCard) {
|
||||||
result = ((IPaperCard) i).getRules().getIntPower();
|
result = ((IPaperCard) i).getRules().getIntPower();
|
||||||
if (result == Integer.MAX_VALUE) {
|
if (result == Integer.MAX_VALUE) {
|
||||||
if (((IPaperCard)i).getRules().getType().isPlaneswalker()) {
|
if (((IPaperCard) i).getRules().getType().isPlaneswalker()) {
|
||||||
result = ((IPaperCard) i).getRules().getInitialLoyalty();
|
result = ((IPaperCard) i).getRules().getInitialLoyalty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -529,7 +537,7 @@ public enum ColumnDef {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static Double toRanking(final InventoryItem i, boolean truncate) {
|
private static Double toRanking(final InventoryItem i, boolean truncate) {
|
||||||
if (i instanceof IPaperCard){
|
if (i instanceof IPaperCard) {
|
||||||
IPaperCard cp = (IPaperCard) i;
|
IPaperCard cp = (IPaperCard) i;
|
||||||
Double ranking = DraftRankCache.getRanking(cp.getName(), cp.getEdition());
|
Double ranking = DraftRankCache.getRanking(cp.getName(), cp.getEdition());
|
||||||
if (ranking != null) {
|
if (ranking != null) {
|
||||||
@@ -545,9 +553,11 @@ public enum ColumnDef {
|
|||||||
private static DeckProxy toDeck(final InventoryItem i) {
|
private static DeckProxy toDeck(final InventoryItem i) {
|
||||||
return i instanceof DeckProxy ? ((DeckProxy) i) : null;
|
return i instanceof DeckProxy ? ((DeckProxy) i) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ColorSet toDeckColor(final InventoryItem i) {
|
private static ColorSet toDeckColor(final InventoryItem i) {
|
||||||
return i instanceof DeckProxy ? ((DeckProxy) i).getColor() : null;
|
return i instanceof DeckProxy ? ((DeckProxy) i).getColor() : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String toDeckFolder(final InventoryItem i) {
|
private static String toDeckFolder(final InventoryItem i) {
|
||||||
return i instanceof DeckProxy ? ((DeckProxy) i).getPath() + "/" : null;
|
return i instanceof DeckProxy ? ((DeckProxy) i).getPath() + "/" : null;
|
||||||
}
|
}
|
||||||
@@ -578,7 +588,7 @@ public enum ColumnDef {
|
|||||||
@param i A paper card.
|
@param i A paper card.
|
||||||
@return Part of a sortable numeric string.*/
|
@return Part of a sortable numeric string.*/
|
||||||
private static String toArtifactsWithColorlessCostsLast(final InventoryItem i) {
|
private static String toArtifactsWithColorlessCostsLast(final InventoryItem i) {
|
||||||
forge.card.mana.ManaCost manaCost = ((IPaperCard) i).getRules().getManaCost();
|
ManaCost manaCost = ((IPaperCard) i).getRules().getManaCost();
|
||||||
|
|
||||||
return !(((IPaperCard) i).getRules().getType().isArtifact() && (toColor(i).isColorless() ||
|
return !(((IPaperCard) i).getRules().getType().isArtifact() && (toColor(i).isColorless() ||
|
||||||
//If it isn't colorless, see if it can be paid with only white, only blue, only black.
|
//If it isn't colorless, see if it can be paid with only white, only blue, only black.
|
||||||
@@ -586,7 +596,7 @@ public enum ColumnDef {
|
|||||||
manaCost.canBePaidWithAvaliable(MagicColor.WHITE) &&
|
manaCost.canBePaidWithAvaliable(MagicColor.WHITE) &&
|
||||||
manaCost.canBePaidWithAvaliable(MagicColor.BLUE) &&
|
manaCost.canBePaidWithAvaliable(MagicColor.BLUE) &&
|
||||||
manaCost.canBePaidWithAvaliable(MagicColor.BLACK)))
|
manaCost.canBePaidWithAvaliable(MagicColor.BLACK)))
|
||||||
? "0" + toSplitLast(i): "1";
|
? "0" + toSplitLast(i) : "1";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**Returns 1 for split cards or 0 for other cards; continues sorting.
|
/**Returns 1 for split cards or 0 for other cards; continues sorting.
|
||||||
@@ -619,14 +629,14 @@ public enum ColumnDef {
|
|||||||
@return Part of a sortable numeric string.*/
|
@return Part of a sortable numeric string.*/
|
||||||
private static String toMonocolorFirst(final InventoryItem i) {
|
private static String toMonocolorFirst(final InventoryItem i) {
|
||||||
return toColor(i).isMonoColor() ?
|
return toColor(i).isMonoColor() ?
|
||||||
"0" + toWubrgOrder(i): "1" + toGoldFirst(i);
|
"0" + toWubrgOrder(i) : "1" + toGoldFirst(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**Returns 0 for gold cards and continues sorting, 1 otherwise.
|
/**Returns 0 for gold cards and continues sorting, 1 otherwise.
|
||||||
@param i A paper card.
|
@param i A paper card.
|
||||||
@return Part of a sortable numeric string.*/
|
@return Part of a sortable numeric string.*/
|
||||||
private static String toGoldFirst(final InventoryItem i) {
|
private static String toGoldFirst(final InventoryItem i) {
|
||||||
forge.card.mana.ManaCost manaCost = ((IPaperCard) i).getRules().getManaCost();
|
ManaCost manaCost = ((IPaperCard) i).getRules().getManaCost();
|
||||||
|
|
||||||
return !(manaCost.canBePaidWithAvaliable(MagicColor.WHITE) | manaCost.canBePaidWithAvaliable(MagicColor.BLUE) |
|
return !(manaCost.canBePaidWithAvaliable(MagicColor.WHITE) | manaCost.canBePaidWithAvaliable(MagicColor.BLUE) |
|
||||||
manaCost.canBePaidWithAvaliable(MagicColor.BLACK) | manaCost.canBePaidWithAvaliable(MagicColor.RED) |
|
manaCost.canBePaidWithAvaliable(MagicColor.BLACK) | manaCost.canBePaidWithAvaliable(MagicColor.RED) |
|
||||||
@@ -642,8 +652,8 @@ public enum ColumnDef {
|
|||||||
//This method serves as an entry point only, separating the two card parts for convenience.
|
//This method serves as an entry point only, separating the two card parts for convenience.
|
||||||
private static String toSplitCardSort(final InventoryItem i) {
|
private static String toSplitCardSort(final InventoryItem i) {
|
||||||
CardRules rules = ((IPaperCard) i).getRules();
|
CardRules rules = ((IPaperCard) i).getRules();
|
||||||
forge.card.ICardFace mainPart = rules.getMainPart();
|
ICardFace mainPart = rules.getMainPart();
|
||||||
forge.card.ICardFace otherPart = rules.getOtherPart();
|
ICardFace otherPart = rules.getOtherPart();
|
||||||
return toSplitSort(mainPart, otherPart);
|
return toSplitSort(mainPart, otherPart);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user