diff --git a/src/main/java/forge/card/ability/AbilityApiBased.java b/src/main/java/forge/card/ability/AbilityApiBased.java index 97c2b31e056..6c616e3bf7b 100644 --- a/src/main/java/forge/card/ability/AbilityApiBased.java +++ b/src/main/java/forge/card/ability/AbilityApiBased.java @@ -7,7 +7,7 @@ import forge.card.ability.effects.ChangeZoneAllEffect; import forge.card.ability.effects.ChangeZoneEffect; import forge.card.ability.effects.ManaEffect; import forge.card.ability.effects.ManaReflectedEffect; -import forge.card.cardfactory.CardFactoryUtil; +import forge.card.cardfactory.CardFactory; import forge.card.cost.Cost; import forge.card.spellability.AbilityActivated; import forge.card.spellability.AbilityManaPart; @@ -50,7 +50,7 @@ public class AbilityApiBased extends AbilityActivated { public AbilityActivated getCopy() { Target tgt = getTarget() == null ? null : new Target(getTarget()); AbilityActivated res = new AbilityApiBased(api, getSourceCard(), getPayCosts(), tgt, params); - CardFactoryUtil.copySpellAbility(this, res); + CardFactory.copySpellAbility(this, res); return res; } diff --git a/src/main/java/forge/card/ability/effects/CloneEffect.java b/src/main/java/forge/card/ability/effects/CloneEffect.java index 6df5dac3769..a46784ff9ba 100644 --- a/src/main/java/forge/card/ability/effects/CloneEffect.java +++ b/src/main/java/forge/card/ability/effects/CloneEffect.java @@ -12,6 +12,7 @@ import forge.Command; import forge.Singletons; import forge.card.ability.AbilityUtils; import forge.card.ability.SpellAbilityEffect; +import forge.card.cardfactory.CardFactory; import forge.card.cardfactory.CardFactoryUtil; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; @@ -122,7 +123,7 @@ public class CloneEffect extends SpellAbilityEffect { stateToCopy = cardToCopy.getCurState(); } - CardFactoryUtil.copyState(cardToCopy, stateToCopy, tgtCard); + CardFactory.copyState(cardToCopy, stateToCopy, tgtCard); // must call this before addAbilityFactoryAbilities so cloned added abilities are handled correctly addExtraCharacteristics(tgtCard, sa, origSVars); CardFactoryUtil.addAbilityFactoryAbilities(tgtCard); @@ -140,7 +141,7 @@ public class CloneEffect extends SpellAbilityEffect { tgtCard.addAlternateState(CardCharacteristicName.Flipped); tgtCard.setState(CardCharacteristicName.Flipped); } - CardFactoryUtil.copyState(cardToCopy, CardCharacteristicName.Flipped, tgtCard); + CardFactory.copyState(cardToCopy, CardCharacteristicName.Flipped, tgtCard); addExtraCharacteristics(tgtCard, sa, origSVars); CardFactoryUtil.addAbilityFactoryAbilities(tgtCard); for (int i = 0; i < tgtCard.getStaticAbilityStrings().size(); i++) { diff --git a/src/main/java/forge/card/ability/effects/CopyPermanentEffect.java b/src/main/java/forge/card/ability/effects/CopyPermanentEffect.java index 521ee2cb8be..1bd5ff47928 100644 --- a/src/main/java/forge/card/ability/effects/CopyPermanentEffect.java +++ b/src/main/java/forge/card/ability/effects/CopyPermanentEffect.java @@ -12,6 +12,7 @@ import forge.Command; import forge.Singletons; import forge.card.ability.AbilityUtils; import forge.card.ability.SpellAbilityEffect; +import forge.card.cardfactory.CardFactory; import forge.card.cardfactory.CardFactoryUtil; import forge.card.mana.ManaCost; import forge.card.spellability.Ability; @@ -82,7 +83,7 @@ public class CopyPermanentEffect extends SpellAbilityEffect { if (!c.isToken() || c.isCopiedToken()) { // copy creature and put it onto the battlefield - copy = Singletons.getModel().getCardFactory().getCard(CardDb.getCard(c), sa.getActivatingPlayer()); + copy = CardFactory.getCard(CardDb.getCard(c), sa.getActivatingPlayer()); // when copying something stolen: copy.addController(controller); @@ -90,7 +91,7 @@ public class CopyPermanentEffect extends SpellAbilityEffect { copy.setToken(true); copy.setCopiedToken(true); } else { // isToken() - copy = CardFactoryUtil.copyStats(c); + copy = CardFactory.copyStats(c); copy.setName(c.getName()); copy.setImageFilename(c.getImageFilename()); diff --git a/src/main/java/forge/card/ability/effects/CopySpellAbilityEffect.java b/src/main/java/forge/card/ability/effects/CopySpellAbilityEffect.java index 2197bde1aaa..398073cef00 100644 --- a/src/main/java/forge/card/ability/effects/CopySpellAbilityEffect.java +++ b/src/main/java/forge/card/ability/effects/CopySpellAbilityEffect.java @@ -5,9 +5,9 @@ import java.util.Iterator; import java.util.List; import forge.Card; -import forge.Singletons; import forge.card.ability.AbilityUtils; import forge.card.ability.SpellAbilityEffect; +import forge.card.cardfactory.CardFactory; import forge.card.spellability.SpellAbility; import forge.game.player.Player; import forge.gui.GuiChoose; @@ -99,7 +99,7 @@ public class CopySpellAbilityEffect extends SpellAbilityEffect { for (final SpellAbility chosenSAcopy : chosenSAs) { chosenSAcopy.setActivatingPlayer(controller); for (int i = 0; i < amount; i++) { - Singletons.getModel().getCardFactory().copySpellontoStack(card, chosenSAcopy.getSourceCard(), chosenSAcopy, true); + CardFactory.copySpellontoStack(card, chosenSAcopy.getSourceCard(), chosenSAcopy, true); } } } @@ -115,7 +115,7 @@ public class CopySpellAbilityEffect extends SpellAbilityEffect { chosenSA.setActivatingPlayer(controller); for (int i = 0; i < amount; i++) { - Singletons.getModel().getCardFactory().copySpellontoStack(card, chosenSA.getSourceCard(), chosenSA, true); + CardFactory.copySpellontoStack(card, chosenSA.getSourceCard(), chosenSA, true); } } } // end resolve diff --git a/src/main/java/forge/card/ability/effects/PlayEffect.java b/src/main/java/forge/card/ability/effects/PlayEffect.java index d9c5f8b3a7d..95e2e947c9a 100644 --- a/src/main/java/forge/card/ability/effects/PlayEffect.java +++ b/src/main/java/forge/card/ability/effects/PlayEffect.java @@ -150,7 +150,7 @@ public class PlayEffect extends SpellAbilityEffect { source.clearRemembered(); } if (sa.hasParam("CopyCard")) { - tgtCard = Singletons.getModel().getCardFactory().getCard(CardDb.getCard(tgtCard), sa.getActivatingPlayer()); + tgtCard = CardDb.getCard(tgtCard).toForgeCard(sa.getActivatingPlayer()); // when copying something stolen: tgtCard.addController(sa.getActivatingPlayer()); diff --git a/src/main/java/forge/card/cardfactory/CardFactory.java b/src/main/java/forge/card/cardfactory/CardFactory.java index 16caee3b83f..c16cb4e339f 100644 --- a/src/main/java/forge/card/cardfactory/CardFactory.java +++ b/src/main/java/forge/card/cardfactory/CardFactory.java @@ -17,7 +17,6 @@ */ package forge.card.cardfactory; -import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -28,10 +27,10 @@ import forge.CardCharacteristicName; import forge.CardColor; import forge.CardUtil; import forge.Color; +import forge.card.CardCharacteristics; import forge.card.CardRules; import forge.card.CardSplitType; import forge.card.ICardFace; -import forge.card.ability.AbilityFactory; import forge.card.cost.Cost; import forge.card.mana.ManaCost; import forge.card.replacement.ReplacementHandler; @@ -41,13 +40,9 @@ import forge.card.spellability.SpellAbility; import forge.card.spellability.SpellPermanent; import forge.card.spellability.Target; import forge.card.trigger.TriggerHandler; -import forge.error.BugReporter; import forge.game.player.Player; -import forge.gui.GuiUtils; import forge.item.CardDb; import forge.item.IPaperCard; -import forge.properties.ForgeProps; -import forge.properties.NewConstants; /** *
@@ -68,33 +63,6 @@ import forge.properties.NewConstants; * @version $Id$ */ public class CardFactory { - - /** - *
- * Constructor for CardFactory. - *
- * - * @param file - * a {@link java.io.File} object. - */ - private final CardStorageReader reader; - - public CardFactory(final File file) { - - GuiUtils.checkEDT("CardFactory$constructor", false); - reader = new CardStorageReader(ForgeProps.getFile(NewConstants.CARDSFOLDER), true); - try { - // this fills in our map of card names to Card instances. - final List* copyCard. @@ -104,15 +72,15 @@ public class CardFactory { * a {@link forge.Card} object. * @return a {@link forge.Card} object. */ - public final Card copyCard(final Card in) { + public final static Card copyCard(final Card in) { final CardCharacteristicName curState = in.getCurState(); if (in.isInAlternateState()) { in.setState(CardCharacteristicName.Original); } - final Card out = this.getCard(CardDb.getCard(in), in.getOwner()); + final Card out = getCard(CardDb.getCard(in), in.getOwner()); out.setUniqueNumber(in.getUniqueNumber()); - CardFactoryUtil.copyCharacteristics(in, out); + CardFactory.copyCharacteristics(in, out); if (in.hasAlternateState()) { for (final CardCharacteristicName state : in.getStates()) { in.setState(state); @@ -120,7 +88,7 @@ public class CardFactory { out.addAlternateState(state); } out.setState(state); - CardFactoryUtil.copyCharacteristics(in, out); + CardFactory.copyCharacteristics(in, out); } in.setState(curState); out.setState(curState); @@ -157,7 +125,7 @@ public class CardFactory { * @param bCopyDetails * a boolean. */ - public final void copySpellontoStack(final Card source, final Card original, final SpellAbility sa, + public final static void copySpellontoStack(final Card source, final Card original, final SpellAbility sa, final boolean bCopyDetails) { //Player originalController = original.getController(); Player controller = sa.getActivatingPlayer(); @@ -243,7 +211,7 @@ public class CardFactory { * @return a {@link forge.Card} instance, owned by owner; or the special * blankCard */ - public final Card getCard(final IPaperCard cp, final Player owner) { + public final static Card getCard(final IPaperCard cp, final Player owner) { //System.out.println(cardName); CardRules cardRules = cp.getRules(); @@ -438,4 +406,110 @@ public class CardFactory { } } + /** + *
+ * Copies stats like power, toughness, etc. + *
+ * + * @param sim + * a {@link java.lang.Object} object. + * @return a {@link forge.Card} object. + */ + public static Card copyStats(final Card sim) { + final Card c = new Card(); + + c.setFlipCard(sim.isFlipCard()); + c.setDoubleFaced(sim.isDoubleFaced()); + c.setCurSetCode(sim.getCurSetCode()); + + final CardCharacteristicName origState = sim.getCurState(); + for (final CardCharacteristicName state : sim.getStates()) { + c.addAlternateState(state); + c.setState(state); + sim.setState(state); + CardFactory.copyCharacteristics(sim, c); + } + + sim.setState(origState); + c.setState(origState); + c.setRules(sim.getRules()); + + return c; + } // copyStats() + + /** + * Copy characteristics. + * + * @param from + * the from + * @param to + * the to + */ + private static void copyCharacteristics(final Card from, final Card to) { + to.setBaseAttack(from.getBaseAttack()); + to.setBaseDefense(from.getBaseDefense()); + to.setBaseLoyalty(from.getBaseLoyalty()); + to.setBaseAttackString(from.getBaseAttackString()); + to.setBaseDefenseString(from.getBaseDefenseString()); + to.setIntrinsicKeyword(from.getIntrinsicKeyword()); + to.setName(from.getName()); + to.setType(from.getCharacteristics().getType()); + to.setText(from.getSpellText()); + to.setManaCost(from.getManaCost()); + to.setColor(from.getColor()); + to.setSVars(from.getSVars()); + to.setIntrinsicAbilities(from.getIntrinsicAbilities()); + + to.setImageFilename(from.getImageFilename()); + to.setTriggers(from.getTriggers()); + to.setReplacementEffects(from.getReplacementEffects()); + to.setStaticAbilityStrings(from.getStaticAbilityStrings()); + + } + + /** + * Copy characteristics. + * + * @param from + * the from + * @param stateToCopy + * the state to copy + * @param to + * the to + */ + public static void copyState(final Card from, final CardCharacteristicName stateToCopy, final Card to) { + + // copy characteristics not associated with a state + to.setBaseLoyalty(from.getBaseLoyalty()); + to.setBaseAttackString(from.getBaseAttackString()); + to.setBaseDefenseString(from.getBaseDefenseString()); + to.setText(from.getSpellText()); + + // get CardCharacteristics for desired state + CardCharacteristics characteristics = from.getState(stateToCopy); + to.getCharacteristics().copy(characteristics); + // handle triggers and replacement effect through Card class interface + to.setTriggers(characteristics.getTriggers()); + to.setReplacementEffects(characteristics.getReplacementEffects()); + } + + public static void copySpellAbility(SpellAbility from, SpellAbility to) { + to.setDescription(from.getDescription()); + to.setStackDescription(from.getDescription()); + + if (from.getSubAbility() != null) { + to.setSubAbility(from.getSubAbility().getCopy()); + } + if (from.getRestrictions() != null) { + to.setRestrictions(from.getRestrictions()); + } + if (from.getConditions() != null) { + to.setConditions(from.getConditions()); + } + + for (String sVar : from.getSVars()) { + to.setSVar(sVar, from.getSVar(sVar)); + } + } + } // end class AbstractCardFactory diff --git a/src/main/java/forge/card/cardfactory/CardFactoryArtifacts.java b/src/main/java/forge/card/cardfactory/CardFactoryArtifacts.java index 2fd9dca9477..81920f7b5c3 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryArtifacts.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryArtifacts.java @@ -49,7 +49,7 @@ class CardFactoryArtifacts { public AbilityActivated getCopy() { AbilityActivated res = new AbilityGrindstone(getSourceCard(), getPayCosts(), getTarget() == null ? null : new Target(getTarget())); - CardFactoryUtil.copySpellAbility(this, res); + CardFactory.copySpellAbility(this, res); return res; } @@ -119,7 +119,7 @@ class CardFactoryArtifacts { public AbilityActivated getCopy() { AbilityActivated res = new AbilityScrollRack(getSourceCard(), getPayCosts(), getTarget() == null ? null : new Target(getTarget())); - CardFactoryUtil.copySpellAbility(this, res); + CardFactory.copySpellAbility(this, res); return res; } @@ -262,7 +262,7 @@ class CardFactoryArtifacts { public AbilityActivated getCopy() { AbilityActivated res = new AbilityTemporalAperture(getSourceCard(), getPayCosts(), getTarget() == null ? null : new Target(getTarget())); - CardFactoryUtil.copySpellAbility(this, res); + CardFactory.copySpellAbility(this, res); return res; } diff --git a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java index a30d9dcd13d..ac1e8a4becb 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java @@ -41,7 +41,6 @@ import forge.Constant; import forge.CounterType; import forge.GameEntity; import forge.Singletons; -import forge.card.CardCharacteristics; import forge.card.ability.AbilityFactory; import forge.card.ability.AbilityUtils; import forge.card.ability.ApiType; @@ -148,7 +147,7 @@ public class CardFactoryUtil { public AbilityActivated getCopy() { AbilityActivated res = new AbilityUnearth(getSourceCard(), getPayCosts(), getTarget() == null ? null : new Target(getTarget())); - CardFactoryUtil.copySpellAbility(this, res); + CardFactory.copySpellAbility(this, res); final SpellAbilityRestriction restrict = new SpellAbilityRestriction(); restrict.setZone(ZoneType.Graveyard); restrict.setSorcerySpeed(true); @@ -361,7 +360,7 @@ public class CardFactoryUtil { public AbilityActivated getCopy() { AbilityActivated res = new AbilityTransmute(getSourceCard(), getPayCosts(), getTarget() == null ? null : new Target(getTarget())); - CardFactoryUtil.copySpellAbility(this, res); + CardFactory.copySpellAbility(this, res); res.getRestrictions().setZone(ZoneType.Hand); return res; } @@ -2490,7 +2489,7 @@ public class CardFactoryUtil { final int multiplier = controller.getTokenDoublersMagnitude(); for (int i = 0; i < multiplier; i++) { - Card temp = CardFactoryUtil.copyStats(c); + Card temp = CardFactory.copyStats(c); for (final String kw : intrinsicKeywords) { temp.addIntrinsicKeyword(kw); @@ -2671,112 +2670,6 @@ public class CardFactoryUtil { || (c == CounterType.TIME); } - /** - *- * Copies stats like power, toughness, etc. - *
- * - * @param sim - * a {@link java.lang.Object} object. - * @return a {@link forge.Card} object. - */ - public static Card copyStats(final Card sim) { - final Card c = new Card(); - - c.setFlipCard(sim.isFlipCard()); - c.setDoubleFaced(sim.isDoubleFaced()); - c.setCurSetCode(sim.getCurSetCode()); - - final CardCharacteristicName origState = sim.getCurState(); - for (final CardCharacteristicName state : sim.getStates()) { - c.addAlternateState(state); - c.setState(state); - sim.setState(state); - CardFactoryUtil.copyCharacteristics(sim, c); - } - - sim.setState(origState); - c.setState(origState); - c.setRules(sim.getRules()); - - return c; - } // copyStats() - - /** - * Copy characteristics. - * - * @param from - * the from - * @param to - * the to - */ - public static void copyCharacteristics(final Card from, final Card to) { - to.setBaseAttack(from.getBaseAttack()); - to.setBaseDefense(from.getBaseDefense()); - to.setBaseLoyalty(from.getBaseLoyalty()); - to.setBaseAttackString(from.getBaseAttackString()); - to.setBaseDefenseString(from.getBaseDefenseString()); - to.setIntrinsicKeyword(from.getIntrinsicKeyword()); - to.setName(from.getName()); - to.setType(from.getCharacteristics().getType()); - to.setText(from.getSpellText()); - to.setManaCost(from.getManaCost()); - to.setColor(from.getColor()); - to.setSVars(from.getSVars()); - to.setIntrinsicAbilities(from.getIntrinsicAbilities()); - - to.setImageFilename(from.getImageFilename()); - to.setTriggers(from.getTriggers()); - to.setReplacementEffects(from.getReplacementEffects()); - to.setStaticAbilityStrings(from.getStaticAbilityStrings()); - - } - - /** - * Copy characteristics. - * - * @param from - * the from - * @param stateToCopy - * the state to copy - * @param to - * the to - */ - public static void copyState(final Card from, final CardCharacteristicName stateToCopy, final Card to) { - - // copy characteristics not associated with a state - to.setBaseLoyalty(from.getBaseLoyalty()); - to.setBaseAttackString(from.getBaseAttackString()); - to.setBaseDefenseString(from.getBaseDefenseString()); - to.setText(from.getSpellText()); - - // get CardCharacteristics for desired state - CardCharacteristics characteristics = from.getState(stateToCopy); - to.getCharacteristics().copy(characteristics); - // handle triggers and replacement effect through Card class interface - to.setTriggers(characteristics.getTriggers()); - to.setReplacementEffects(characteristics.getReplacementEffects()); - } - - public static void copySpellAbility(SpellAbility from, SpellAbility to) { - to.setDescription(from.getDescription()); - to.setStackDescription(from.getDescription()); - - if (from.getSubAbility() != null) { - to.setSubAbility(from.getSubAbility().getCopy()); - } - if (from.getRestrictions() != null) { - to.setRestrictions(from.getRestrictions()); - } - if (from.getConditions() != null) { - to.setConditions(from.getConditions()); - } - - for (String sVar : from.getSVars()) { - to.setSVar(sVar, from.getSVar(sVar)); - } - } - public static void correctAbilityChainSourceCard(final SpellAbility sa, final Card card) { sa.setSourceCard(card); diff --git a/src/main/java/forge/card/spellability/AbilitySub.java b/src/main/java/forge/card/spellability/AbilitySub.java index 1146b6cdc44..bf4f169432d 100644 --- a/src/main/java/forge/card/spellability/AbilitySub.java +++ b/src/main/java/forge/card/spellability/AbilitySub.java @@ -28,7 +28,7 @@ import forge.card.ability.effects.ChangeZoneAllEffect; import forge.card.ability.effects.ChangeZoneEffect; import forge.card.ability.effects.ManaEffect; import forge.card.ability.effects.ManaReflectedEffect; -import forge.card.cardfactory.CardFactoryUtil; +import forge.card.cardfactory.CardFactory; import forge.game.player.AIPlayer; /** @@ -109,7 +109,7 @@ public final class AbilitySub extends SpellAbility implements java.io.Serializab public AbilitySub getCopy() { Target t = getTarget() == null ? null : new Target(getTarget()); AbilitySub res = new AbilitySub(api, getSourceCard(), t, params); - CardFactoryUtil.copySpellAbility(this, res); + CardFactory.copySpellAbility(this, res); return res; } diff --git a/src/main/java/forge/game/GameAction.java b/src/main/java/forge/game/GameAction.java index ee587c43a60..6f1937d9ab0 100644 --- a/src/main/java/forge/game/GameAction.java +++ b/src/main/java/forge/game/GameAction.java @@ -36,6 +36,7 @@ import forge.GameEntity; import forge.card.CardSplitType; import forge.card.CardType; import forge.card.ability.effects.AttachEffect; +import forge.card.cardfactory.CardFactory; import forge.card.cost.Cost; import forge.card.mana.ManaCost; import forge.card.replacement.ReplacementEffect; @@ -157,7 +158,7 @@ public class GameAction { if (zoneFrom.is(ZoneType.Battlefield)) { c.setFlipStaus(false); } - copied = forge.Singletons.getModel().getCardFactory().copyCard(c); + copied = CardFactory.copyCard(c); copied.setUnearthed(c.isUnearthed()); copied.setTapped(false); for (final Trigger trigger : copied.getTriggers()) { @@ -669,7 +670,7 @@ public class GameAction { if (p != null && p.is(ZoneType.Battlefield)) { lastKnownInfo = CardUtil.getLKICopy(c); c.clearCounters(); // remove all counters - library.add(forge.Singletons.getModel().getCardFactory().copyCard(c), libPosition); + library.add(CardFactory.copyCard(c), libPosition); } else { c.clearCounters(); // remove all counters library.add(c, libPosition); diff --git a/src/main/java/forge/game/zone/MagicStack.java b/src/main/java/forge/game/zone/MagicStack.java index c71aa4108f8..eaa766a1ea9 100644 --- a/src/main/java/forge/game/zone/MagicStack.java +++ b/src/main/java/forge/game/zone/MagicStack.java @@ -33,6 +33,7 @@ import forge.CardPredicates.Presets; import forge.Command; import forge.Singletons; import forge.card.ability.AbilityUtils; +import forge.card.cardfactory.CardFactory; import forge.card.cardfactory.CardFactoryUtil; import forge.card.mana.ManaCostBeingPaid; import forge.card.mana.ManaCostParser; @@ -609,7 +610,7 @@ public class MagicStack extends MyObservable { @Override public void execute() { for (int i = 0; i < sp.getSourceCard().getReplicateMagnitude(); i++) { - Singletons.getModel().getCardFactory().copySpellontoStack(sp.getSourceCard(), sp.getSourceCard(), sp, false); + CardFactory.copySpellontoStack(sp.getSourceCard(), sp.getSourceCard(), sp, false); } } }; diff --git a/src/main/java/forge/gui/GuiDisplayUtil.java b/src/main/java/forge/gui/GuiDisplayUtil.java index 20418b3766d..fb99dc6afc9 100644 --- a/src/main/java/forge/gui/GuiDisplayUtil.java +++ b/src/main/java/forge/gui/GuiDisplayUtil.java @@ -507,7 +507,7 @@ public final class GuiDisplayUtil { for (final String element : data) { final String[] cardinfo = element.trim().split("\\|"); - final Card c = Singletons.getModel().getCardFactory().getCard(CardDb.instance().getCard(cardinfo[0]), player); + final Card c = CardDb.instance().getCard(cardinfo[0]).toForgeCard(player); boolean hasSetCurSet = false; for (final String info : cardinfo) { diff --git a/src/main/java/forge/gui/match/nonsingleton/CField.java b/src/main/java/forge/gui/match/nonsingleton/CField.java index 2e14f5e8dae..ce1401632cc 100644 --- a/src/main/java/forge/gui/match/nonsingleton/CField.java +++ b/src/main/java/forge/gui/match/nonsingleton/CField.java @@ -34,6 +34,7 @@ import forge.Command; import forge.Constant; import forge.Constant.Preferences; import forge.Singletons; +import forge.card.cardfactory.CardFactory; import forge.card.cardfactory.CardFactoryUtil; import forge.card.spellability.SpellAbility; import forge.control.input.Input; @@ -301,7 +302,7 @@ public class CField implements ICDoc { faceDown.setName("Face Down"); choices2.add(faceDown); } else { - final Card faceDown = Singletons.getModel().getCardFactory().copyCard(crd); + final Card faceDown = CardFactory.copyCard(crd); faceDown.setState(CardCharacteristicName.Original); choices2.add(faceDown); } diff --git a/src/main/java/forge/item/CardDb.java b/src/main/java/forge/item/CardDb.java index 825c4433dd0..c5e0b13badd 100644 --- a/src/main/java/forge/item/CardDb.java +++ b/src/main/java/forge/item/CardDb.java @@ -20,7 +20,6 @@ package forge.item; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.NoSuchElementException; @@ -81,7 +80,7 @@ public final class CardDb { * @param list * the new up */ - public static void setup(final Iterator