From cb163eaeb4b97bd4b56ed1a2ff281cc3d7a22837 Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Sat, 23 Feb 2013 06:59:49 +0000 Subject: [PATCH] Rarity is going to be displayed properly on any side of card, including clones --- src/main/java/forge/Card.java | 15 +++++------ .../java/forge/card/CardCharacteristics.java | 27 ++++++++++++++++++- .../forge/card/cardfactory/CardFactory.java | 9 ++++++- .../java/forge/game/MatchStartHelper.java | 1 - src/main/java/forge/quest/QuestUtil.java | 1 + 5 files changed, 42 insertions(+), 11 deletions(-) diff --git a/src/main/java/forge/Card.java b/src/main/java/forge/Card.java index 48a44832f3c..f2afd3517ce 100644 --- a/src/main/java/forge/Card.java +++ b/src/main/java/forge/Card.java @@ -35,7 +35,6 @@ import com.google.common.collect.Iterables; import forge.CardPredicates.Presets; import forge.card.CardCharacteristics; -import forge.card.CardEdition; import forge.card.CardRarity; import forge.card.CardRules; import forge.card.ability.AbilityUtils; @@ -66,7 +65,6 @@ import forge.game.phase.Combat; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.item.CardDb; -import forge.item.IPaperCard; import forge.util.Expressions; /** @@ -189,9 +187,6 @@ public class Card extends GameEntity implements Comparable { private int semiPermanentDefenseBoost = 0; private int randomPicture = 0; - private CardRarity rarity = CardRarity.Unknown; - private String curSetCode = CardEdition.UNKNOWN.getCode(); - private int xManaCostPaid = 0; private int multiKickerMagnitude = 0; @@ -8417,7 +8412,7 @@ public class Card extends GameEntity implements Comparable { * a {@link java.lang.String} object. */ public final void setCurSetCode(final String setCode) { - curSetCode = setCode; + this.getCharacteristics().setCurSetCode(setCode); } /** @@ -8428,7 +8423,7 @@ public class Card extends GameEntity implements Comparable { * @return a {@link java.lang.String} object. */ public final String getCurSetCode() { - return curSetCode; + return this.getCharacteristics().getCurSetCode(); } /** @@ -8439,9 +8434,13 @@ public class Card extends GameEntity implements Comparable { * @return a {@link java.lang.String} object. */ public final CardRarity getRarity() { - return rarity; + return this.getCharacteristics().getRarity(); } + public final void setRarity(CardRarity r) { + this.getCharacteristics().setRarity(r); + } + /** *

* getMostRecentSet. diff --git a/src/main/java/forge/card/CardCharacteristics.java b/src/main/java/forge/card/CardCharacteristics.java index 52c1bee575e..759b78183c6 100644 --- a/src/main/java/forge/card/CardCharacteristics.java +++ b/src/main/java/forge/card/CardCharacteristics.java @@ -44,8 +44,8 @@ public class CardCharacteristics { private int baseDefense = 0; private ArrayList intrinsicKeyword = new ArrayList(); private final ArrayList spellAbility = new ArrayList(); - private ArrayList intrinsicAbility = new ArrayList(); private final List manaAbility = new ArrayList(); + private ArrayList intrinsicAbility = new ArrayList(); private ArrayList triggers = new ArrayList(); private ArrayList replacementEffects = new ArrayList(); private ArrayList staticAbilities = new ArrayList(); @@ -53,6 +53,9 @@ public class CardCharacteristics { private String imageFilename = ""; private Map sVars = new TreeMap(); + private CardRarity rarity = CardRarity.Unknown; + private String curSetCode = CardEdition.UNKNOWN.getCode(); + /** * Gets the name. * @@ -406,6 +409,8 @@ public class CardCharacteristics { this.staticAbilityStrings = new ArrayList(source.getStaticAbilityStrings()); // String imageFilename = copy reference this.imageFilename = source.getImageFilename(); + this.rarity = source.rarity; + this.curSetCode = source.curSetCode; // Map sVars this.sVars = new TreeMap(source.getSVars()); this.replacementEffects = new ArrayList(); @@ -414,4 +419,24 @@ public class CardCharacteristics { } } + + public CardRarity getRarity() { + return rarity; + } + + + public void setRarity(CardRarity rarity) { + this.rarity = rarity; + } + + + public String getCurSetCode() { + return curSetCode; + } + + + public void setCurSetCode(String curSetCode) { + this.curSetCode = curSetCode; + } + } diff --git a/src/main/java/forge/card/cardfactory/CardFactory.java b/src/main/java/forge/card/cardfactory/CardFactory.java index 0ae370558d2..48f0077a621 100644 --- a/src/main/java/forge/card/cardfactory/CardFactory.java +++ b/src/main/java/forge/card/cardfactory/CardFactory.java @@ -241,6 +241,9 @@ public class CardFactory { buildAbilities(c); c.setCurSetCode(cp.getEdition()); + c.setRarity(cp.getRarity()); + + c.setRandomPicture(cp.getArtIndex() + 1); String originalPicture = cp.getImageFilename(); //System.out.println(c.getName() + " -> " + originalPicture); @@ -257,11 +260,15 @@ public class CardFactory { if (c.getRules().getSplitType() == CardSplitType.Split) { c.setState(CardCharacteristicName.LeftSplit); c.setImageFilename(originalPicture); + c.setCurSetCode(cp.getEdition()); + c.setRarity(cp.getRarity()); c.setState(CardCharacteristicName.RightSplit); c.setImageFilename(originalPicture); } else { c.setImageFilename(CardUtil.buildFilename(c)); } + c.setCurSetCode(cp.getEdition()); + c.setRarity(cp.getRarity()); c.setState(CardCharacteristicName.Original); } return c; @@ -371,7 +378,7 @@ public class CardFactory { List coreTypes = face.getType().getTypesBeforeDash(); coreTypes.addAll(face.getType().getSubTypes()); c.setType(coreTypes); - + // What a perverted color code we have! CardColor col1 = new CardColor(c); col1.addToCardColor(Color.fromColorSet(face.getColor())); diff --git a/src/main/java/forge/game/MatchStartHelper.java b/src/main/java/forge/game/MatchStartHelper.java index 0f3a0d3894b..add9e4f39e8 100644 --- a/src/main/java/forge/game/MatchStartHelper.java +++ b/src/main/java/forge/game/MatchStartHelper.java @@ -27,7 +27,6 @@ public class MatchStartHelper { public void addVanguardPlayer(final LobbyPlayer player, final Deck deck, final CardPrinted avatar) { PlayerStartConditions start = new PlayerStartConditions(deck); - start.setStartingLife(start.getStartingLife() + avatar.getRules().getLife()); start.setStartingHand(start.getStartingHand() + avatar.getRules().getHand()); start.setCardsInCommand(Arrays.asList(avatar)); diff --git a/src/main/java/forge/quest/QuestUtil.java b/src/main/java/forge/quest/QuestUtil.java index 4262dd6624b..d787962e38f 100644 --- a/src/main/java/forge/quest/QuestUtil.java +++ b/src/main/java/forge/quest/QuestUtil.java @@ -142,6 +142,7 @@ public class QuestUtil { script.add("Colors:" + properties[1]); script.add("PT:"+ properties[2] + "/" + properties[3]); script.add("Types:" + properties[5].replace(';', ' ')); + script.add("Oracle:"); // tokens don't have texts yet // c.setManaCost(properties[1]); String fileName = properties[1] + " " + properties[2] + " " + properties[3] + " " + properties[4]; final CardToken c = new CardToken(CardRulesReader.parseSingleCard(script), CardEdition.UNKNOWN.getCode(), fileName);