From 6de61cb9a63d0225d72da9f4545d3342c8899c52 Mon Sep 17 00:00:00 2001 From: elcnesh Date: Wed, 10 Dec 2014 18:40:19 +0000 Subject: [PATCH] Code cleanup: make a lot of methods static and remove some unnecessary interface implements and casts. --- .../java/forge/ai/AiAttackController.java | 36 +++++++------------ .../main/java/forge/ai/AiBlockController.java | 4 +-- .../src/main/java/forge/ai/AiController.java | 2 +- .../main/java/forge/ai/AiCostDecision.java | 4 +-- .../src/main/java/forge/card/CardDb.java | 4 +-- .../src/main/java/forge/card/CardRules.java | 28 ++++----------- .../src/main/java/forge/card/CardType.java | 2 +- .../src/main/java/forge/deck/DeckFormat.java | 4 +-- .../main/java/forge/deck/io/DeckStorage.java | 2 +- .../main/java/forge/util/NameGenerator.java | 2 +- 10 files changed, 30 insertions(+), 58 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/AiAttackController.java b/forge-ai/src/main/java/forge/ai/AiAttackController.java index 4361bd4d03d..72eee16326a 100644 --- a/forge-ai/src/main/java/forge/ai/AiAttackController.java +++ b/forge-ai/src/main/java/forge/ai/AiAttackController.java @@ -93,7 +93,7 @@ public class AiAttackController { attackers.add(c); } } - this.blockers = this.getPossibleBlockers(oppList, this.attackers); + this.blockers = getPossibleBlockers(oppList, this.attackers); } // constructor public AiAttackController(final Player ai, Card attacker) { @@ -105,7 +105,7 @@ public class AiAttackController { if (CombatUtil.canAttack(attacker, this.defendingOpponent)) { attackers.add(attacker); } - this.blockers = this.getPossibleBlockers(oppList, this.attackers); + this.blockers = getPossibleBlockers(oppList, this.attackers); } // overloaded constructor to evaluate single specified attacker public static List getOpponentCreatures(final Player defender) { @@ -156,7 +156,7 @@ public class AiAttackController { * a {@link forge.CardList} object. * @return a {@link forge.CardList} object. */ - public final List sortAttackers(final List in) { + public final static List sortAttackers(final List in) { final List list = new ArrayList(); // Cards with triggers should come first (for Battle Cry) @@ -219,7 +219,7 @@ public class AiAttackController { return false; } - public final List getPossibleBlockers(final List blockers, final List attackers) { + public final static List getPossibleBlockers(final List blockers, final List attackers) { List possibleBlockers = new ArrayList(blockers); possibleBlockers = CardLists.filter(possibleBlockers, new Predicate() { @Override @@ -230,7 +230,7 @@ public class AiAttackController { return possibleBlockers; } - public final boolean canBlockAnAttacker(final Card c, final List attackers) { + public final static boolean canBlockAnAttacker(final Card c, final List attackers) { final List attackerList = new ArrayList(attackers); if (!c.isCreature()) { return false; @@ -277,7 +277,7 @@ public class AiAttackController { int blockersNeeded = this.oppList.size(); // don't hold back creatures that can't block any of the human creatures - final List list = this.getPossibleBlockers(attackers, this.oppList); + final List list = getPossibleBlockers(attackers, this.oppList); //Calculate the amount of creatures necessary for (int i = 0; i < list.size(); i++) { @@ -307,7 +307,7 @@ public class AiAttackController { // In addition, if the computer guesses it needs no blockers, make sure // that // it won't be surprised by Exalted - final int humanExaltedBonus = this.countExaltedBonus(opp); + final int humanExaltedBonus = countExaltedBonus(opp); if (humanExaltedBonus > 0) { final boolean finestHour = opp.isCardInPlay("Finest Hour"); @@ -316,7 +316,7 @@ public class AiAttackController { // // total attack = biggest creature + exalted, *2 if Rafiq is in // play - int humanBasePower = this.getAttack(this.oppList.get(0)) + humanExaltedBonus; + int humanBasePower = getAttack(this.oppList.get(0)) + humanExaltedBonus; if (finestHour) { // For Finest Hour, one creature could attack and get the // bonus TWICE @@ -490,18 +490,6 @@ public class AiAttackController { final boolean LOG_AI_ATTACKS = false; - - public final List getDefendingPlayers(Combat combat) { - final List defending = new ArrayList(); - for (final GameEntity o : combat.getDefenders()) { - if (o instanceof Player) { - defending.add((Player) o); - } - } - return defending; - } - - /** *

* Getter for the field attackers. @@ -806,7 +794,7 @@ public class AiAttackController { System.out.println("Normal attack"); attackersLeft = this.notNeededAsBlockers(ai, attackersLeft); - attackersLeft = this.sortAttackers(attackersLeft); + attackersLeft = sortAttackers(attackersLeft); if ( LOG_AI_ATTACKS ) System.out.println("attackersLeft = " + attackersLeft); @@ -849,7 +837,7 @@ public class AiAttackController { } } if (!found) { - defender = getDefendingPlayers(combat).get(0); + defender = combat.getDefendingPlayers().get(0); } } } @@ -866,7 +854,7 @@ public class AiAttackController { * a {@link forge.game.player.Player} object. * @return a int. */ - public final int countExaltedBonus(final Player player) { + public final static int countExaltedBonus(final Player player) { int bonus = 0; for (Card c : player.getCardsIn(ZoneType.Battlefield)) { bonus += c.getKeywordAmount("Exalted"); @@ -884,7 +872,7 @@ public class AiAttackController { * a {@link forge.game.card.Card} object. * @return a int. */ - public final int getAttack(final Card c) { + public final static int getAttack(final Card c) { int n = c.getNetCombatDamage(); if (c.hasKeyword("Double Strike")) { diff --git a/forge-ai/src/main/java/forge/ai/AiBlockController.java b/forge-ai/src/main/java/forge/ai/AiBlockController.java index cbc0d37ae23..c77d97c0460 100644 --- a/forge-ai/src/main/java/forge/ai/AiBlockController.java +++ b/forge-ai/src/main/java/forge/ai/AiBlockController.java @@ -77,7 +77,7 @@ public class AiBlockController { } // finds the creatures able to block the attacker - private List getPossibleBlockers(final Combat combat, final Card attacker, final List blockersLeft, final boolean solo) { + private static List getPossibleBlockers(final Combat combat, final Card attacker, final List blockersLeft, final boolean solo) { final List blockers = new ArrayList(); for (final Card blocker : blockersLeft) { @@ -120,7 +120,7 @@ public class AiBlockController { return blockers; } - private List sortAttackerByDefender(final Combat combat) { + private static List sortAttackerByDefender(final Combat combat) { FCollectionView defenders = combat.getDefenders(); final ArrayList attackers = new ArrayList(defenders.size()); for (GameEntity defender : defenders) { diff --git a/forge-ai/src/main/java/forge/ai/AiController.java b/forge-ai/src/main/java/forge/ai/AiController.java index ee4233f2147..1792dd76ff8 100644 --- a/forge-ai/src/main/java/forge/ai/AiController.java +++ b/forge-ai/src/main/java/forge/ai/AiController.java @@ -362,7 +362,7 @@ public class AiController { return spellAbilities; } - private ArrayList getPlayableCounters(final CardCollection l) { + private static ArrayList getPlayableCounters(final CardCollection l) { final ArrayList spellAbility = new ArrayList(); for (final Card c : l) { for (final SpellAbility sa : c.getNonManaAbilities()) { diff --git a/forge-ai/src/main/java/forge/ai/AiCostDecision.java b/forge-ai/src/main/java/forge/ai/AiCostDecision.java index 82c993050ab..45fce391952 100644 --- a/forge-ai/src/main/java/forge/ai/AiCostDecision.java +++ b/forge-ai/src/main/java/forge/ai/AiCostDecision.java @@ -23,7 +23,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -public class AiCostDecision extends CostDecisionMakerBase implements ICostVisitor { +public class AiCostDecision extends CostDecisionMakerBase { private final SpellAbility ability; private final Card source; @@ -593,7 +593,7 @@ public class AiCostDecision extends CostDecisionMakerBase implements ICostVisito @Override public PaymentDecision visit(CostUnattach cost) { - Card cardToUnattach = cost.findCardToUnattach(source, (Player) player, ability); + final Card cardToUnattach = cost.findCardToUnattach(source, player, ability); if (cardToUnattach == null) { // We really shouldn't be able to get here if there's nothing to unattach return null; diff --git a/forge-core/src/main/java/forge/card/CardDb.java b/forge-core/src/main/java/forge/card/CardDb.java index 56c3916e3ea..30cd1a7f75e 100644 --- a/forge-core/src/main/java/forge/card/CardDb.java +++ b/forge-core/src/main/java/forge/card/CardDb.java @@ -185,9 +185,9 @@ public final class CardDb implements ICardDatabase, IDeckGenPool { } } - private PaperCard getFirstWithImage(Collection cards) { + private static PaperCard getFirstWithImage(final Collection cards) { //NOTE: this is written this way to avoid checking final card in list - Iterator iterator = cards.iterator(); + final Iterator iterator = cards.iterator(); PaperCard pc = iterator.next(); while (iterator.hasNext()) { if (pc.hasImage()) { diff --git a/forge-core/src/main/java/forge/card/CardRules.java b/forge-core/src/main/java/forge/card/CardRules.java index 1a6efc6be57..15d9a96d8a1 100644 --- a/forge-core/src/main/java/forge/card/CardRules.java +++ b/forge-core/src/main/java/forge/card/CardRules.java @@ -17,13 +17,13 @@ */ package forge.card; +import java.util.StringTokenizer; + +import org.apache.commons.lang3.StringUtils; + import forge.card.mana.IParserManaCost; import forge.card.mana.ManaCost; import forge.card.mana.ManaCostShard; -import org.apache.commons.lang3.StringUtils; - -import java.util.List; -import java.util.StringTokenizer; /** * A collection of methods containing full @@ -65,7 +65,7 @@ public final class CardRules implements ICardCharacteristics { colorIdentity = newRules.colorIdentity; } - private byte calculateColorIdentity(ICardFace face) { + private static byte calculateColorIdentity(final ICardFace face) { byte res = face.getColor().getColor(); boolean isReminder = false; boolean isSymbol = false; @@ -154,7 +154,7 @@ public final class CardRules implements ICardCharacteristics { } } - private boolean canCastFace(ICardFace face, byte colorCode) { + private static boolean canCastFace(final ICardFace face, final byte colorCode) { if (face.getManaCost().isNoCost()) { //if card face has no cost, assume castable only by mana of its defined color return face.getColor().hasNoColorsExcept(colorCode); @@ -214,22 +214,6 @@ public final class CardRules implements ICardCharacteristics { public String getPictureUrl(boolean backface ) { return backface ? dlUrlOtherSide : dlUrl; } public void setDlUrls(String[] dlUrls) { this.dlUrl = dlUrls[0]; this.dlUrlOtherSide = dlUrls[1]; } - public final List getReplacements() { - return null; - } - - public final List getTriggers() { - return null; - } - - public final List getStaticAbilities() { - return null; - } - - public final List getAbilities() { - return null; - } - public ColorSet getColorIdentity() { return colorIdentity; } diff --git a/forge-core/src/main/java/forge/card/CardType.java b/forge-core/src/main/java/forge/card/CardType.java index f4c6d457626..17147bc5b92 100644 --- a/forge-core/src/main/java/forge/card/CardType.java +++ b/forge-core/src/main/java/forge/card/CardType.java @@ -248,7 +248,7 @@ public final class CardType implements Comparable, CardTypeView { return subtypes.contains(creatureType) || subtypes.contains("AllCreatureTypes"); } - private String toMixedCase(final String s) { + private static String toMixedCase(final String s) { if (s.equals("")) { return s; } diff --git a/forge-core/src/main/java/forge/deck/DeckFormat.java b/forge-core/src/main/java/forge/deck/DeckFormat.java index 54bc5fac72d..11782910364 100644 --- a/forge-core/src/main/java/forge/deck/DeckFormat.java +++ b/forge-core/src/main/java/forge/deck/DeckFormat.java @@ -194,7 +194,7 @@ public enum DeckFormat { return null; } - public String getPlaneSectionConformanceProblem(CardPool planes) { + public static String getPlaneSectionConformanceProblem(final CardPool planes) { //Must contain at least 10 planes/phenomenons, but max 2 phenomenons. Singleton. if (planes == null || planes.countAll() < 10) { return "should have at least 10 planes"; @@ -214,7 +214,7 @@ public enum DeckFormat { return null; } - public String getSchemeSectionConformanceProblem(CardPool schemes) { + public static String getSchemeSectionConformanceProblem(final CardPool schemes) { //Must contain at least 20 schemes, max 2 of each. if (schemes == null || schemes.countAll() < 20) { return "must contain at least 20 schemes"; diff --git a/forge-core/src/main/java/forge/deck/io/DeckStorage.java b/forge-core/src/main/java/forge/deck/io/DeckStorage.java index e92e11cdb4e..9da1465d5bd 100644 --- a/forge-core/src/main/java/forge/deck/io/DeckStorage.java +++ b/forge-core/src/main/java/forge/deck/io/DeckStorage.java @@ -88,7 +88,7 @@ public class DeckStorage extends StorageReaderFolder implements IItemSeria return result; } - private void adjustFileLocation(final File file, final Deck result) { + private static void adjustFileLocation(final File file, final Deck result) { if (result == null) { file.delete(); } else { diff --git a/forge-core/src/main/java/forge/util/NameGenerator.java b/forge-core/src/main/java/forge/util/NameGenerator.java index 9afa734cad9..47020019068 100644 --- a/forge-core/src/main/java/forge/util/NameGenerator.java +++ b/forge-core/src/main/java/forge/util/NameGenerator.java @@ -272,7 +272,7 @@ public final class NameGenerator { } /** Generates a specified number of random names. */ - public List getRandomNames(int generateAmount, final List excludeNames) { + public static List getRandomNames(final int generateAmount, final List excludeNames) { usedNames = excludeNames; final List names = new ArrayList(generateAmount); for (int i = 0; i < generateAmount; i++) {