mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
* restores token images
Card: dropped imageName field (which was commonly mixed up with imageFileName) Starting cards for quest and challenges no longer use functions (CardToken helps a lot) Quest challenges code: Token parsing remake (to produce CardRules instance and wrap it into CardToken) some utility functions were moved closer to usage points
This commit is contained in:
@@ -3524,32 +3524,6 @@ public class Card extends GameEntity implements Comparable<Card> {
|
||||
return this.sickness && this.isCreature() && !this.hasKeyword("Haste");
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Setter for the field <code>imageName</code>.
|
||||
* </p>
|
||||
*
|
||||
* @param s
|
||||
* a {@link java.lang.String} object.
|
||||
*/
|
||||
public final void setImageName(final String s) {
|
||||
this.getCharacteristics().setImageName(s);
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Getter for the field <code>imageName</code>.
|
||||
* </p>
|
||||
*
|
||||
* @return a {@link java.lang.String} object.
|
||||
*/
|
||||
public final String getImageName() {
|
||||
if (!this.getCharacteristics().getImageName().equals("")) {
|
||||
return this.getCharacteristics().getImageName();
|
||||
}
|
||||
return this.getName();
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Getter for the field <code>owner</code>.
|
||||
|
||||
@@ -477,7 +477,7 @@ public final class CardUtil {
|
||||
ret.setName("");
|
||||
ret.setType(types);
|
||||
|
||||
ret.setImageName(NewConstants.MORPH_IMAGE_FILE_NAME);
|
||||
ret.setImageFilename(NewConstants.MORPH_IMAGE_FILE_NAME);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -144,7 +144,7 @@ public class ImageCache {
|
||||
private static String getKey(final Card card) {
|
||||
|
||||
if ((card.isToken() && !card.isCopiedToken()) || card.isFaceDown()) {
|
||||
return ImageCache.TOKEN + GuiDisplayUtil.cleanString(card.getImageName());
|
||||
return ImageCache.TOKEN + GuiDisplayUtil.cleanString(card.getImageFilename());
|
||||
}
|
||||
|
||||
return card.getImageFilename(); // key;
|
||||
|
||||
@@ -51,7 +51,6 @@ public class CardCharacteristics {
|
||||
private ArrayList<StaticAbility> staticAbilities = new ArrayList<StaticAbility>();
|
||||
private ArrayList<String> staticAbilityStrings = new ArrayList<String>();
|
||||
private String imageFilename = "";
|
||||
private String imageName = "";
|
||||
private Map<String, String> sVars = new TreeMap<String, String>();
|
||||
|
||||
/**
|
||||
@@ -308,25 +307,6 @@ public class CardCharacteristics {
|
||||
this.staticAbilityStrings = staticAbilityStrings0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the image name.
|
||||
*
|
||||
* @return the imageName
|
||||
*/
|
||||
public String getImageName() {
|
||||
return this.imageName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the image name.
|
||||
*
|
||||
* @param imageName0
|
||||
* the imageName to set
|
||||
*/
|
||||
public void setImageName(final String imageName0) {
|
||||
this.imageName = imageName0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the replacementEffects
|
||||
*/
|
||||
@@ -426,8 +406,6 @@ public class CardCharacteristics {
|
||||
this.staticAbilityStrings = new ArrayList<String>(source.getStaticAbilityStrings());
|
||||
// String imageFilename = copy reference
|
||||
this.imageFilename = source.getImageFilename();
|
||||
// String imageName = "";
|
||||
this.imageName = source.getImageName();
|
||||
// Map<String, String> sVars
|
||||
this.sVars = new TreeMap<String, String>(source.getSVars());
|
||||
this.replacementEffects = new ArrayList<ReplacementEffect>();
|
||||
|
||||
@@ -328,7 +328,7 @@ public class AbilityUtils {
|
||||
}
|
||||
|
||||
if (calcX[0].startsWith("Count")) {
|
||||
return CardFactoryUtil.xCount(card, calcX[1], ability) * multiplier;
|
||||
return AbilityUtils.xCount(card, calcX[1], ability) * multiplier;
|
||||
} else if (calcX[0].startsWith("Number")) {
|
||||
return CardFactoryUtil.xCount(card, svarval) * multiplier;
|
||||
} else if (calcX[0].startsWith("SVar")) {
|
||||
@@ -1196,4 +1196,38 @@ public class AbilityUtils {
|
||||
resolveSubAbilities(sa, usedStack, game);
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Parse non-mana X variables.
|
||||
* </p>
|
||||
*
|
||||
* @param c
|
||||
* a {@link forge.Card} object.
|
||||
* @param s
|
||||
* a {@link java.lang.String} object.
|
||||
* @param sa
|
||||
* a {@link forge.SpellAbility} object.
|
||||
* @return a int.
|
||||
*/
|
||||
public static int xCount(final Card c, final String s, final SpellAbility sa) {
|
||||
|
||||
final String[] l = s.split("/");
|
||||
final String[] m = CardFactoryUtil.parseMath(l);
|
||||
|
||||
final String[] sq;
|
||||
sq = l[0].split("\\.");
|
||||
|
||||
if (sa != null) {
|
||||
// Count$Kicked.<numHB>.<numNotHB>
|
||||
if (sq[0].startsWith("Kicked")) {
|
||||
if (sa.isKicked()) {
|
||||
return CardFactoryUtil.doXMath(Integer.parseInt(sq[1]), m, c); // Kicked
|
||||
} else {
|
||||
return CardFactoryUtil.doXMath(Integer.parseInt(sq[2]), m, c); // not Kicked
|
||||
}
|
||||
}
|
||||
}
|
||||
return CardFactoryUtil.xCount(c, s);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -499,8 +499,8 @@ public class AttachAi extends SpellAbilityAi {
|
||||
continue;
|
||||
}
|
||||
if ((affected.contains(stCheck) || affected.contains("AttachedBy"))) {
|
||||
totToughness += CardFactoryUtil.parseSVar(attachSource, stabMap.get("AddToughness"));
|
||||
totPower += CardFactoryUtil.parseSVar(attachSource, stabMap.get("AddPower"));
|
||||
totToughness += AttachAi.parseSVar(attachSource, stabMap.get("AddToughness"));
|
||||
totPower += AttachAi.parseSVar(attachSource, stabMap.get("AddPower"));
|
||||
|
||||
String kws = stabMap.get("AddKeyword");
|
||||
if (kws != null) {
|
||||
@@ -611,6 +611,30 @@ public class AttachAi extends SpellAbilityAi {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* parseSVar TODO - flesh out javadoc for this method.
|
||||
*
|
||||
* @param hostCard
|
||||
* the Card with the SVar on it
|
||||
* @param amount
|
||||
* a String
|
||||
* @return the calculated number
|
||||
*/
|
||||
public static int parseSVar(final Card hostCard, final String amount) {
|
||||
int num = 0;
|
||||
if (amount == null) {
|
||||
return num;
|
||||
}
|
||||
|
||||
try {
|
||||
num = Integer.valueOf(amount);
|
||||
} catch (final NumberFormatException e) {
|
||||
num = CardFactoryUtil.xCount(hostCard, hostCard.getSVar(amount).split("\\$")[1]);
|
||||
}
|
||||
|
||||
return num;
|
||||
}
|
||||
|
||||
/**
|
||||
* Attach preference.
|
||||
*
|
||||
@@ -720,8 +744,8 @@ public class AttachAi extends SpellAbilityAi {
|
||||
continue;
|
||||
}
|
||||
if ((affected.contains(stCheck) || affected.contains("AttachedBy"))) {
|
||||
totToughness += CardFactoryUtil.parseSVar(attachSource, stabMap.get("AddToughness"));
|
||||
totPower += CardFactoryUtil.parseSVar(attachSource, stabMap.get("AddPower"));
|
||||
totToughness += AttachAi.parseSVar(attachSource, stabMap.get("AddToughness"));
|
||||
totPower += AttachAi.parseSVar(attachSource, stabMap.get("AddPower"));
|
||||
|
||||
grantingAbilities |= stabMap.containsKey("AddAbility");
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ public class CopyPermanentEffect extends SpellAbilityEffect {
|
||||
copy = CardFactoryUtil.copyStats(c);
|
||||
|
||||
copy.setName(c.getName());
|
||||
copy.setImageName(c.getImageName());
|
||||
copy.setImageFilename(c.getImageFilename());
|
||||
|
||||
copy.setOwner(controller);
|
||||
copy.addController(controller);
|
||||
|
||||
@@ -104,13 +104,10 @@ public class EffectEffect extends SpellAbilityEffect {
|
||||
// nuked
|
||||
eff.addController(controller);
|
||||
eff.setOwner(controller);
|
||||
eff.setImageName(hostCard.getImageName());
|
||||
eff.setImageFilename(hostCard.getImageFilename());
|
||||
eff.setColor(hostCard.getColor());
|
||||
eff.setImmutable(true);
|
||||
eff.setEffectSource(hostCard);
|
||||
if (sa.hasParam("Image")) {
|
||||
eff.setImageName(sa.getParam("Image"));
|
||||
}
|
||||
|
||||
// Effects should be Orange or something probably
|
||||
|
||||
|
||||
@@ -234,11 +234,16 @@ public class CardFactory {
|
||||
public final Card getCard(final IPaperCard cp, final Player owner) {
|
||||
|
||||
//System.out.println(cardName);
|
||||
Card c = this.getCard2(cp.getRules(), owner);
|
||||
CardRules cardRules = cp.getRules();
|
||||
final Card c = readCard(cardRules);
|
||||
c.setRules(cardRules);
|
||||
c.setOwner(owner);
|
||||
buildAbilities(c);
|
||||
|
||||
c.setCurSetCode(cp.getEdition());
|
||||
c.setRandomPicture(cp.getArtIndex() + 1);
|
||||
String originalPicture = cp.getImageFilename();
|
||||
//System.out.println(c.getName() + " -> " + originalPicture);
|
||||
c.setImageFilename(originalPicture);
|
||||
c.setToken(cp.isToken());
|
||||
|
||||
@@ -263,14 +268,6 @@ public class CardFactory {
|
||||
|
||||
}
|
||||
|
||||
protected Card getCard2(final CardRules cardRules, final Player owner) {
|
||||
final Card card = readCard(cardRules);
|
||||
card.setRules(cardRules);
|
||||
card.setOwner(owner);
|
||||
buildAbilities(card);
|
||||
return card;
|
||||
}
|
||||
|
||||
private static void buildAbilities(final Card card) {
|
||||
final String cardName = card.getName();
|
||||
|
||||
@@ -319,7 +316,7 @@ public class CardFactory {
|
||||
|
||||
|
||||
|
||||
public static Card readCard(final CardRules rules) {
|
||||
private static Card readCard(final CardRules rules) {
|
||||
|
||||
final Card card = new Card();
|
||||
|
||||
|
||||
@@ -1947,64 +1947,6 @@ public class CardFactoryUtil {
|
||||
return CardFactoryUtil.doXMath(n, m, source);
|
||||
}
|
||||
|
||||
/**
|
||||
* parseSVar TODO - flesh out javadoc for this method.
|
||||
*
|
||||
* @param hostCard
|
||||
* the Card with the SVar on it
|
||||
* @param amount
|
||||
* a String
|
||||
* @return the calculated number
|
||||
*/
|
||||
public static int parseSVar(final Card hostCard, final String amount) {
|
||||
int num = 0;
|
||||
if (amount == null) {
|
||||
return num;
|
||||
}
|
||||
|
||||
try {
|
||||
num = Integer.valueOf(amount);
|
||||
} catch (final NumberFormatException e) {
|
||||
num = CardFactoryUtil.xCount(hostCard, hostCard.getSVar(amount).split("\\$")[1]);
|
||||
}
|
||||
|
||||
return num;
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Parse non-mana X variables.
|
||||
* </p>
|
||||
*
|
||||
* @param c
|
||||
* a {@link forge.Card} object.
|
||||
* @param s
|
||||
* a {@link java.lang.String} object.
|
||||
* @param sa
|
||||
* a {@link forge.SpellAbility} object.
|
||||
* @return a int.
|
||||
*/
|
||||
public static int xCount(final Card c, final String s, final SpellAbility sa) {
|
||||
|
||||
final String[] l = s.split("/");
|
||||
final String[] m = CardFactoryUtil.parseMath(l);
|
||||
|
||||
final String[] sq;
|
||||
sq = l[0].split("\\.");
|
||||
|
||||
if (sa != null) {
|
||||
// Count$Kicked.<numHB>.<numNotHB>
|
||||
if (sq[0].startsWith("Kicked")) {
|
||||
if (sa.isKicked()) {
|
||||
return CardFactoryUtil.doXMath(Integer.parseInt(sq[1]), m, c); // Kicked
|
||||
} else {
|
||||
return CardFactoryUtil.doXMath(Integer.parseInt(sq[2]), m, c); // not Kicked
|
||||
}
|
||||
}
|
||||
}
|
||||
return xCount(c, s);
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Parse non-mana X variables.
|
||||
@@ -3295,7 +3237,7 @@ public class CardFactoryUtil {
|
||||
final List<Card> list = new ArrayList<Card>();
|
||||
final Card c = new Card();
|
||||
c.setName(name);
|
||||
c.setImageName(imageName);
|
||||
c.setImageFilename(imageName);
|
||||
|
||||
// TODO - most tokens mana cost is 0, this needs to be fixed
|
||||
// c.setManaCost(manaCost);
|
||||
@@ -3356,7 +3298,7 @@ public class CardFactoryUtil {
|
||||
final List<String> kal = thisToken.getIntrinsicKeyword();
|
||||
final String[] tokenKeywords = new String[kal.size()];
|
||||
kal.toArray(tokenKeywords);
|
||||
final List<Card> tokens = CardFactoryUtil.makeToken(thisToken.getName(), thisToken.getImageName(),
|
||||
final List<Card> tokens = CardFactoryUtil.makeToken(thisToken.getName(), thisToken.getImageFilename(),
|
||||
thisToken.getController(), thisToken.getManaCost().toString(), tokenTypes, thisToken.getBaseAttack(),
|
||||
thisToken.getBaseDefense(), tokenKeywords);
|
||||
|
||||
@@ -3607,7 +3549,6 @@ public class CardFactoryUtil {
|
||||
to.setSVars(from.getSVars());
|
||||
to.setIntrinsicAbilities(from.getIntrinsicAbilities());
|
||||
|
||||
to.setImageName(from.getImageName());
|
||||
to.setImageFilename(from.getImageFilename());
|
||||
to.setTriggers(from.getTriggers());
|
||||
to.setReplacementEffects(from.getReplacementEffects());
|
||||
@@ -4222,7 +4163,6 @@ public class CardFactoryUtil {
|
||||
// play it gets nuked
|
||||
eff.addController(card.getController());
|
||||
eff.setOwner(card.getController());
|
||||
eff.setImageName(card.getImageName());
|
||||
eff.setColor(card.getColor());
|
||||
eff.setImmutable(true);
|
||||
eff.setEffectSource(card);
|
||||
|
||||
@@ -221,10 +221,12 @@ public class GameNew {
|
||||
return myRemovedAnteCards;
|
||||
}
|
||||
|
||||
private static void putCardsOnBattlefield(Player player, Iterable<Card> cards) {
|
||||
private static void putCardsOnBattlefield(Player player, Iterable<? extends IPaperCard> cards) {
|
||||
PlayerZone bf = player.getZone(ZoneType.Battlefield);
|
||||
if (cards != null) {
|
||||
for (final Card c : cards) {
|
||||
for (final IPaperCard cp : cards) {
|
||||
Card c = cp.toForgeCard(player);
|
||||
c.setOwner(player);
|
||||
c.addController(player);
|
||||
bf.add(c, false);
|
||||
c.setSickness(true);
|
||||
|
||||
@@ -3,12 +3,10 @@ package forge.game;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
|
||||
import forge.Card;
|
||||
import forge.deck.Deck;
|
||||
import forge.game.player.Player;
|
||||
import forge.item.CardPrinted;
|
||||
import forge.item.IPaperCard;
|
||||
|
||||
|
||||
public class PlayerStartConditions {
|
||||
@@ -18,9 +16,9 @@ public class PlayerStartConditions {
|
||||
private static final Iterable<CardPrinted> EmptyList = Collections.unmodifiableList(new ArrayList<CardPrinted>());
|
||||
private int startingLife = 20;
|
||||
private int startingHand = 7;
|
||||
private Function<Player, Iterable<Card>> cardsOnBattlefield = null;
|
||||
private Iterable<CardPrinted> cardsInCommand = null;
|
||||
private Iterable<CardPrinted> schemes = null;
|
||||
private Iterable<IPaperCard> cardsOnBattlefield = null;
|
||||
private Iterable<? extends IPaperCard> cardsInCommand = null;
|
||||
private Iterable<? extends IPaperCard> schemes = null;
|
||||
private Iterable<CardPrinted> planes = null;
|
||||
|
||||
public PlayerStartConditions(Deck deck0) {
|
||||
@@ -44,15 +42,15 @@ public class PlayerStartConditions {
|
||||
public final int getStartingLife() {
|
||||
return startingLife;
|
||||
}
|
||||
public final Iterable<Card> getCardsOnBattlefield(Player p) {
|
||||
return cardsOnBattlefield == null ? null : cardsOnBattlefield.apply(p);
|
||||
public final Iterable<? extends IPaperCard> getCardsOnBattlefield(Player p) {
|
||||
return cardsOnBattlefield == null ? EmptyList : cardsOnBattlefield;
|
||||
}
|
||||
|
||||
public final void setStartingLife(int startingLife) {
|
||||
this.startingLife = startingLife;
|
||||
}
|
||||
|
||||
public final void setCardsOnBattlefield(Function<Player, Iterable<Card>> cardsOnTable) {
|
||||
public final void setCardsOnBattlefield(Iterable<IPaperCard> cardsOnTable) {
|
||||
this.cardsOnBattlefield = cardsOnTable;
|
||||
}
|
||||
|
||||
@@ -73,28 +71,28 @@ public class PlayerStartConditions {
|
||||
/**
|
||||
* @return the cardsInCommand
|
||||
*/
|
||||
public Iterable<CardPrinted> getCardsInCommand(Player p) {
|
||||
public Iterable<? extends IPaperCard> getCardsInCommand(Player p) {
|
||||
return cardsInCommand == null ? EmptyList : cardsInCommand;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param function the cardsInCommand to set
|
||||
*/
|
||||
public void setCardsInCommand(Iterable<CardPrinted> function) {
|
||||
public void setCardsInCommand(Iterable<? extends IPaperCard> function) {
|
||||
this.cardsInCommand = function;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the schemes
|
||||
*/
|
||||
public Iterable<CardPrinted> getSchemes(Player p) {
|
||||
public Iterable<? extends IPaperCard> getSchemes(Player p) {
|
||||
return schemes == null ? EmptyList : schemes;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param schemes0 the schemes to set
|
||||
*/
|
||||
public void setSchemes(Iterable<CardPrinted> s) {
|
||||
public void setSchemes(Iterable<? extends IPaperCard> s) {
|
||||
this.schemes = s;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,8 +11,6 @@ import javax.swing.SwingWorker;
|
||||
|
||||
import org.apache.commons.lang3.tuple.ImmutablePair;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
import forge.Card;
|
||||
import forge.Singletons;
|
||||
import forge.card.CardEdition;
|
||||
import forge.control.FControl;
|
||||
@@ -21,7 +19,6 @@ import forge.game.GameType;
|
||||
import forge.game.MatchStartHelper;
|
||||
import forge.game.PlayerStartConditions;
|
||||
import forge.game.player.LobbyPlayer;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.player.PlayerType;
|
||||
import forge.gui.GuiChoose;
|
||||
import forge.gui.SOverlayUtils;
|
||||
@@ -413,10 +410,8 @@ public class SSubmenuQuestUtil {
|
||||
humanStart.setStartingLife(qData.getAssets().getLife(qData.getMode()) + extraLifeHuman);
|
||||
aiStart.setStartingLife(lifeAI);
|
||||
|
||||
humanStart.setCardsOnBattlefield(new Function<Player, Iterable<Card>>() {
|
||||
@Override public Iterable<Card> apply(Player p) { return QuestUtil.getHumanStartingCards(qData, event, p); } });
|
||||
aiStart.setCardsOnBattlefield(new Function<Player, Iterable<Card>>() {
|
||||
@Override public Iterable<Card> apply(Player p) { return QuestUtil.getComputerStartingCards(event, p); } });
|
||||
humanStart.setCardsOnBattlefield(QuestUtil.getHumanStartingCards(qData, event));
|
||||
aiStart.setCardsOnBattlefield(QuestUtil.getComputerStartingCards(event));
|
||||
} // End isFantasy
|
||||
|
||||
MatchStartHelper msh = new MatchStartHelper();
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package forge.item;
|
||||
|
||||
import forge.Card;
|
||||
import forge.ImageCache;
|
||||
import forge.Singletons;
|
||||
import forge.card.CardRarity;
|
||||
import forge.card.CardRules;
|
||||
@@ -20,6 +19,7 @@ public class CardToken implements InventoryItemFromSet, IPaperCard {
|
||||
this.card = c;
|
||||
this.name = c.getName();
|
||||
this.edition = edition0;
|
||||
this.imageFileName = imageFileName;
|
||||
}
|
||||
|
||||
@Override public String getName() { return name; }
|
||||
@@ -31,7 +31,7 @@ public class CardToken implements InventoryItemFromSet, IPaperCard {
|
||||
|
||||
@Override public CardRarity getRarity() { return CardRarity.Common; } // They don't have rarity though!
|
||||
|
||||
@Override public String getImageFilename() { return ImageCache.TOKEN + imageFileName; }
|
||||
@Override public String getImageFilename() { return imageFileName; }
|
||||
|
||||
@Override public String getItemType() { return "Token"; }
|
||||
@Override public Card getMatchingForgeCard() { return toForgeCard(null); } // hope this won't be queried too frequently, so no cache
|
||||
|
||||
@@ -19,9 +19,11 @@ package forge.quest;
|
||||
|
||||
import forge.Card;
|
||||
|
||||
import forge.game.player.Player;
|
||||
import forge.card.CardEdition;
|
||||
import forge.card.CardRulesReader;
|
||||
import forge.item.CardDb;
|
||||
import forge.item.CardToken;
|
||||
import forge.item.IPaperCard;
|
||||
import forge.quest.bazaar.QuestPetController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -62,11 +64,11 @@ public class QuestUtil {
|
||||
* a {@link forge.quest.QuestEvent} object.
|
||||
* @return a {@link forge.CardList} object.
|
||||
*/
|
||||
public static List<Card> getComputerStartingCards(final QuestEvent qe, Player ai) {
|
||||
final List<Card> list = new ArrayList<Card>();
|
||||
public static List<IPaperCard> getComputerStartingCards(final QuestEvent qe) {
|
||||
final List<IPaperCard> list = new ArrayList<IPaperCard>();
|
||||
|
||||
for (final String s : qe.getAiExtraCards()) {
|
||||
list.add(QuestUtil.readExtraCard(s, ai));
|
||||
list.add(QuestUtil.readExtraCard(s));
|
||||
}
|
||||
|
||||
return list;
|
||||
@@ -83,18 +85,16 @@ public class QuestUtil {
|
||||
* a {@link forge.quest.data.QuestData} object.
|
||||
* @return a {@link forge.CardList} object.
|
||||
*/
|
||||
public static List<Card> getHumanStartingCards(final QuestController qc, Player human) {
|
||||
final List<Card> list = new ArrayList<Card>();
|
||||
public static List<IPaperCard> getHumanStartingCards(final QuestController qc) {
|
||||
final List<IPaperCard> list = new ArrayList<IPaperCard>();
|
||||
|
||||
for (int iSlot = 0; iSlot < QuestController.MAX_PET_SLOTS; iSlot++) {
|
||||
String petName = qc.getSelectedPet(iSlot);
|
||||
QuestPetController pet = qc.getPetsStorage().getPet(petName);
|
||||
if (pet != null) {
|
||||
CardToken c = pet.getPetCard(qc.getAssets());
|
||||
IPaperCard c = pet.getPetCard(qc.getAssets());
|
||||
if (c != null) {
|
||||
Card copy = c.toForgeCard(human);
|
||||
copy.setSickness(true);
|
||||
list.add(copy);
|
||||
list.add(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -115,10 +115,10 @@ public class QuestUtil {
|
||||
* a {@link forge.quest.QuestEvent} object.
|
||||
* @return a {@link forge.CardList} object.
|
||||
*/
|
||||
public static List<Card> getHumanStartingCards(final QuestController qc, final QuestEvent qe, final Player human) {
|
||||
final List<Card> list = QuestUtil.getHumanStartingCards(qc, human);
|
||||
public static List<IPaperCard> getHumanStartingCards(final QuestController qc, final QuestEvent qe) {
|
||||
final List<IPaperCard> list = QuestUtil.getHumanStartingCards(qc);
|
||||
for (final String s : qe.getHumanExtraCards()) {
|
||||
list.add(QuestUtil.readExtraCard(s, human));
|
||||
list.add(QuestUtil.readExtraCard(s));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
@@ -134,24 +134,17 @@ public class QuestUtil {
|
||||
* (TOKEN;W;1;1;sheep;type;type;type...)
|
||||
* @return token Card
|
||||
*/
|
||||
public static Card createToken(final String s) {
|
||||
final String[] properties = s.split(";");
|
||||
final Card c = new Card();
|
||||
c.setToken(true);
|
||||
public static CardToken createToken(final String s) {
|
||||
final String[] properties = s.split(";", 5);
|
||||
|
||||
List<String> script = new ArrayList<String>();
|
||||
script.add("Name:" + properties[4]);
|
||||
script.add("Colors:" + properties[1]);
|
||||
script.add("PT:"+ properties[2] + "/" + properties[3]);
|
||||
script.add("Types:" + properties[5].replace(';', ' '));
|
||||
// c.setManaCost(properties[1]);
|
||||
c.addColor(properties[1]);
|
||||
c.setBaseAttack(Integer.parseInt(properties[2]));
|
||||
c.setBaseDefense(Integer.parseInt(properties[3]));
|
||||
c.setName(properties[4]);
|
||||
|
||||
c.setImageName(properties[1] + " " + properties[2] + " " + properties[3] + " " + properties[4]);
|
||||
|
||||
int x = 5;
|
||||
while (x != properties.length) {
|
||||
c.addType(properties[x++]);
|
||||
}
|
||||
|
||||
String fileName = properties[1] + " " + properties[2] + " " + properties[3] + " " + properties[4];
|
||||
final CardToken c = new CardToken(CardRulesReader.parseSingleCard(script), CardEdition.UNKNOWN.getCode(), fileName);
|
||||
return c;
|
||||
}
|
||||
|
||||
@@ -167,16 +160,15 @@ public class QuestUtil {
|
||||
* the owner
|
||||
* @return the card
|
||||
*/
|
||||
public static Card readExtraCard(final String name, Player owner) {
|
||||
public static IPaperCard readExtraCard(final String name) {
|
||||
// Token card creation
|
||||
Card tempcard;
|
||||
IPaperCard tempcard;
|
||||
if (name.startsWith("TOKEN")) {
|
||||
tempcard = QuestUtil.createToken(name);
|
||||
tempcard.setOwner(owner);
|
||||
return tempcard;
|
||||
}
|
||||
// Standard card creation
|
||||
return CardDb.instance().getCard(name, true).toForgeCard(owner);
|
||||
return CardDb.instance().getCard(name, true);
|
||||
}
|
||||
|
||||
} // QuestUtil
|
||||
|
||||
Reference in New Issue
Block a user