From c8398ed6d0d05dbb2d4e95f8c3a655d780e734d3 Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Fri, 5 Oct 2012 20:40:31 +0000 Subject: [PATCH] * Player: isPlayer was duplicating equals method * CardLists may accept any iterable for filtering - warnings --- src/main/java/forge/Card.java | 30 +++++++++---------- src/main/java/forge/CardLists.java | 18 +++++------ src/main/java/forge/CardPredicates.java | 4 +-- src/main/java/forge/GameAction.java | 3 +- src/main/java/forge/GameActionUtil.java | 8 ++--- .../abilityfactory/AbilityFactoryAttach.java | 2 +- .../AbilityFactoryCounters.java | 2 +- .../abilityfactory/AbilityFactoryEffect.java | 1 - .../card/cardfactory/CardFactoryInstants.java | 6 ++-- .../card/cardfactory/CardFactoryUtil.java | 15 +++++----- .../spellability/SpellAbilityRestriction.java | 4 +-- .../java/forge/game/phase/CombatUtil.java | 2 +- .../java/forge/game/phase/PhaseHandler.java | 4 +-- .../java/forge/game/player/ComputerUtil.java | 2 +- src/main/java/forge/game/player/Player.java | 15 +--------- .../forge/game/zone/DefaultPlayerZone.java | 2 +- src/main/java/forge/game/zone/MagicStack.java | 2 +- .../controllers/CEditorDraftingProcess.java | 1 - 18 files changed, 53 insertions(+), 68 deletions(-) diff --git a/src/main/java/forge/Card.java b/src/main/java/forge/Card.java index 767b61a02a5..4e63f071795 100644 --- a/src/main/java/forge/Card.java +++ b/src/main/java/forge/Card.java @@ -6472,17 +6472,17 @@ public class Card extends GameEntity implements Comparable { return false; } } else if (property.startsWith("YouCtrl")) { - if (!this.getController().isPlayer(sourceController)) { + if (!this.getController().equals(sourceController)) { return false; } } else if (property.startsWith("YouDontCtrl")) { - if (this.getController().isPlayer(sourceController)) { + if (this.getController().equals(sourceController)) { return false; } } else if (property.startsWith("EnchantedPlayerCtrl")) { final Object o = source.getEnchanting(); if (o instanceof Player) { - if (!this.getController().isPlayer((Player) o)) { + if (!this.getController().equals((Player) o)) { return false; } } else { // source not enchanting a player @@ -6493,7 +6493,7 @@ public class Card extends GameEntity implements Comparable { final Card newCard = AllZoneUtil.getCardState(source); for (final Object o : newCard.getRemembered()) { if (o instanceof Player) { - if (!this.getController().isPlayer((Player) o)) { + if (!this.getController().equals((Player) o)) { return false; } } @@ -6502,7 +6502,7 @@ public class Card extends GameEntity implements Comparable { for (final Object o : source.getRemembered()) { if (o instanceof Player) { - if (!this.getController().isPlayer((Player) o)) { + if (!this.getController().equals((Player) o)) { return false; } } @@ -6514,7 +6514,7 @@ public class Card extends GameEntity implements Comparable { if (parent.getTarget() != null) { for (final Object o : parent.getTarget().getTargetPlayers()) { if (o instanceof Player) { - if (!this.getController().isPlayer((Player) o)) { + if (!this.getController().equals((Player) o)) { return false; } } @@ -6528,13 +6528,13 @@ public class Card extends GameEntity implements Comparable { final ArrayList sas = AbilityFactory.getDefinedSpellAbilities(source, "Targeted", sa); for (final Card c : list) { final Player p = c.getController(); - if (!this.getController().isPlayer(p)) { + if (!this.getController().equals(p)) { return false; } } for (final SpellAbility s : sas) { final Player p = s.getSourceCard().getController(); - if (!this.getController().isPlayer(p)) { + if (!this.getController().equals(p)) { return false; } } @@ -6548,11 +6548,11 @@ public class Card extends GameEntity implements Comparable { return false; } } else if (property.startsWith("YouOwn")) { - if (!this.getOwner().isPlayer(sourceController)) { + if (!this.getOwner().equals(sourceController)) { return false; } } else if (property.startsWith("YouDontOwn")) { - if (this.getOwner().isPlayer(sourceController)) { + if (this.getOwner().equals(sourceController)) { return false; } } else if (property.startsWith("OwnedBy")) { @@ -6561,7 +6561,7 @@ public class Card extends GameEntity implements Comparable { return false; } } else if (property.startsWith("OwnerDoesntControl")) { - if (this.getOwner().isPlayer(this.getController())) { + if (this.getOwner().equals(this.getController())) { return false; } } else if (property.startsWith("ControllerControls")) { @@ -6925,15 +6925,15 @@ public class Card extends GameEntity implements Comparable { return false; } } else if (property.startsWith("controllerWasDealtCombatDamageByThisTurn")) { - if (!(source.getDamageHistory().getDealtCombatDmgToHumanThisTurn() && this.getController().isPlayer(AllZone.getHumanPlayer())) - && !(source.getDamageHistory().getDealtCombatDmgToComputerThisTurn() && this.getController().isPlayer( + if (!(source.getDamageHistory().getDealtCombatDmgToHumanThisTurn() && this.getController().equals(AllZone.getHumanPlayer())) + && !(source.getDamageHistory().getDealtCombatDmgToComputerThisTurn() && this.getController().equals( AllZone.getComputerPlayer()))) { return false; } } else if (property.startsWith("controllerWasDealtDamageByThisTurn")) { - if (!(source.getDamageHistory().getDealtDmgToHumanThisTurn() && this.getController().isPlayer(AllZone.getHumanPlayer())) + if (!(source.getDamageHistory().getDealtDmgToHumanThisTurn() && this.getController().equals(AllZone.getHumanPlayer())) && !(source.getDamageHistory().getDealtDmgToComputerThisTurn() && this.getController() - .isPlayer(AllZone.getComputerPlayer()))) { + .equals(AllZone.getComputerPlayer()))) { return false; } } else if (property.startsWith("wasDealtDamageThisTurn")) { diff --git a/src/main/java/forge/CardLists.java b/src/main/java/forge/CardLists.java index 75232e0b3db..a4eed08090a 100644 --- a/src/main/java/forge/CardLists.java +++ b/src/main/java/forge/CardLists.java @@ -300,38 +300,38 @@ public class CardLists { Collections.shuffle(list, MyRandom.getRandom()); } - public static List filterControlledBy(List cardList, Player player) { + public static List filterControlledBy(Iterable cardList, Player player) { return CardLists.filter(cardList, CardPredicates.isController(player)); } - public static List getValidCards(List cardList, String[] restrictions, Player sourceController, Card source) { + public static List getValidCards(Iterable cardList, String[] restrictions, Player sourceController, Card source) { return CardLists.filter(cardList, CardPredicates.restriction(restrictions, sourceController, source)); } - public static List getValidCards(List cardList, String restriction, Player sourceController, Card source) { + public static List getValidCards(Iterable cardList, String restriction, Player sourceController, Card source) { return CardLists.filter(cardList, CardPredicates.restriction(restriction.split(","), sourceController, source)); } - public static List getTargetableCards(List cardList, SpellAbility source) { + public static List getTargetableCards(Iterable cardList, SpellAbility source) { return CardLists.filter(cardList, CardPredicates.isTargetableBy(source)); } - public static List getKeyword(List cardList, String keyword) { + public static List getKeyword(Iterable cardList, String keyword) { return CardLists.filter(cardList, CardPredicates.hasKeyword(keyword)); } - public static List getNotKeyword(List cardList, String keyword) { + public static List getNotKeyword(Iterable cardList, String keyword) { return CardLists.filter(cardList, Predicates.not(CardPredicates.hasKeyword(keyword))); } // cardType is like "Land" or "Goblin", returns a new ArrayList that is a // subset of current CardList - public static List getNotType(List cardList, String cardType) { + public static List getNotType(Iterable cardList, String cardType) { return CardLists.filter(cardList, Predicates.not(CardPredicates.isType(cardType))); } - public static List getType(List cardList, String cardType) { + public static List getType(Iterable cardList, String cardType) { return CardLists.filter(cardList, CardPredicates.isType(cardType)); } @@ -344,7 +344,7 @@ public class CardLists { * @return a subset of this List whose items meet the filtering * criteria; may be empty, but never null. */ - public static List filter(List cardList, Predicate filt) { + public static List filter(Iterable cardList, Predicate filt) { return Lists.newArrayList(Iterables.filter(cardList, filt)); } diff --git a/src/main/java/forge/CardPredicates.java b/src/main/java/forge/CardPredicates.java index 59c98bd0a82..8865418b3de 100644 --- a/src/main/java/forge/CardPredicates.java +++ b/src/main/java/forge/CardPredicates.java @@ -43,7 +43,7 @@ public final class CardPredicates { return new Predicate() { @Override public boolean apply(final Card c) { - return c.getController().isPlayer(p); + return c.getController().equals(p); } }; } @@ -51,7 +51,7 @@ public final class CardPredicates { return new Predicate() { @Override public boolean apply(final Card c) { - return c.getOwner().isPlayer(p); + return c.getOwner().equals(p); } }; } diff --git a/src/main/java/forge/GameAction.java b/src/main/java/forge/GameAction.java index 3cb43606cb9..e4b08da4f5a 100644 --- a/src/main/java/forge/GameAction.java +++ b/src/main/java/forge/GameAction.java @@ -21,7 +21,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import javax.swing.JFrame; @@ -1082,7 +1081,7 @@ public class GameAction { final Player pl = (Player) entity; boolean invalid = false; - if (tgt.canOnlyTgtOpponent() && !c.getController().getOpponent().isPlayer(pl)) { + if (tgt.canOnlyTgtOpponent() && !c.getController().getOpponent().equals(pl)) { invalid = true; } else { if (pl.hasProtectionFrom(c)) { diff --git a/src/main/java/forge/GameActionUtil.java b/src/main/java/forge/GameActionUtil.java index 99f489c2177..70b02d040d5 100644 --- a/src/main/java/forge/GameActionUtil.java +++ b/src/main/java/forge/GameActionUtil.java @@ -888,10 +888,10 @@ public final class GameActionUtil { GameActionUtil.playerCombatDamageWhirlingDervish(c); } - if (player.isPlayer(AllZone.getHumanPlayer())) { + if (player.equals(AllZone.getHumanPlayer())) { c.getDamageHistory().setDealtDmgToHumanThisTurn(true); } - if (player.isPlayer(AllZone.getComputerPlayer())) { + if (player.equals(AllZone.getComputerPlayer())) { c.getDamageHistory().setDealtDmgToComputerThisTurn(true); } } @@ -978,10 +978,10 @@ public final class GameActionUtil { GameActionUtil.executeCelestialMantle(c); } - if (player.isPlayer(AllZone.getHumanPlayer())) { + if (player.equals(AllZone.getHumanPlayer())) { c.getDamageHistory().setDealtCombatDmgToHumanThisTurn(true); } - if (player.isPlayer(AllZone.getComputerPlayer())) { + if (player.equals(AllZone.getComputerPlayer())) { c.getDamageHistory().setDealtCombatDmgToComputerThisTurn(true); } } // executeCombatDamageToPlayerEffects diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactoryAttach.java b/src/main/java/forge/card/abilityfactory/AbilityFactoryAttach.java index a6e9a5c5992..21beb20ccea 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactoryAttach.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactoryAttach.java @@ -1673,7 +1673,7 @@ public class AbilityFactoryAttach { if (!mandatory && card.isEquipment() && !targets.isEmpty()) { Card newTarget = (Card) targets.get(0); //don't equip human creatures - if (newTarget.getController().isPlayer(AllZone.getHumanPlayer())) { + if (newTarget.getController().equals(AllZone.getHumanPlayer())) { return false; } diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactoryCounters.java b/src/main/java/forge/card/abilityfactory/AbilityFactoryCounters.java index 1e326859129..654254f7875 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactoryCounters.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactoryCounters.java @@ -409,7 +409,7 @@ public class AbilityFactoryCounters { params.get("Defined"), sa); // Don't activate Curse abilities on my cards and non-curse abilites // on my opponents - if (cards.isEmpty() || !cards.get(0).getController().isPlayer(player)) { + if (cards.isEmpty() || !cards.get(0).getController().equals(player)) { return false; } diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactoryEffect.java b/src/main/java/forge/card/abilityfactory/AbilityFactoryEffect.java index fc0880dddd8..8e3739aed79 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactoryEffect.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactoryEffect.java @@ -29,7 +29,6 @@ import forge.AllZoneUtil; import forge.Card; import forge.CardLists; -import forge.CardPredicates; import forge.Command; import forge.Singletons; import forge.card.cardfactory.CardFactoryUtil; diff --git a/src/main/java/forge/card/cardfactory/CardFactoryInstants.java b/src/main/java/forge/card/cardfactory/CardFactoryInstants.java index 96ba40f07db..bcb43e96379 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryInstants.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryInstants.java @@ -430,13 +430,13 @@ public class CardFactoryInstants { final Card enchanting = c.getEnchantingCard(); if (enchanting != null) { - if ((enchanting.isAttacking() && enchanting.getController().isPlayer(you.getOpponent())) - || enchanting.getController().isPlayer(you)) { + if ((enchanting.isAttacking() && enchanting.getController().equals(you.getOpponent())) + || enchanting.getController().equals(you)) { return true; } } - return (c.getOwner().isPlayer(you) && c.getController().isPlayer(you)); + return (c.getOwner().equals(you) && c.getController().equals(you)); } }); for (final Card c : toReturn) { diff --git a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java index a2eb09e7362..313bcba04ba 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java @@ -29,6 +29,7 @@ import com.esotericsoftware.minlog.Log; import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; import forge.AllZone; import forge.AllZoneUtil; @@ -1878,15 +1879,15 @@ public class CardFactoryUtil { */ public static List getActivateablesFromZone(final PlayerZone zone, final Player activator) { - List cl = new ArrayList(zone.getCards()); + Iterable cl = zone.getCards(); // Only check the top card of the library - if (zone.is(ZoneType.Library) && !cl.isEmpty()) { - cl = CardLists.createCardList(cl.get(0)); + if (zone.is(ZoneType.Library)) { + cl = Iterables.limit(cl, 1); } - if (activator.isPlayer(zone.getPlayer())) { - cl = CardLists.filter(cl, new Predicate() { + if (activator.equals(zone.getPlayer())) { + cl = Iterables.filter(cl, new Predicate() { @Override public boolean apply(final Card c) { if (zone.is(ZoneType.Graveyard) && c.hasUnearth()) { @@ -1920,7 +1921,7 @@ public class CardFactoryUtil { }); } else { // the activator is not the owner of the card - cl = CardLists.filter(cl, new Predicate() { + cl = Iterables.filter(cl, new Predicate() { @Override public boolean apply(final Card c) { @@ -1932,7 +1933,7 @@ public class CardFactoryUtil { } }); } - return cl; + return Lists.newArrayList(cl); } /** diff --git a/src/main/java/forge/card/spellability/SpellAbilityRestriction.java b/src/main/java/forge/card/spellability/SpellAbilityRestriction.java index 6f670627526..c900374dd7d 100644 --- a/src/main/java/forge/card/spellability/SpellAbilityRestriction.java +++ b/src/main/java/forge/card/spellability/SpellAbilityRestriction.java @@ -195,10 +195,10 @@ public class SpellAbilityRestriction extends SpellAbilityVariables { if (!sa.isSpell() || cardZone.is(ZoneType.Battlefield) || !this.getZone().equals(ZoneType.Hand)) { return false; } - if (c.hasKeyword("May be played") && activator.isPlayer(c.getController())) { + if (c.hasKeyword("May be played") && activator.equals(c.getController())) { return true; } - if (c.hasKeyword("May be played by your opponent") && !activator.isPlayer(c.getController())) { + if (c.hasKeyword("May be played by your opponent") && !activator.equals(c.getController())) { return true; } return false; diff --git a/src/main/java/forge/game/phase/CombatUtil.java b/src/main/java/forge/game/phase/CombatUtil.java index fcc51449532..61b6679844c 100644 --- a/src/main/java/forge/game/phase/CombatUtil.java +++ b/src/main/java/forge/game/phase/CombatUtil.java @@ -794,7 +794,7 @@ public class CombatUtil { return false; } if (keyword.equals("No more than two creatures can attack you each combat.") && cntAttackers > 1 - && card.getController().getOpponent().isPlayer(c.getController())) { + && card.getController().getOpponent().equals(c.getController())) { return false; } if (keyword.equals("CARDNAME can only attack alone.") && combat.isAttacking(card)) { diff --git a/src/main/java/forge/game/phase/PhaseHandler.java b/src/main/java/forge/game/phase/PhaseHandler.java index 8c7f5c3bfe5..5cf1f6df8e7 100644 --- a/src/main/java/forge/game/phase/PhaseHandler.java +++ b/src/main/java/forge/game/phase/PhaseHandler.java @@ -83,7 +83,7 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable { * @return a boolean. */ public final boolean isPlayerTurn(final Player player) { - return this.playerTurn.isPlayer(player); + return this.playerTurn.equals(player); } /** @@ -691,7 +691,7 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable { * @return a boolean. */ public final synchronized boolean is(final PhaseType phase, final Player player) { - return this.getPhase() == phase && this.getPlayerTurn().isPlayer(player); + return this.getPhase() == phase && this.getPlayerTurn().equals(player); } /** diff --git a/src/main/java/forge/game/player/ComputerUtil.java b/src/main/java/forge/game/player/ComputerUtil.java index 44caad9e47d..c80a21fabc0 100644 --- a/src/main/java/forge/game/player/ComputerUtil.java +++ b/src/main/java/forge/game/player/ComputerUtil.java @@ -2066,7 +2066,7 @@ public class ComputerUtil { // TODO: choose "worst" controlled enchanting Aura for (int j = 0; j < auras.size(); j++) { final Card aura = auras.get(j); - if (aura.getController().isPlayer(c.getController()) && list.contains(aura)) { + if (aura.getController().equals(c.getController()) && list.contains(aura)) { c = aura; break; } diff --git a/src/main/java/forge/game/player/Player.java b/src/main/java/forge/game/player/Player.java index 6ecbac0adc6..254e19c0a64 100644 --- a/src/main/java/forge/game/player/Player.java +++ b/src/main/java/forge/game/player/Player.java @@ -241,19 +241,6 @@ public abstract class Player extends GameEntity implements Comparable { */ public abstract boolean isComputer(); - /** - *

- * isPlayer. - *

- * - * @param p1 - * a {@link forge.game.player.Player} object. - * @return a boolean. - */ - public final boolean isPlayer(final Player p1) { - return (p1 != null) && p1.getName().equals(this.getName()); - } - /** *

* getOpponent. @@ -1067,7 +1054,7 @@ public abstract class Player extends GameEntity implements Comparable { */ @Override public final boolean canBeTargetedBy(final SpellAbility sa) { - if (this.hasKeyword("Shroud") || (!this.isPlayer(sa.getActivatingPlayer()) && this.hasKeyword("Hexproof")) + if (this.hasKeyword("Shroud") || (!this.equals(sa.getActivatingPlayer()) && this.hasKeyword("Hexproof")) || this.hasProtectionFrom(sa.getSourceCard())) { return false; } diff --git a/src/main/java/forge/game/zone/DefaultPlayerZone.java b/src/main/java/forge/game/zone/DefaultPlayerZone.java index 27559659b63..72dd8937aee 100644 --- a/src/main/java/forge/game/zone/DefaultPlayerZone.java +++ b/src/main/java/forge/game/zone/DefaultPlayerZone.java @@ -283,7 +283,7 @@ public class DefaultPlayerZone extends PlayerZone implements java.io.Serializabl */ @Override public final boolean is(final ZoneType zone, final Player player) { - return (zone.equals(this.zoneName) && this.player.isPlayer(player)); + return (zone.equals(this.zoneName) && this.player.equals(player)); } /** diff --git a/src/main/java/forge/game/zone/MagicStack.java b/src/main/java/forge/game/zone/MagicStack.java index 9be94f9c246..f177db53745 100644 --- a/src/main/java/forge/game/zone/MagicStack.java +++ b/src/main/java/forge/game/zone/MagicStack.java @@ -984,7 +984,7 @@ public class MagicStack extends MyObservable { } else if (source.hasKeyword("Rebound") && source.getCastFrom() == ZoneType.Hand && AllZone.getZoneOf(source).is(ZoneType.Stack) - && source.getOwner().isPlayer(source.getController())) //"If you cast this spell from your hand" + && source.getOwner().equals(source.getController())) //"If you cast this spell from your hand" { //Move rebounding card to exile diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java index c111bba3b63..d742f0b02c6 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java @@ -20,7 +20,6 @@ package forge.gui.deckeditor.controllers; import javax.swing.JOptionPane; import javax.swing.SwingUtilities; -import forge.AllZone; import forge.Singletons; import forge.control.FControl; import forge.deck.Deck;