diff --git a/Mage.Client/src/main/java/mage/client/cards/CardsList.java b/Mage.Client/src/main/java/mage/client/cards/CardsList.java index ae05372830..b738a7a02a 100644 --- a/Mage.Client/src/main/java/mage/client/cards/CardsList.java +++ b/Mage.Client/src/main/java/mage/client/cards/CardsList.java @@ -141,6 +141,7 @@ // new mana render (svg support) mainTable.getColumnModel().getColumn(mainModel.COLUMN_INDEX_COST).setCellRenderer(new ManaSymbolsCellRenderer()); + mainTable.getColumnModel().getColumn(mainModel.COLUMN_INDEX_COLOR_IDENTITY).setCellRenderer(new ManaSymbolsCellRenderer()); if (PreferencesDialog.getCachedValue(PreferencesDialog.KEY_DRAFT_VIEW, "cardView").equals("listView")) { jToggleListView.setSelected(true); diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java index cb83a88c32..5e706e36a6 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java @@ -127,6 +127,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene // new mana render (svg support) mainTable.getColumnModel().getColumn(mainModel.COLUMN_INDEX_COST).setCellRenderer(new ManaSymbolsCellRenderer()); + mainTable.getColumnModel().getColumn(mainModel.COLUMN_INDEX_COLOR_IDENTITY).setCellRenderer(new ManaSymbolsCellRenderer()); // mainTable.setToolTipText(cardSelectorScrollPane.getToolTipText()); cardSelectorScrollPane.setViewportView(mainTable); diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/table/MageCardComparator.java b/Mage.Client/src/main/java/mage/client/deckeditor/table/MageCardComparator.java index 1775689bfd..d14d236c14 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/table/MageCardComparator.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/table/MageCardComparator.java @@ -86,6 +86,10 @@ public class MageCardComparator implements CardViewComparator { aCom = RateCard.rateCard(a.getOriginalCard(), null); bCom = RateCard.rateCard(b.getOriginalCard(), null); break; + case 10: + aCom = a.getColorIdentityStr(); + bCom = b.getColorIdentityStr(); + break; default: break; } diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java b/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java index 93e251641b..772945b281 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java @@ -51,9 +51,10 @@ public class TableModel extends AbstractTableModel implements ICardGrid { private boolean displayNoCopies = false; private UpdateCountsCallback updateCountsCallback; - private final String[] column = {"Qty", "Name", "Cost", "Color", "Type", "Stats", "Rarity", "Set", "Card number", "Draft Rating"}; + private final String[] column = {"Qty", "Name", "Cost", "Color", "Type", "Stats", "Rarity", "Set", "Card number", "Draft Rating", "Color Identity"}; public final int COLUMN_INDEX_COST = 2; public final int COLUMN_INDEX_RATING = 9; + public final int COLUMN_INDEX_COLOR_IDENTITY = 10; private SortSetting sortSetting; private int recentSortedColumn; @@ -253,6 +254,8 @@ public class TableModel extends AbstractTableModel implements ICardGrid { return c.getCardNumber(); case 9: return RateCard.rateCard(c.getOriginalCard(), null); + case 10: + return ManaSymbols.getClearManaCost(c.getColorIdentityStr()); default: return "error"; } diff --git a/Mage.Common/src/main/java/mage/view/CardView.java b/Mage.Common/src/main/java/mage/view/CardView.java index f648dfa0d6..3e2646a596 100644 --- a/Mage.Common/src/main/java/mage/view/CardView.java +++ b/Mage.Common/src/main/java/mage/view/CardView.java @@ -18,6 +18,7 @@ import mage.constants.*; import mage.counters.Counter; import mage.counters.CounterType; import mage.designations.Designation; +import mage.filter.FilterMana; import mage.game.Game; import mage.game.command.Emblem; import mage.game.command.Plane; @@ -856,6 +857,14 @@ public class CardView extends SimpleCardView { return rarity; } + public String getColorIdentityStr() { + FilterMana filterMana = originalCard.getColorIdentity(); + if (filterMana.getColorCount() == 0) { + return CardUtil.concatManaSymbols(CardInfo.SPLIT_MANA_SEPARATOR_FULL, "{C}", ""); + } + return CardUtil.concatManaSymbols(CardInfo.SPLIT_MANA_SEPARATOR_FULL, filterMana.toString(), ""); + } + @Override public String getExpansionSetCode() { if (expansionSetCode == null) { diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/FreeformCommander.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/FreeformCommander.java index 3f2fd77f88..7d77a141b6 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/FreeformCommander.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/FreeformCommander.java @@ -119,7 +119,7 @@ public class FreeformCommander extends Constructed { commanderNames.add(commander.getName()); } for (Card commander : commanders) { - if (!commander.isCreature() || !commander.isLegendary()) { + if (!(commander.isCreature() || commander.isLegendary())) { addError(DeckValidatorErrorType.PRIMARY, commander.getName(), "For Freeform Commander, the commander must be a creature or be legendary. Yours was: " + commander.getName(), true); valid = false; }