diff --git a/forge-game/src/main/java/forge/game/zone/PlayerZone.java b/forge-game/src/main/java/forge/game/zone/PlayerZone.java index 16782847bf3..aaa6e869382 100644 --- a/forge-game/src/main/java/forge/game/zone/PlayerZone.java +++ b/forge-game/src/main/java/forge/game/zone/PlayerZone.java @@ -36,12 +36,13 @@ import java.util.List; * @version $Id$ */ public class PlayerZone extends Zone { + /** Constant serialVersionUID=-5687652485777639176L. */ + private static final long serialVersionUID = -5687652485777639176L; // the this is not the owner of the card private final class AlienCardsActivationFilter implements Predicate { @Override public boolean apply(final Card c) { - if (c.hasStartOfKeyword("May be played by your opponent") || c.hasKeyword("Your opponent may look at this card.")) { return true; @@ -78,59 +79,36 @@ public class PlayerZone extends Zone { } } - /** Constant serialVersionUID=-5687652485777639176L. */ - private static final long serialVersionUID = -5687652485777639176L; - - private final Player player; - - public PlayerZone(final ZoneType zone, final Player inPlayer) { super(zone, inPlayer.getGame()); this.player = inPlayer; } - /** - *

- * Getter for the field player. - *

- * - * @return a {@link forge.game.player.Player} object. - */ public final Player getPlayer() { return this.player; } - /** - *

- * toString. - *

- * - * @return a {@link java.lang.String} object. - */ @Override public final String toString() { - return String.format("%s %s", Lang.getPossesive(this.player.toString()), this.zoneType); + return String.format("%s %s", Lang.getPossesive(this.player.toString()), this.zoneType); } public List getCardsPlayerCanActivate(Player who) { - Iterable cl = roCardList; // copy to new AL won't help here - + // Only check the top card of the library if (is(ZoneType.Library)) { cl = Iterables.limit(cl, 1); } - + boolean checkingForOwner = who == this.player; - if (checkingForOwner && (this.is(ZoneType.Battlefield) || this.is(ZoneType.Hand))) + if (checkingForOwner && (this.is(ZoneType.Battlefield) || this.is(ZoneType.Hand))) { return roCardList; - + } final Predicate filterPredicate = checkingForOwner ? new OwnCardsActivationFilter() : new AlienCardsActivationFilter(); return Lists.newArrayList(cl = Iterables.filter(cl, filterPredicate)); } - - } diff --git a/forge-game/src/main/java/forge/game/zone/Zone.java b/forge-game/src/main/java/forge/game/zone/Zone.java index 444c1a0f178..3ee3f369dfc 100644 --- a/forge-game/src/main/java/forge/game/zone/Zone.java +++ b/forge-game/src/main/java/forge/game/zone/Zone.java @@ -43,10 +43,8 @@ import java.util.concurrent.CopyOnWriteArrayList; * @version $Id: PlayerZone.java 17582 2012-10-19 22:39:09Z Max mtg $ */ public class Zone implements java.io.Serializable, Iterable { - /** Constant serialVersionUID=-5687652485777639176L. */ private static final long serialVersionUID = -5687652485777639176L; - /** The cards. */ private final transient List cardList = new CopyOnWriteArrayList(); protected final transient List roCardList; protected final ZoneType zoneType; @@ -118,8 +116,6 @@ public class Zone implements java.io.Serializable, Iterable { return zone == zoneType; } - // PlayerZone should override it with a correct implementation - public final boolean is(final ZoneType zone, final Player player) { return zoneType == zone && player == getPlayer(); } @@ -137,76 +133,35 @@ public class Zone implements java.io.Serializable, Iterable { } public final List getCards() { - //System.out.println(zoneName + ": " + Integer.toHexString(System.identityHashCode(roCardList))); return getCards(true); } public List getCards(final boolean filter) { - // Non-Battlefield PlayerZones don't care about the filter - return roCardList; + return roCardList; // Non-Battlefield PlayerZones don't care about the filter } - /* - * (non-Javadoc) - * - * @see forge.IPlayerZone#isEmpty() - */ - public final boolean isEmpty() { return cardList.isEmpty(); } - /** - *

- * Getter for the field cardsAddedThisTurn. - *

- */ public final MapOfLists getCardsAddedThisTurn() { return cardsAddedThisTurn; } - /** - *

- * Getter for the field cardsAddedLastTurn. - *

- */ public final MapOfLists getCardsAddedLastTurn() { return cardsAddedLastTurn; } - /** - *

- * Getter for the field cardsAddedThisTurn. - *

- * - * @param origin - * a {@link java.lang.String} object. - * @return a {@link forge.CardList} object. - */ public final List getCardsAddedThisTurn(final ZoneType origin) { //System.out.print("Request cards put into " + getZoneType() + " from " + origin + ".Amount: "); return getCardsAdded(cardsAddedThisTurn, origin); } - /** - *

- * Getter for the field getcardsAddedLastTurn. - *

- * - * @param origin - * a {@link java.lang.String} object. - * @return a {@link forge.CardList} object. - */ public final List getCardsAddedLastTurn(final ZoneType origin) { //System.out.print("Last turn - Request cards put into " + getZoneType() + " from " + origin + ".Amount: "); return getCardsAdded(cardsAddedLastTurn, origin); } - - /** - *

- * getCardsAdded. - *

- */ + private final List getCardsAdded(final MapOfLists cardsAdded, final ZoneType origin) { if (origin != null) { Collection cards = cardsAdded.get(origin); @@ -221,11 +176,6 @@ public class Zone implements java.io.Serializable, Iterable { return ret; } - /** - *

- * resetCardsAddedThisTurn. - *

- */ public final void resetCardsAddedThisTurn() { cardsAddedLastTurn.clear(); for (Entry> entry : cardsAddedThisTurn.entrySet()) { @@ -234,26 +184,15 @@ public class Zone implements java.io.Serializable, Iterable { cardsAddedThisTurn.clear(); } - /* (non-Javadoc) - * @see java.lang.Iterable#iterator() - */ @Override public Iterator iterator() { return roCardList.iterator(); } - public void shuffle() - { + public void shuffle() { Collections.shuffle(cardList); } - /** - *

- * toString. - *

- * - * @return a {@link java.lang.String} object. - */ @Override public String toString() { return zoneType.toString();