From c3c5a592f23d9a2e389392e1b7beeb9f38a258df Mon Sep 17 00:00:00 2001 From: Agetian Date: Wed, 24 Jun 2015 05:10:03 +0000 Subject: [PATCH] - Added a trackable property EncodedCards for Cipher. - Added text information for encoded cards to the card detail box. - Fixed imports. --- .../src/main/java/forge/game/card/Card.java | 18 ++++-------------- .../main/java/forge/game/card/CardView.java | 4 ++++ .../forge/trackable/TrackableProperty.java | 2 +- .../main/java/forge/card/CardDetailUtil.java | 8 ++++++++ 4 files changed, 17 insertions(+), 15 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index f7a4758eae2..997b48f1557 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -720,26 +720,16 @@ public class Card extends GameEntity implements Comparable { return FCollection.hasElement(encodedCards, c); } public final void addEncodedCard(final Card c) { - if (encodedCards == null) { - encodedCards = new CardCollection(); - } - encodedCards.add(c); + encodedCards = view.addCard(encodedCards, c, TrackableProperty.EncodedCards); } public final void addEncodedCards(final Iterable cards) { - if (encodedCards == null) { - encodedCards = new CardCollection(); - } - encodedCards.addAll(cards); + encodedCards = view.addCards(encodedCards, cards, TrackableProperty.EncodedCards); } public final void removeEncodedCard(final Card c) { - if (encodedCards.remove(c)) { - if (encodedCards.isEmpty()) { - encodedCards = null; - } - } + encodedCards = view.removeCard(encodedCards, c, TrackableProperty.EncodedCards); } public final void clearEncodedCards() { - encodedCards = null; + encodedCards = view.clearCards(encodedCards, TrackableProperty.EncodedCards); } public final String getFlipResult(final Player flipper) { diff --git a/forge-game/src/main/java/forge/game/card/CardView.java b/forge-game/src/main/java/forge/game/card/CardView.java index 01758ca7623..692a69d734b 100644 --- a/forge-game/src/main/java/forge/game/card/CardView.java +++ b/forge-game/src/main/java/forge/game/card/CardView.java @@ -452,6 +452,10 @@ public class CardView extends GameEntityView { return getEquippedBy() != null; //isEmpty check not needed since we won't keep an empty collection around } + public FCollectionView getEncodedCards() { + return get(TrackableProperty.EncodedCards); + } + public GameEntityView getEnchanting() { return get(TrackableProperty.Enchanting); } diff --git a/forge-game/src/main/java/forge/trackable/TrackableProperty.java b/forge-game/src/main/java/forge/trackable/TrackableProperty.java index 91b61004bab..3e0278c0485 100644 --- a/forge-game/src/main/java/forge/trackable/TrackableProperty.java +++ b/forge-game/src/main/java/forge/trackable/TrackableProperty.java @@ -5,7 +5,6 @@ import forge.game.Direction; import forge.game.GameType; import forge.game.phase.PhaseType; import forge.game.zone.ZoneType; -import forge.trackable.TrackableTypes; import forge.trackable.TrackableTypes.TrackableType; public enum TrackableProperty { @@ -45,6 +44,7 @@ public enum TrackableProperty { Enchanting(TrackableTypes.GameEntityViewType), Fortifying(TrackableTypes.CardViewType), FortifiedBy(TrackableTypes.CardViewCollectionType), + EncodedCards(TrackableTypes.CardViewCollectionType), GainControlTargets(TrackableTypes.CardViewCollectionType), CloneOrigin(TrackableTypes.CardViewType), Cloner(TrackableTypes.StringType), diff --git a/forge-gui/src/main/java/forge/card/CardDetailUtil.java b/forge-gui/src/main/java/forge/card/CardDetailUtil.java index cda0733e0b3..a23d71deab1 100644 --- a/forge-gui/src/main/java/forge/card/CardDetailUtil.java +++ b/forge-gui/src/main/java/forge/card/CardDetailUtil.java @@ -557,6 +557,14 @@ public class CardDetailUtil { area.append("Haunting " + card.getHaunting()); } + // Cipher + if (card.getEncodedCards() != null) { + if (area.length() != 0) { + area.append("\n"); + } + area.append("Encoded: " + card.getEncodedCards()); + } + // must block if (card.getMustBlockCards() != null) { if (area.length() != 0) {