From 64bc5e0484244df3224e9f1a35d4d19d58bb980a Mon Sep 17 00:00:00 2001 From: drdev Date: Tue, 8 Dec 2015 02:14:36 +0000 Subject: [PATCH] Refactor logic for determining when a card can be a commander into CardRules --- forge-core/src/main/java/forge/card/CardRules.java | 8 ++++++++ forge-core/src/main/java/forge/deck/DeckFormat.java | 5 +---- .../src/main/java/forge/planarconquest/ConquestPlane.java | 8 ++++---- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/forge-core/src/main/java/forge/card/CardRules.java b/forge-core/src/main/java/forge/card/CardRules.java index 15d9a96d8a1..2f419fbdd44 100644 --- a/forge-core/src/main/java/forge/card/CardRules.java +++ b/forge-core/src/main/java/forge/card/CardRules.java @@ -187,6 +187,14 @@ public final class CardRules implements ICardCharacteristics { } } + public boolean canBeCommander() { + CardType type = mainPart.getType(); + if (type.isLegendary() && type.isCreature()) { + return true; + } + return mainPart.getOracleText().contains("can be your commander"); + } + // public Set getSets() { return this.setsPrinted.keySet(); } // public CardInSet getEditionInfo(final String setCode) { // final CardInSet result = this.setsPrinted.get(setCode); diff --git a/forge-core/src/main/java/forge/deck/DeckFormat.java b/forge-core/src/main/java/forge/deck/DeckFormat.java index d52ad43ca70..90a5f04cf92 100644 --- a/forge-core/src/main/java/forge/deck/DeckFormat.java +++ b/forge-core/src/main/java/forge/deck/DeckFormat.java @@ -328,10 +328,7 @@ public enum DeckFormat { if (cardPoolFilter != null && !cardPoolFilter.apply(rules)) { return false; } - if (rules.getType().isLegendary() && rules.getType().isCreature()) { - return true; - } - return rules.getOracleText().contains("can be your commander"); + return rules.canBeCommander(); } public Predicate isLegalDeckPredicate() { diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestPlane.java b/forge-gui/src/main/java/forge/planarconquest/ConquestPlane.java index a754157b4c9..eb0cd00504a 100644 --- a/forge-gui/src/main/java/forge/planarconquest/ConquestPlane.java +++ b/forge-gui/src/main/java/forge/planarconquest/ConquestPlane.java @@ -24,7 +24,7 @@ import forge.assets.ISkinImage; import forge.card.CardDb; import forge.card.CardEdition; import forge.card.CardEdition.CardInSet; -import forge.card.CardType; +import forge.card.CardRules; import forge.card.ColorSet; import forge.card.MagicColor; import forge.deck.generation.DeckGenPool; @@ -226,14 +226,14 @@ public enum ConquestPlane { if (!bannedCards.contains(card.name)) { PaperCard pc = FModel.getMagicDb().getCommonCards().getCard(card.name, setCode); if (pc != null) { - CardType type = pc.getRules().getType(); - boolean isCommander = type.isLegendary() && type.isCreature(); + CardRules rules = pc.getRules(); + boolean isCommander = pc.getRules().canBeCommander(); cardPool.add(pc); if (isCommander) { commanders.add(pc); } int count = 0; - if (!type.isBasicLand()) { //add all basic lands to all regions below + if (!rules.getType().isBasicLand()) { //add all basic lands to all regions below for (Region region : regions) { if (region.pred.apply(pc)) { region.cardPool.add(pc);