mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 18:28: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();
|
||||
final Dimension parentSize = JOptionPane.getRootFrame().getSize();
|
||||
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);
|
||||
chooser.lstDecks.setItemActivateCommand(new UiCommand() {
|
||||
@Override
|
||||
@@ -152,7 +153,7 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
|
||||
lstDecks.setPool(ColorDeckGenerator.getColorDecks(lstDecks, formatFilter, isAi));
|
||||
lstDecks.setup(ItemManagerConfig.STRING_ONLY);
|
||||
|
||||
btnRandom.setText("Random Colors");
|
||||
btnRandom.setText(localizer.getMessage("lblRandomColors"));
|
||||
btnRandom.setCommand(new UiCommand() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
@@ -15,6 +15,7 @@ import javax.swing.event.ListSelectionListener;
|
||||
import forge.deck.Deck;
|
||||
import forge.screens.deckeditor.controllers.CEditorConstructed;
|
||||
import forge.screens.home.quest.DialogChooseFormats;
|
||||
import forge.util.Localizer;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import forge.Singletons;
|
||||
@@ -200,6 +201,7 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
protected void buildAddFilterMenu(final JMenu menu) {
|
||||
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));
|
||||
}
|
||||
}
|
||||
final JMenu folder = GuiUtils.createMenu("Folder");
|
||||
|
||||
final Localizer localizer = Localizer.getInstance();
|
||||
final JMenu folder = GuiUtils.createMenu(localizer.getMessage("lblFolder"));
|
||||
if (hierarchy.size() > 0) {
|
||||
buildNestedMenu(hierarchy, folder, null);
|
||||
}
|
||||
@@ -219,7 +223,8 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
|
||||
}
|
||||
menu.add(folder);
|
||||
|
||||
final JMenu fmt = GuiUtils.createMenu("Format");
|
||||
final JMenu fmt = GuiUtils.createMenu(localizer.getMessage("lblFormat"));
|
||||
|
||||
for (final GameFormat f : FModel.getFormats().getFilterList()) {
|
||||
GuiUtils.addMenuItem(fmt, f.getName(), null, new Runnable() {
|
||||
@Override
|
||||
@@ -231,7 +236,7 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
|
||||
menu.add(fmt);
|
||||
|
||||
|
||||
GuiUtils.addMenuItem(menu, "Formats...", null, new Runnable() {
|
||||
GuiUtils.addMenuItem(menu, localizer.getMessage("lblFormats") + "...", null, new Runnable() {
|
||||
@Override public void run() {
|
||||
final DeckFormatFilter existingFilter = getFilter(DeckFormatFilter.class);
|
||||
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() {
|
||||
final DeckSetFilter existingFilter = getFilter(DeckSetFilter.class);
|
||||
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()) {
|
||||
GuiUtils.addMenuItem(world, w.getName(), null, new Runnable() {
|
||||
@Override public void run() {
|
||||
@@ -284,7 +289,7 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
|
||||
|
||||
GuiUtils.addSeparator(menu);
|
||||
|
||||
GuiUtils.addMenuItem(menu, "Colors", null, new Runnable() {
|
||||
GuiUtils.addMenuItem(menu, localizer.getMessage("lblColors"), null, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
addFilter(new DeckColorFilter(DeckManager.this));
|
||||
@@ -293,7 +298,7 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
|
||||
|
||||
GuiUtils.addSeparator(menu);
|
||||
|
||||
GuiUtils.addMenuItem(menu, "Advanced...", null, new Runnable() {
|
||||
GuiUtils.addMenuItem(menu, localizer.getMessage("lblAdvanced") + "...", null, new Runnable() {
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public void run() {
|
||||
|
||||
@@ -65,6 +65,7 @@ import javax.swing.table.TableCellRenderer;
|
||||
import javax.swing.table.TableColumn;
|
||||
import javax.swing.table.TableColumnModel;
|
||||
|
||||
import forge.util.Localizer;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
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 ItemTableModel tableModel;
|
||||
|
||||
final Localizer localizer = Localizer.getInstance();
|
||||
public ItemTableModel getTableModel() {
|
||||
return this.tableModel;
|
||||
}
|
||||
@@ -176,7 +177,7 @@ public final class ItemListView<T extends InventoryItem> extends ItemView<T> {
|
||||
getPnlOptions().removeAll();
|
||||
|
||||
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.setToolTipText("Toggle whether to show unique cards only");
|
||||
chkBox.addChangeListener(new ChangeListener() {
|
||||
|
||||
@@ -268,22 +268,22 @@ public final class CEditorConstructed extends CDeckEditor<Deck> {
|
||||
cmb.addMoveAlternateItems(localizer.getMessage("lblAdd"), localizer.getMessage("lbltosideboard"));
|
||||
break;
|
||||
case Sideboard:
|
||||
cmb.addMoveItems(localizer.getMessage("lblAdd"), "to sideboard");
|
||||
cmb.addMoveItems(localizer.getMessage("lblAdd"), localizer.getMessage("lbltosideboard"));
|
||||
break;
|
||||
case Commander:
|
||||
cmb.addMoveItems("Set", "as commander");
|
||||
cmb.addMoveItems(localizer.getMessage("lblSet2"), localizer.getMessage("lblascommander"));
|
||||
break;
|
||||
case Avatar:
|
||||
cmb.addMoveItems("Set", "as avatar");
|
||||
cmb.addMoveItems(localizer.getMessage("lblSet2"), localizer.getMessage("lblasavatar"));
|
||||
break;
|
||||
case Schemes:
|
||||
cmb.addMoveItems(localizer.getMessage("lblAdd"), "to scheme deck");
|
||||
cmb.addMoveItems(localizer.getMessage("lblAdd"), localizer.getMessage("lbltoschemedeck"));
|
||||
break;
|
||||
case Planes:
|
||||
cmb.addMoveItems(localizer.getMessage("lblAdd"), "to planar deck");
|
||||
cmb.addMoveItems(localizer.getMessage("lblAdd"), localizer.getMessage("lbltoplanardeck"));
|
||||
break;
|
||||
case Conspiracy:
|
||||
cmb.addMoveItems(localizer.getMessage("lblAdd"), "to conspiracy deck");
|
||||
cmb.addMoveItems(localizer.getMessage("lblAdd"), localizer.getMessage("lbltoconspiracydeck"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -293,7 +293,7 @@ public final class CEditorConstructed extends CDeckEditor<Deck> {
|
||||
switch (sectionMode) {
|
||||
case Main:
|
||||
cmb.addMoveItems(localizer.getMessage("lblRemove"), localizer.getMessage("lblfromdeck"));
|
||||
cmb.addMoveAlternateItems("Move", "to sideboard");
|
||||
cmb.addMoveAlternateItems(localizer.getMessage("lblMove"), localizer.getMessage("lbltosideboard"));
|
||||
break;
|
||||
case Sideboard:
|
||||
cmb.addMoveItems(localizer.getMessage("lblRemove"), localizer.getMessage("lblfromsideboard"));
|
||||
|
||||
@@ -79,7 +79,7 @@ public enum VCurrentDeck implements IVDoc<CCurrentDeck> {
|
||||
.tooltip(localizer.getMessage("ttImportDeck"))
|
||||
.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();
|
||||
|
||||
|
||||
@@ -720,7 +720,7 @@ public class VLobby implements ILobbyView {
|
||||
switch (forGameType) {
|
||||
case Constructed:
|
||||
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";
|
||||
decksFrame.add(cbSingletons, strCheckboxConstraints);
|
||||
decksFrame.add(cbArtifacts, strCheckboxConstraints);
|
||||
@@ -894,7 +894,7 @@ public class VLobby implements ILobbyView {
|
||||
final List<String> usedNames = getPlayerNames();
|
||||
do {
|
||||
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));
|
||||
|
||||
return newName;
|
||||
|
||||
@@ -27,6 +27,7 @@ import forge.toolbox.FSkin;
|
||||
import forge.toolbox.FSkin.SkinColor;
|
||||
import forge.toolbox.FSkin.SkinImage;
|
||||
import forge.toolbox.FSkin.SkinnedLabel;
|
||||
import forge.util.Localizer;
|
||||
|
||||
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>
|
||||
*/
|
||||
public class VDock implements IVDoc<CDock> {
|
||||
|
||||
final Localizer localizer = Localizer.getInstance();
|
||||
// Fields used with interface IVDoc
|
||||
private DragCell parentCell;
|
||||
private final DragTab tab = new DragTab("Dock");
|
||||
|
||||
private final DragTab tab = new DragTab(localizer.getMessage("lblDock"));
|
||||
// Dock button instances
|
||||
private final DockButton btnConcede = new DockButton(FSkin.getIcon(FSkinProp.ICO_CONCEDE), "Concede Game");
|
||||
private final DockButton btnSettings = new DockButton(FSkin.getIcon(FSkinProp.ICO_SETTINGS), "Game Settings");
|
||||
private final DockButton btnEndTurn = new DockButton(FSkin.getIcon(FSkinProp.ICO_ENDTURN), "End Turn");
|
||||
private final DockButton btnViewDeckList = new DockButton(FSkin.getIcon(FSkinProp.ICO_DECKLIST), "View Deck List");
|
||||
private final DockButton btnRevertLayout = new DockButton(FSkin.getIcon(FSkinProp.ICO_REVERTLAYOUT), "Revert Layout");
|
||||
private final DockButton btnOpenLayout = new DockButton(FSkin.getIcon(FSkinProp.ICO_OPENLAYOUT), "Open Layout");
|
||||
private final DockButton btnSaveLayout = new DockButton(FSkin.getIcon(FSkinProp.ICO_SAVELAYOUT), "Save Layout");
|
||||
private final DockButton btnAlphaStrike = new DockButton(FSkin.getIcon(FSkinProp.ICO_ALPHASTRIKE), "Alpha Strike");
|
||||
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), localizer.getMessage("lblGameSettings"));
|
||||
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), localizer.getMessage("lblViewDeckList"));
|
||||
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), localizer.getMessage("lblOpenLayout"));
|
||||
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), localizer.getMessage("lblAlphaStrike"));
|
||||
private final FLabel btnTargeting = new FLabel.Builder().icon(FSkin.getIcon(FSkinProp.ICO_ARCSOFF))
|
||||
.hoverable(true).iconInBackground(true).iconScaleFactor(1.0).build();
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ import forge.properties.ForgePreferences;
|
||||
import forge.properties.ForgePreferences.FPref;
|
||||
import forge.screens.match.controllers.CPrompt;
|
||||
import forge.toolbox.*;
|
||||
import forge.util.Localizer;
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -46,11 +47,12 @@ public class VPrompt implements IVDoc<CPrompt> {
|
||||
|
||||
// Fields used with interface IVDoc
|
||||
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
|
||||
private final FButton btnOK = new FButton("OK");
|
||||
private final FButton btnCancel = new FButton("Cancel");
|
||||
private final FButton btnOK = new FButton(localizer.getMessage("lblOk"));
|
||||
private final FButton btnCancel = new FButton(localizer.getMessage("lblCancel"));
|
||||
private final FHtmlViewer tarMessage = new FHtmlViewer();
|
||||
private final FScrollPane messageScroller = new FScrollPane(tarMessage, false,
|
||||
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!");
|
||||
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%");
|
||||
|
||||
|
||||
@@ -233,6 +233,7 @@ lblUseThisName=Nutzen
|
||||
lblTryAgain=Neu
|
||||
lblAddAPlayer=Spieler hinzufügen
|
||||
lblVariants=Varianten
|
||||
lblRandom=Random
|
||||
#VSubmenuConstructed.java
|
||||
lblConstructedMode=Constructed-Modus
|
||||
lblConstructed=Constructed
|
||||
@@ -368,6 +369,7 @@ btnBuildNewSealedDeck=Erstelle neues Sealed Deck
|
||||
#FDeckChooser.java
|
||||
lblViewDeck=Zeige Deck
|
||||
lblRandomDeck=Zufälliges Deck
|
||||
lblRandomColors=Random Colors
|
||||
#GameType.java
|
||||
lblSealed=Sealed
|
||||
lblDraft=Draft
|
||||
@@ -734,6 +736,9 @@ lbl4starcards=4 star cards
|
||||
lbl5starcards=5 star cards
|
||||
lblXcopiesof=X copies of
|
||||
lblcopiesof=copies of
|
||||
#ItemListView.java
|
||||
lblUniqueCardsOnly=Unique Cards Only
|
||||
ttUniqueCardsOnly=Toggle whether to show unique cards only
|
||||
#ACEditorBase.java
|
||||
lblAddcard=Add card
|
||||
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
|
||||
lblPileby=pile by
|
||||
lblColumns=Columns
|
||||
#CEditorVariant.java
|
||||
#CEditorVariant.java, CEditorConstructed.java
|
||||
lblCatalog=Catalog
|
||||
lblAdd=Add
|
||||
lbltodeck=to deck
|
||||
@@ -778,10 +783,22 @@ lblasavatar=as avatar
|
||||
lblfromschemedeck=from scheme deck
|
||||
lblfromplanardeck=from planar 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
|
||||
lblColor=Color
|
||||
lblColorIdentity=Color Identity
|
||||
lblSet=Set
|
||||
lblSet2=Set
|
||||
#Set word has different meanings in other languages
|
||||
lblDefault=Default
|
||||
lblType=Type
|
||||
lblPlaneswalkerDeckSort=Planeswalker Deck Sort
|
||||
@@ -823,3 +840,38 @@ ttbtnRandDeck5=Generate 5 color constructed deck in current deck area
|
||||
#DeckCotroller.java
|
||||
lblCurrentDeck2=Current Deck
|
||||
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
|
||||
lblAddAPlayer=Add a Player
|
||||
lblVariants=Variants
|
||||
lblRandom=Random
|
||||
#VSubmenuConstructed.java
|
||||
lblConstructedMode=Constructed Mode
|
||||
lblConstructed=Constructed
|
||||
@@ -368,6 +369,7 @@ btnBuildNewSealedDeck=Build New Sealed Deck
|
||||
#FDeckChooser.java
|
||||
lblViewDeck=View Deck
|
||||
lblRandomDeck=Random Deck
|
||||
lblRandomColors=Random Colors
|
||||
#GameType.java
|
||||
lblSealed=Sealed
|
||||
lblDraft=Draft
|
||||
@@ -734,6 +736,9 @@ lbl4starcards=4 star cards
|
||||
lbl5starcards=5 star cards
|
||||
lblXcopiesof=X copies of
|
||||
lblcopiesof=copies of
|
||||
#ItemListView.java
|
||||
lblUniqueCardsOnly=Unique Cards Only
|
||||
ttUniqueCardsOnly=Toggle whether to show unique cards only
|
||||
#ACEditorBase.java
|
||||
lblAddcard=Add card
|
||||
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
|
||||
lblPileby=pile by
|
||||
lblColumns=Columns
|
||||
#CEditorVariant.java
|
||||
#CEditorVariant.java, CEditorConstructed.java
|
||||
lblCatalog=Catalog
|
||||
lblAdd=Add
|
||||
lbltodeck=to deck
|
||||
@@ -778,10 +783,22 @@ lblasavatar=as avatar
|
||||
lblfromschemedeck=from scheme deck
|
||||
lblfromplanardeck=from planar 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
|
||||
lblColor=Color
|
||||
lblColorIdentity=Color Identity
|
||||
lblSet=Set
|
||||
lblSet2=Set
|
||||
#Set word has different meanings in other languages
|
||||
lblDefault=Default
|
||||
lblType=Type
|
||||
lblPlaneswalkerDeckSort=Planeswalker Deck Sort
|
||||
@@ -823,3 +840,38 @@ ttbtnRandDeck5=Generate 5 color constructed deck in current deck area
|
||||
#DeckCotroller.java
|
||||
lblCurrentDeck2=Current Deck
|
||||
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
|
||||
lblAddAPlayer=Añadir Jugador
|
||||
lblVariants=Variantes
|
||||
lblRandom=Aleatorio
|
||||
#VSubmenuConstructed.java
|
||||
lblConstructedMode=Modo Construido
|
||||
lblConstructed=Construido
|
||||
@@ -368,6 +369,7 @@ btnBuildNewSealedDeck=Nuevo Mazo Sellado
|
||||
#FDeckChooser.java
|
||||
lblViewDeck=Ver Mazo
|
||||
lblRandomDeck=Mazo Aleatorio
|
||||
lblRandomColors=Colores Aleatorios
|
||||
#GameType.java
|
||||
lblSealed=Sellado
|
||||
lblDraft=Draft
|
||||
@@ -641,7 +643,7 @@ lblEasy=Fácil
|
||||
lblMedium=Medio
|
||||
lblHard=Difícil
|
||||
lblExpert=Experto
|
||||
lblWinsforBooster=Victorias para Booster
|
||||
lblWinsforBooster=Victorias para Sobres
|
||||
lblWinsforRankIncrease=Victorias por subir de Nivel
|
||||
lblWinsforMediumAI=Victoria por IA nivel Medio
|
||||
lblWinsforHardAI=Victoria por IA nivel Dificil
|
||||
@@ -659,8 +661,8 @@ lblMoreDuelChoices=Más Opciones de Duelo
|
||||
lblCommon=Común
|
||||
lblUncommon=Infrecuente
|
||||
lblRare=Rara
|
||||
lblSpecialBoosters=Boosters Espciales
|
||||
ttSpecialBoosters=Permite que en la tienda aparezcan boosters especiales, específicos para cada color, y como recompensas.
|
||||
lblSpecialBoosters=Sobres Especiales
|
||||
ttSpecialBoosters=Permite que en la tienda aparezcan sobres especiales, específicos para cada color y como recompensas.
|
||||
lblMaximumPacks=Pack máximos
|
||||
lblMinimumPacks=Pack mínimos
|
||||
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
|
||||
ttPlaysetSizeBasicLand=El número de copias de tierras básicas a conservar antes de vender extras.
|
||||
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
|
||||
lblFoilfilterAlwaysOn=Filtro Foil Siempre Activado
|
||||
lblRatingsfilterAlwaysOn=Filtro de Clasificación Siempre Activado
|
||||
@@ -734,6 +736,9 @@ lbl4starcards=Cartas 4 estrellas
|
||||
lbl5starcards=Cartas 5 estrellas
|
||||
lblXcopiesof=X copias de
|
||||
lblcopiesof=copias de
|
||||
#ItemListView.java
|
||||
lblUniqueCardsOnly=Solo Cartas Únicas
|
||||
ttUniqueCardsOnly=Alternar para mostrar solo cartas únicas
|
||||
#ACEditorBase.java
|
||||
lblAddcard=Añadir carta
|
||||
ttAddcard=Añade la carta seleccionada al mazo actual (o haz doble clic en la fila o presiona la barra espaciadora)
|
||||
@@ -766,7 +771,7 @@ lblCollapseallgroups=Contraer todos los grupos
|
||||
lblGroupby=agrupar por
|
||||
lblPileby=apilar por
|
||||
lblColumns=Columnas
|
||||
#CEditorVariant.java
|
||||
#CEditorVariant.java, CEditorConstructed.java
|
||||
lblCatalog=Catálogo
|
||||
lblAdd=Añadir
|
||||
lbltodeck=al mazo
|
||||
@@ -778,10 +783,22 @@ lblasavatar=como avatar
|
||||
lblfromschemedeck=del mazo de escenario
|
||||
lblfromplanardeck=del mazo planar
|
||||
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
|
||||
lblColor=Color
|
||||
lblColorIdentity=Identidad de Color
|
||||
lblSet=Edición
|
||||
lblSet2=Establecer
|
||||
#Set word has different meanings in other languages
|
||||
lblDefault=por defecto
|
||||
lblType=Tipo
|
||||
lblPlaneswalkerDeckSort=por Planewalkers
|
||||
@@ -811,15 +828,50 @@ lblFoil=Foil
|
||||
lblPersonalRating=Puntuación Personal
|
||||
lblAdvanced=Avanzado
|
||||
#VDeckgen.java
|
||||
lblDeckGeneration=Deck Generation
|
||||
btnRandCardpool=Random Cardpool
|
||||
ttbtnRandCardpool=Generate random constructed cardpool in current deck area
|
||||
btnRandDeck2=Constructed (2 color)
|
||||
ttbtnRandDeck2=Generate 2 color constructed deck in current deck area
|
||||
btnRandDeck3=Constructed (3 color)
|
||||
ttbtnRandDeck3=Generate 3 color constructed deck in current deck area
|
||||
btnRandDeck5=Constructed (5 color)
|
||||
ttbtnRandDeck5=Generate 5 color constructed deck in current deck area
|
||||
lblDeckGeneration=Generación de Mazos
|
||||
btnRandCardpool=Pool de Cartas Aleatorio
|
||||
ttbtnRandCardpool=Genera un grupo de cartas para formato construido de manera aleatoria en el área de Mazo Actual
|
||||
btnRandDeck2=Construido (2 colores)
|
||||
ttbtnRandDeck2=Genera un Mazo Construido de 2 colores en el área de Mazo Actual
|
||||
btnRandDeck3=Construido (3 colores)
|
||||
ttbtnRandDeck3=Genera un Mazo Construido de 3 colores en el área de Mazo Actual
|
||||
btnRandDeck5=Construido (5 colores)
|
||||
ttbtnRandDeck5=Genera un Mazo Construido de 5 colores en el área de Mazo Actual
|
||||
#DeckCotroller.java
|
||||
lblCurrentDeck2=Current Deck
|
||||
lblUntitled=Untitled
|
||||
lblCurrentDeck2=Mazo Actual
|
||||
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.limited.DraftRankCache;
|
||||
import forge.model.FModel;
|
||||
import forge.util.Localizer;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
public enum ColumnDef {
|
||||
/**The column containing the inventory item name.*/
|
||||
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,
|
||||
AI("lblAI", "lblAIStatus", 30, true, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
@@ -216,81 +58,111 @@ public enum ColumnDef {
|
||||
return ai.getRemAIDecks() ? (ai.getRemRandomDecks() ? "AI ?" : "AI")
|
||||
: (ai.getRemRandomDecks() ? "?" : "");
|
||||
}
|
||||
}),
|
||||
/**The Draft ranking column.*/
|
||||
RANKING("Ranking", "Draft Ranking", 50, true, SortState.ASC,
|
||||
})/**The AI compatibility flag column*/
|
||||
,
|
||||
CMC("lblCMC", "ttCMC", 20, true, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return toRanking(from.getKey(), false);
|
||||
return toCMC(from.getKey());
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toRanking(from.getKey(), true);
|
||||
return toCMC(from.getKey());
|
||||
}
|
||||
}),
|
||||
/**The quantity column.*/
|
||||
QUANTITY("Qty", "Quantity", 25, true, SortState.ASC,
|
||||
})/**The converted mana cost column.*/
|
||||
,
|
||||
|
||||
COLLECTOR_ORDER("lblCN", "ttCN", 20, false, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return from.getValue();
|
||||
return toCollectorPrefix(from.getKey());
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return from.getValue();
|
||||
return "";
|
||||
}
|
||||
}),
|
||||
/**The quantity in deck column.*/
|
||||
DECK_QUANTITY("Quantity", "Quantity", 50, true, SortState.ASC,
|
||||
})/**The column for sorting cards in collector order.*/
|
||||
,
|
||||
COLOR("lblColor", "ttColor", 46, true, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
return from.getValue();
|
||||
return toColor(from.getKey());
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return from.getValue();
|
||||
return toColor(from.getKey());
|
||||
}
|
||||
}),
|
||||
/**The new inventory flag column.*/
|
||||
NEW("New", "New", 30, true, SortState.DESC,
|
||||
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,
|
||||
})/**The color column.*/
|
||||
,
|
||||
COST("lblCost", "ttCost", 70, true, SortState.ASC,
|
||||
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();
|
||||
return toManaCost(from.getKey());
|
||||
}
|
||||
},
|
||||
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
|
||||
@Override
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toCard(from.getKey());
|
||||
return toCardRules(from.getKey());
|
||||
}
|
||||
}),
|
||||
/**The favorite deck flag column.*/
|
||||
DECK_FAVORITE("", "Favorite", 18, true, SortState.DESC,
|
||||
})/**The mana cost column.*/
|
||||
,
|
||||
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<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
@@ -306,23 +178,9 @@ public enum ColumnDef {
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toDeck(from.getKey());
|
||||
}
|
||||
}),
|
||||
/**The edit/delete deck column.*/
|
||||
DECK_ACTIONS("", "Delete/Edit", 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 deck folder column.*/
|
||||
DECK_FOLDER("Folder", "Folder", 80, false, SortState.ASC,
|
||||
})/**The favorite deck flag column.*/
|
||||
,
|
||||
DECK_FOLDER("lblFolder", "lblFolder", 80, false, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
@@ -334,23 +192,9 @@ public enum ColumnDef {
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toDeckFolder(from.getKey());
|
||||
}
|
||||
}),
|
||||
/**The deck color column.*/
|
||||
DECK_COLOR("Color", "Color", 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 format column.*/
|
||||
DECK_FORMAT("Format", "Formats deck is legal in", 60, false, SortState.DESC,
|
||||
})/**The deck folder column.*/
|
||||
,
|
||||
DECK_FORMAT("lblFormat", "ttFormats", 60, false, SortState.DESC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
@@ -360,9 +204,9 @@ public enum ColumnDef {
|
||||
}
|
||||
Iterable<GameFormat> all = deck.getExhaustiveFormats();
|
||||
int acc = 0;
|
||||
for(GameFormat gf : all) {
|
||||
for (GameFormat gf : all) {
|
||||
int ix = gf.getIndex();
|
||||
if( ix < 30 && ix > 0)
|
||||
if (ix < 30 && ix > 0)
|
||||
acc |= 0x40000000 >> (ix - 1);
|
||||
}
|
||||
return acc;
|
||||
@@ -377,23 +221,9 @@ public enum ColumnDef {
|
||||
}
|
||||
return deck.getFormatsString();
|
||||
}
|
||||
}),
|
||||
/**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,
|
||||
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,
|
||||
})/**The deck format column.*/
|
||||
,
|
||||
DECK_MAIN("lblMain", "ttMain", 30, true, SortState.ASC,
|
||||
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
@@ -405,9 +235,23 @@ public enum ColumnDef {
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
return toDeck(from.getKey()).getMainSize();
|
||||
}
|
||||
}),
|
||||
/**The sideboard size column.*/
|
||||
DECK_SIDE("Side", "Sideboard", 30, true, SortState.ASC,
|
||||
})/**The main library size column.*/
|
||||
,
|
||||
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<?>>() {
|
||||
@Override
|
||||
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
|
||||
@@ -419,13 +263,174 @@ public enum ColumnDef {
|
||||
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
|
||||
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,
|
||||
Function<Entry<InventoryItem, Integer>, Comparable<?>> fnSort0,
|
||||
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.isWidthFixed = isWidthFixed0;
|
||||
this.sortState = sortState0;
|
||||
@@ -444,7 +449,8 @@ public enum ColumnDef {
|
||||
public String toString() {
|
||||
return this.longName;
|
||||
}
|
||||
/**
|
||||
|
||||
/**
|
||||
*Converts a card name to a sortable name.
|
||||
* Trim leading quotes, then move article last, then replace characters.
|
||||
* Because An-Havva Constable.
|
||||
@@ -456,7 +462,7 @@ public enum ColumnDef {
|
||||
*/
|
||||
private static String toSortableName(String printedName) {
|
||||
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
|
||||
@param str The name of the card.
|
||||
@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;
|
||||
for (int i = 0; i < ARTICLE_WORDS.length; i++){
|
||||
for (int i = 0; i < ARTICLE_WORDS.length; i++) {
|
||||
articleWord = ARTICLE_WORDS[i];
|
||||
if (str.startsWith(articleWord + " ")){
|
||||
str = str.substring(articleWord.length()+1) + " " + articleWord;
|
||||
if (str.startsWith(articleWord + " ")) {
|
||||
str = str.substring(articleWord.length() + 1) + " " + articleWord;
|
||||
return str;
|
||||
}
|
||||
}
|
||||
@@ -486,15 +492,17 @@ public enum ColumnDef {
|
||||
}
|
||||
|
||||
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) {
|
||||
return i instanceof IPaperCard ? ((IPaperCard) i) : null;
|
||||
}
|
||||
|
||||
private static ManaCost toManaCost(final InventoryItem i) {
|
||||
return i instanceof IPaperCard ? ((IPaperCard) i).getRules().getManaCost() : ManaCost.NO_COST;
|
||||
}
|
||||
|
||||
private static CardRules toCardRules(final InventoryItem i) {
|
||||
return i instanceof IPaperCard ? ((IPaperCard) i).getRules() : null;
|
||||
}
|
||||
@@ -508,7 +516,7 @@ public enum ColumnDef {
|
||||
if (i instanceof PaperCard) {
|
||||
result = ((IPaperCard) i).getRules().getIntPower();
|
||||
if (result == Integer.MAX_VALUE) {
|
||||
if (((IPaperCard)i).getRules().getType().isPlaneswalker()) {
|
||||
if (((IPaperCard) i).getRules().getType().isPlaneswalker()) {
|
||||
result = ((IPaperCard) i).getRules().getInitialLoyalty();
|
||||
}
|
||||
}
|
||||
@@ -529,7 +537,7 @@ public enum ColumnDef {
|
||||
}
|
||||
|
||||
private static Double toRanking(final InventoryItem i, boolean truncate) {
|
||||
if (i instanceof IPaperCard){
|
||||
if (i instanceof IPaperCard) {
|
||||
IPaperCard cp = (IPaperCard) i;
|
||||
Double ranking = DraftRankCache.getRanking(cp.getName(), cp.getEdition());
|
||||
if (ranking != null) {
|
||||
@@ -545,9 +553,11 @@ public enum ColumnDef {
|
||||
private static DeckProxy toDeck(final InventoryItem i) {
|
||||
return i instanceof DeckProxy ? ((DeckProxy) i) : null;
|
||||
}
|
||||
|
||||
private static ColorSet toDeckColor(final InventoryItem i) {
|
||||
return i instanceof DeckProxy ? ((DeckProxy) i).getColor() : null;
|
||||
}
|
||||
|
||||
private static String toDeckFolder(final InventoryItem i) {
|
||||
return i instanceof DeckProxy ? ((DeckProxy) i).getPath() + "/" : null;
|
||||
}
|
||||
@@ -578,7 +588,7 @@ public enum ColumnDef {
|
||||
@param i A paper card.
|
||||
@return Part of a sortable numeric string.*/
|
||||
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() ||
|
||||
//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.BLUE) &&
|
||||
manaCost.canBePaidWithAvaliable(MagicColor.BLACK)))
|
||||
? "0" + toSplitLast(i): "1";
|
||||
? "0" + toSplitLast(i) : "1";
|
||||
}
|
||||
|
||||
/**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.*/
|
||||
private static String toMonocolorFirst(final InventoryItem i) {
|
||||
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.
|
||||
@param i A paper card.
|
||||
@return Part of a sortable numeric string.*/
|
||||
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) |
|
||||
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.
|
||||
private static String toSplitCardSort(final InventoryItem i) {
|
||||
CardRules rules = ((IPaperCard) i).getRules();
|
||||
forge.card.ICardFace mainPart = rules.getMainPart();
|
||||
forge.card.ICardFace otherPart = rules.getOtherPart();
|
||||
ICardFace mainPart = rules.getMainPart();
|
||||
ICardFace otherPart = rules.getOtherPart();
|
||||
return toSplitSort(mainPart, otherPart);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user