Pass the full Card object into Cost not just the name, so CostParts can be loaded from SVars in the future.

This commit is contained in:
Sol
2012-03-31 00:21:20 +00:00
parent 890a3e4497
commit ac78e5f7f7
19 changed files with 64 additions and 65 deletions

View File

@@ -2175,7 +2175,7 @@ public class Card extends GameEntity implements Comparable<Card> {
} else if (keyword.get(i).startsWith("Morph")) {
sbLong.append("Morph");
if (keyword.get(i).contains(":")) {
final Cost mCost = new Cost(keyword.get(i).substring(6), this.getName(), true);
final Cost mCost = new Cost(this, keyword.get(i).substring(6), true);
if (!mCost.isOnlyManaCost()) {
sbLong.append(" -");
}
@@ -2462,7 +2462,7 @@ public class Card extends GameEntity implements Comparable<Card> {
if (keyword.startsWith("Flashback")) {
sb.append("Flashback");
if (keyword.contains(" ")) {
final Cost fbCost = new Cost(keyword.substring(10), this.getName(), true);
final Cost fbCost = new Cost(this, keyword.substring(10), true);
if (!fbCost.isOnlyManaCost()) {
sb.append(" -");
}

View File

@@ -350,7 +350,7 @@ public class ComputerUtil {
*/
public static final void playSpellAbilityWithoutPayingManaCost(final SpellAbility sa) {
final SpellAbility newSA = sa.copy();
final Cost cost = new Cost("", sa.getSourceCard().getName(), false);
final Cost cost = new Cost(sa.getSourceCard(), "", false);
if (newSA.getPayCosts() != null) {
for (final CostPart part : newSA.getPayCosts().getCostParts()) {
if (!(part instanceof CostMana)) {

View File

@@ -425,7 +425,7 @@ public class GameAction {
final String recoverCost = recoverable.getKeyword().get(recoverable.getKeywordPosition("Recover"))
.split(":")[1];
final Cost cost = new Cost(recoverCost, recoverable.getName(), true);
final Cost cost = new Cost(recoverable, recoverCost, true);
final Command paidCommand = new Command() {
private static final long serialVersionUID = -6357156873861051845L;
@@ -1368,7 +1368,7 @@ public class GameAction {
// there is a flashback cost (and not the cards cost)
if (!keyword.equals("Flashback")) {
final Cost fbCost = new Cost(keyword.substring(10), source.getName(), false);
final Cost fbCost = new Cost(source, keyword.substring(10), false);
flashback.setPayCosts(fbCost);
}
alternatives.add(flashback);
@@ -1379,7 +1379,7 @@ public class GameAction {
sar.setVariables(sa.getRestrictions());
sar.setZone(null);
newSA.setRestrictions(sar);
final Cost cost = new Cost("", source.getName(), false);
final Cost cost = new Cost(source, "", false);
if (newSA.getPayCosts() != null) {
for (final CostPart part : newSA.getPayCosts().getCostParts()) {
if (!(part instanceof CostMana)) {
@@ -1399,7 +1399,7 @@ public class GameAction {
sar.setVariables(sa.getRestrictions());
sar.setInstantSpeed(true);
newSA.setRestrictions(sar);
final Cost cost = new Cost("", source.getName(), false);
final Cost cost = new Cost(source, "", false);
if (newSA.getPayCosts() != null) {
for (final CostPart part : newSA.getPayCosts().getCostParts()) {
if (!(part instanceof CostMana)) {
@@ -1415,7 +1415,7 @@ public class GameAction {
}
if (sa.isSpell() && keyword.startsWith("Alternative Cost")) {
final SpellAbility newSA = sa.copy();
final Cost cost = new Cost(keyword.substring(17), source.getName(), false);
final Cost cost = new Cost(source, keyword.substring(17), false);
if (newSA.getPayCosts() != null) {
for (final CostPart part : newSA.getPayCosts().getCostParts()) {
if (!(part instanceof CostMana)) {
@@ -2273,7 +2273,7 @@ public class GameAction {
final TargetSelection ts = new TargetSelection(sa.getTarget(), sa);
CostPayment payment = null;
if (sa.getPayCosts() == null) {
payment = new CostPayment(new Cost("0", sa.getSourceCard().getName(), sa.isAbility()), sa);
payment = new CostPayment(new Cost(sa.getSourceCard(), "0", sa.isAbility()), sa);
} else {
payment = new CostPayment(sa.getPayCosts(), sa);
}

View File

@@ -351,7 +351,7 @@ public class AbilityFactory {
if (!this.mapParams.containsKey("Cost")) {
throw new RuntimeException("AbilityFactory : getAbility -- no Cost in " + hostCard.getName());
}
this.abCost = new Cost(this.mapParams.get("Cost"), hostCard.getName(), this.isAb);
this.abCost = new Cost(hostCard, this.mapParams.get("Cost"), this.isAb);
}
if (this.mapParams.containsKey("ValidTgts")) {
@@ -2600,7 +2600,7 @@ public class AbilityFactory {
if (unlessCost.equals("X")) {
unlessCost = Integer.toString(AbilityFactory.calculateAmount(source, params.get("UnlessCost"), sa));
}
final Cost cost = new Cost(unlessCost, source.getName(), true);
final Cost cost = new Cost(source, unlessCost, true);
final SpellAbility ability = new AbilityActivated(source, cost, null) {
private static final long serialVersionUID = 2502577469482777440L;

View File

@@ -113,7 +113,7 @@ public class AbilityFactoryMana {
private final AbilityFactory af = abilityFactory;
// To get the mana to resolve properly, we need the spell to contain an AbilityMana
private final Cost tmp = new Cost("0", abilityFactory.getHostCard().getName(), false);
private final Cost tmp = new Cost(abilityFactory.getHostCard(), "0", false);
private final AbilityMana tmpMana = new AbilityMana(abilityFactory.getHostCard(), this.tmp, produced) {
private static final long serialVersionUID = 1454043766057140491L;
@@ -164,7 +164,7 @@ public class AbilityFactoryMana {
private final AbilityFactory af = abilityFactory;
// To get the mana to resolve properly, we need the spell to contain an AbilityMana
private final Cost tmp = new Cost("0", abilityFactory.getHostCard().getName(), false);
private final Cost tmp = new Cost(abilityFactory.getHostCard(), "0", false);
private final AbilityMana tmpMana = new AbilityMana(abilityFactory.getHostCard(), this.tmp, produced) {
private static final long serialVersionUID = 1454043766057140491L;
@@ -507,7 +507,7 @@ public class AbilityFactoryMana {
private final AbilityFactory af = abilityFactory;
// To get the mana to resolve properly, we need the spell to contain an AbilityMana
private final Cost tmp = new Cost("0", abilityFactory.getHostCard().getName(), false);
private final Cost tmp = new Cost(abilityFactory.getHostCard(), "0", false);
private final AbilityMana tmpMana = new AbilityMana(abilityFactory.getHostCard(), this.tmp, produced) {
private static final long serialVersionUID = 1454043766057140491L;

View File

@@ -441,7 +441,7 @@ public final class AbilityFactoryPlay {
if (params.containsKey("WithoutManaCost")) {
if (controller.isHuman()) {
final SpellAbility newSA = tgtSA.copy();
final Cost cost = new Cost("", tgtCard.getName(), false);
final Cost cost = new Cost(tgtCard, "", false);
if (newSA.getPayCosts() != null) {
for (final CostPart part : newSA.getPayCosts().getCostParts()) {
if (!(part instanceof CostMana)) {

View File

@@ -595,7 +595,7 @@ public abstract class AbstractCardFactory implements CardFactoryInterface {
final String col = color;
// card.setChosenType(input[0]);
final Cost a1Cost = new Cost("3 T", cardName, true);
final Cost a1Cost = new Cost(card, "3 T", true);
final AbilityActivated a1 = new AbilityActivated(card, a1Cost, null) {
private static final long serialVersionUID = -2114111483117171609L;
@@ -844,7 +844,7 @@ public abstract class AbstractCardFactory implements CardFactoryInterface {
// *************** START *********** START **************************
else if (cardName.equals("Goblin Charbelcher")) {
final Cost abCost = new Cost("3 T", cardName, true);
final Cost abCost = new Cost(card, "3 T", true);
final AbilityActivated ability = new AbilityActivated(card, abCost, new Target(card, "TgtCP")) {
private static final long serialVersionUID = -840041589720758423L;
@@ -914,7 +914,7 @@ public abstract class AbstractCardFactory implements CardFactoryInterface {
* next turn's upkeep.
*/
final Cost abCost = new Cost("1 T Sac<1/CARDNAME>", cardName, true);
final Cost abCost = new Cost(card, "1 T Sac<1/CARDNAME>", true);
final Target target = new Target(card, "Select target player", new String[] { "Player" });
final AbilityActivated ability = new AbilityActivated(card, abCost, target) {
private static final long serialVersionUID = -6711849408085138636L;
@@ -996,7 +996,7 @@ public abstract class AbstractCardFactory implements CardFactoryInterface {
// *************** START *********** START **************************
else if (cardName.equals("Grindstone")) {
final Target target = new Target(card, "Select target player", new String[] { "Player" });
final Cost abCost = new Cost("3 T", cardName, true);
final Cost abCost = new Cost(card, "3 T", true);
final AbilityActivated ab1 = new AbilityActivated(card, abCost, target) {
private static final long serialVersionUID = -6281219446216L;
@@ -1094,7 +1094,7 @@ public abstract class AbstractCardFactory implements CardFactoryInterface {
// *************** START *********** START **************************
else if (cardName.equals("Scroll Rack")) {
final Cost abCost = new Cost("1 T", cardName, true);
final Cost abCost = new Cost(card, "1 T", true);
final AbilityActivated ability = new AbilityActivated(card, abCost, null) {
private static final long serialVersionUID = -5588587187720068547L;
@@ -1234,7 +1234,7 @@ public abstract class AbstractCardFactory implements CardFactoryInterface {
sb.append(cardName).append(" - play card without paying its mana cost.");
freeCast.setStackDescription(sb.toString());
final Cost abCost = new Cost("5 T", cardName, true);
final Cost abCost = new Cost(card, "5 T", true);
final AbilityActivated ability = new AbilityActivated(card, abCost, null) {
private static final long serialVersionUID = -7328518969488588777L;

View File

@@ -256,7 +256,7 @@ class CardFactoryAuras {
// *************** START *********** START **************************
else if (cardName.equals("Earthbind")) {
final Cost cost = new Cost(card.getManaCost(), cardName, false);
final Cost cost = new Cost(card, card.getManaCost(), false);
final Target tgt = new Target(card, "C");
final SpellAbility spell = new SpellPermanent(card, cost, tgt) {
@@ -359,7 +359,7 @@ class CardFactoryAuras {
// *************** START *********** START **************************
else if (cardName.equals("Guilty Conscience")) {
final Cost cost = new Cost(card.getManaCost(), cardName, false);
final Cost cost = new Cost(card, card.getManaCost(), false);
final Target tgt = new Target(card, "C");
final SpellAbility spell = new SpellPermanent(card, cost, tgt) {
@@ -461,7 +461,7 @@ class CardFactoryAuras {
tgt.setZone(Constant.Zone.Graveyard);
animate.setTarget(tgt);
final Cost cost = new Cost("1 B", cardName, false);
final Cost cost = new Cost(card, "1 B", false);
animate.setPayCosts(cost);
animate.getRestrictions().setZone(Constant.Zone.Hand);

View File

@@ -205,7 +205,7 @@ public class CardFactoryCreatures {
// *************** START *********** START **************************
else if (cardName.equals("Gilder Bairn")) {
final Cost abCost = new Cost("2 GU Untap", cardName, true);
final Cost abCost = new Cost(card, "2 GU Untap", true);
final Target tgt = new Target(card, "Select target permanent.", new String[] { "Permanent" });
final AbilityActivated a1 = new AbilityActivated(card, abCost, tgt) {
private static final long serialVersionUID = -1847685865277129366L;
@@ -717,7 +717,7 @@ public class CardFactoryCreatures {
// *************** START *********** START **************************
else if (cardName.equals("Rhys the Redeemed")) {
final Cost abCost = new Cost("4 GW GW T", card.getName(), true);
final Cost abCost = new Cost(card, "4 GW GW T", true);
final AbilityActivated copyTokens1 = new AbilityActivated(card, abCost, null) {
private static final long serialVersionUID = 6297992502069547478L;
@@ -824,7 +824,7 @@ public class CardFactoryCreatures {
// *************** START *********** START **************************
else if (cardName.equals("Master of the Wild Hunt")) {
final Cost abCost = new Cost("T", cardName, true);
final Cost abCost = new Cost(card, "T", true);
final Target abTgt = new Target(card, "Target a creature to Hunt", "Creature".split(","));
final AbilityActivated ability = new AbilityActivated(card, abCost, abTgt) {
private static final long serialVersionUID = 35050145102566898L;
@@ -1015,7 +1015,7 @@ public class CardFactoryCreatures {
// *************** START *********** START **************************
else if (cardName.equals("Molten Hydra")) {
final Target target = new Target(card, "TgtCP");
final Cost abCost = new Cost("T", cardName, true);
final Cost abCost = new Cost(card, "T", true);
final AbilityActivated ability2 = new AbilityActivated(card, abCost, target) {
private static final long serialVersionUID = 2626619319289064289L;
@@ -1374,7 +1374,7 @@ public class CardFactoryCreatures {
* permanent.
*/
final Cost cost = new Cost("Sac<1/CARDNAME>", cardName, true);
final Cost cost = new Cost(card, "Sac<1/CARDNAME>", true);
final Target tgt = new Target(card, "Select a permanent", "Permanent".split(","));
final SpellAbility ability = new AbilityActivated(card, cost, tgt) {
private static final long serialVersionUID = -5084369399105353155L;
@@ -1569,7 +1569,7 @@ public class CardFactoryCreatures {
// *************** START *********** START **************************
else if (cardName.equals("Phyrexian Scuta")) {
final Cost abCost = new Cost("3 B PayLife<3>", cardName, false);
final Cost abCost = new Cost(card, "3 B PayLife<3>", false);
final SpellAbility kicker = new Spell(card, abCost, null) {
private static final long serialVersionUID = -6420757044982294960L;
@@ -2006,7 +2006,7 @@ public class CardFactoryCreatures {
* name revealed this way. Activate this ability only during your
* turn.
*/
final Cost abCost = new Cost("X T", cardName, true);
final Cost abCost = new Cost(card, "X T", true);
final Target target = new Target(card, "Select target opponent", "Opponent".split(","));
final AbilityActivated discard = new AbilityActivated(card, abCost, target) {
private static final long serialVersionUID = 4839778470534392198L;
@@ -2074,7 +2074,7 @@ public class CardFactoryCreatures {
theCost = "R";
}
final SpellAbility finalAb = new AbilityActivated(card, new Cost(theCost, cardName, true), new Target(card,
final SpellAbility finalAb = new AbilityActivated(card, new Cost(card, theCost, true), new Target(card,
"Select target creature.", "Creature")) {
private static final long serialVersionUID = 2391351140880148283L;

View File

@@ -326,7 +326,7 @@ class CardFactoryEquipment {
// keywords to add
// final String manaCost = tmpCost.trim();
final Cost abCost = new Cost(tmpCost.trim(), card.getName(), true);
final Cost abCost = new Cost(card, tmpCost.trim(), true);
int power = 0;
int tough = 0;

View File

@@ -233,7 +233,7 @@ public class CardFactoryInstants {
* Return all artifacts target player owns to his or her hand.
*/
Target t = new Target(card, "Select target player", "Player");
Cost cost = new Cost("1 U", cardName, false);
Cost cost = new Cost(card, "1 U", false);
SpellAbility spell = new Spell(card, cost, t) {
private static final long serialVersionUID = -4098702062413878046L;
@@ -385,7 +385,7 @@ public class CardFactoryInstants {
// *************** START *********** START **************************
else if (cardName.equals("Suffer the Past")) {
final Cost cost = new Cost("X B", cardName, false);
final Cost cost = new Cost(card, "X B", false);
final Target tgt = new Target(card, "Select a Player", "Player");
final SpellAbility spell = new Spell(card, cost, tgt) {
private static final long serialVersionUID = 1168802375190293222L;
@@ -627,7 +627,7 @@ public class CardFactoryInstants {
* of the chosen type target player controls, or untap all tapped
* permanents of that type that player controls.
*/
final Cost abCost = new Cost("2 U U", cardName, false);
final Cost abCost = new Cost(card, "2 U U", false);
final Target target = new Target(card, "Select target player", "Player".split(","));
final SpellAbility spell = new Spell(card, abCost, target) {
private static final long serialVersionUID = -2175586347805121896L;
@@ -689,7 +689,7 @@ public class CardFactoryInstants {
}
};
final Cost abCost = new Cost("G", cardName, false);
final Cost abCost = new Cost(card, "G", false);
final Target t1 = new Target(card, "Select target creature you control", "Creature.YouCtrl".split(","));
final SpellAbility spell = new Spell(card, abCost, t1) {
private static final long serialVersionUID = 8964235807056739219L;

View File

@@ -145,7 +145,7 @@ class CardFactoryLands {
}
};
final Cost abCost = new Cost("G U T", cardName, true);
final Cost abCost = new Cost(card, "G U T", true);
final AbilityActivated ability = new AbilityActivated(card, abCost, null) {
private static final long serialVersionUID = 1416258136308898492L;

View File

@@ -136,7 +136,7 @@ public class CardFactoryPlaneswalkers {
* battlefield.
*/
final Target target2 = new Target(card, "TgtC");
final Cost cost2 = new Cost("SubCounter<2/LOYALTY>", cardName, true);
final Cost cost2 = new Cost(card, "SubCounter<2/LOYALTY>", true);
final SpellAbility ability2 = new AbilityActivated(card, cost2, target2) {
private static final long serialVersionUID = 4322453486268967722L;
@@ -202,7 +202,7 @@ public class CardFactoryPlaneswalkers {
* power to target player.
*/
final Target target3 = new Target(card, "Select target player", "Player");
final Cost cost3 = new Cost("SubCounter<4/LOYALTY>", cardName, true);
final Cost cost3 = new Cost(card, "SubCounter<4/LOYALTY>", true);
final SpellAbility ability3 = new AbilityActivated(card, cost3, target3) {
private static final long serialVersionUID = -5488579738767048060L;

View File

@@ -437,7 +437,7 @@ public class CardFactorySorceries {
// *************** START *********** START **************************
else if (cardName.equals("Martial Coup")) {
final Cost cost = new Cost(card.getManaCost(), cardName, false);
final Cost cost = new Cost(card, card.getManaCost(), false);
final SpellAbility spell = new Spell(card, cost, null) {
private static final long serialVersionUID = -29101524966207L;
@@ -702,7 +702,7 @@ public class CardFactorySorceries {
// *************** START *********** START **************************
else if (cardName.equals("Haunting Echoes")) {
final Cost cost = new Cost("3 B B", cardName, false);
final Cost cost = new Cost(card, "3 B B", false);
final Target tgt = new Target(card, "Select a Player", "Player");
final SpellAbility spell = new Spell(card, cost, tgt) {
private static final long serialVersionUID = 42470566751344693L;
@@ -772,7 +772,7 @@ public class CardFactorySorceries {
}
};
final Cost abCost = new Cost("2 U", cardName, false);
final Cost abCost = new Cost(card, "2 U", false);
final Target t1 = new Target(card, "Select target permanent", "Permanent".split(","));
final SpellAbility spell = new Spell(card, abCost, t1) {
private static final long serialVersionUID = 8964235802256739219L;
@@ -1255,7 +1255,7 @@ public class CardFactorySorceries {
* damage to that player.
*/
final Target tgt = new Target(card, "Select target player", "Player");
final Cost cost = new Cost("1 W W", cardName, false);
final Cost cost = new Cost(card, "1 W W", false);
final SpellAbility spell = new Spell(card, cost, tgt) {
private static final long serialVersionUID = 8555498267738686288L;
@@ -1903,7 +1903,7 @@ public class CardFactorySorceries {
// *************** START *********** START **************************
else if (cardName.equals("Turn to Slag")) {
final Cost abCost = new Cost("3 R R", cardName, false);
final Cost abCost = new Cost(card, "3 R R", false);
final Target target = new Target(card, "Select target creature", "Creature".split(","));
final SpellAbility spell = new Spell(card, abCost, target) {
private static final long serialVersionUID = 3848014348910653252L;
@@ -1946,7 +1946,7 @@ public class CardFactorySorceries {
* library.
*/
final Cost abCost = new Cost("U U", cardName, false);
final Cost abCost = new Cost(card, "U U", false);
final SpellAbility spell = new Spell(card, abCost, null) {
private static final long serialVersionUID = -8497142072380944393L;

View File

@@ -884,7 +884,7 @@ public class CardFactoryUtil {
*/
public static AbilityActivated abilityUnearth(final Card sourceCard, final String manaCost) {
final Cost cost = new Cost(manaCost, sourceCard.getName(), true);
final Cost cost = new Cost(sourceCard, manaCost, true);
final AbilityActivated unearth = new AbilityActivated(sourceCard, cost, null) {
private static final long serialVersionUID = -5633945565395478009L;
@@ -1025,7 +1025,7 @@ public class CardFactoryUtil {
*/
public static SpellAbility abilityCycle(final Card sourceCard, String cycleCost) {
cycleCost += " Discard<1/CARDNAME>";
final Cost abCost = new Cost(cycleCost, sourceCard.getName(), true);
final Cost abCost = new Cost(sourceCard, cycleCost, true);
final SpellAbility cycle = new AbilityActivated(sourceCard, abCost, null) {
private static final long serialVersionUID = -4960704261761785512L;
@@ -1095,7 +1095,7 @@ public class CardFactoryUtil {
public static SpellAbility abilityTypecycle(final Card sourceCard, String cycleCost, final String type) {
String description;
cycleCost += " Discard<1/CARDNAME>";
final Cost abCost = new Cost(cycleCost, sourceCard.getName(), true);
final Cost abCost = new Cost(sourceCard, cycleCost, true);
final SpellAbility cycle = new AbilityActivated(sourceCard, abCost, null) {
private static final long serialVersionUID = -4960704261761785512L;
@@ -1180,7 +1180,7 @@ public class CardFactoryUtil {
*/
public static SpellAbility abilityTransmute(final Card sourceCard, String transmuteCost) {
transmuteCost += " Discard<1/CARDNAME>";
final Cost abCost = new Cost(transmuteCost, sourceCard.getName(), true);
final Cost abCost = new Cost(sourceCard, transmuteCost, true);
final SpellAbility transmute = new AbilityActivated(sourceCard, abCost, null) {
private static final long serialVersionUID = -4960704261761785512L;
@@ -1516,7 +1516,7 @@ public class CardFactoryUtil {
* @return a {@link forge.card.spellability.AbilityMana} object.
*/
public static AbilityMana getEldraziSpawnAbility(final Card c) {
final Cost cost = new Cost("Sac<1/CARDNAME>", c.getName(), true);
final Cost cost = new Cost(c, "Sac<1/CARDNAME>", true);
final AbilityMana mana = new AbilityMana(c, cost, "1") {
private static final long serialVersionUID = -2478676548112738019L;
};
@@ -4216,7 +4216,7 @@ public class CardFactoryUtil {
final String newCost = CardUtil.addManaCosts(card.getManaCost(), bbCost);
if (bbSA.getPayCosts() != null) {
// create new Cost
bbSA.setPayCosts(new Cost(newCost, sa.getSourceCard().getName(), false));
bbSA.setPayCosts(new Cost(card, newCost, false));
}
final StringBuilder sb = new StringBuilder();
sb.append("Buyback ").append(bbCost).append(" (You may pay an additional ").append(bbCost);
@@ -4580,7 +4580,7 @@ public class CardFactoryUtil {
final SpellAbility[] abilities = card.getSpellAbility();
if ((abilities.length > 0) && abilities[0].isSpell()) {
final String altCost = card.getSVar("FullCost");
final Cost abCost = new Cost(altCost, card.getName(), abilities[0].isAbility());
final Cost abCost = new Cost(card, altCost, abilities[0].isAbility());
abilities[0].setPayCosts(abCost);
}
}
@@ -4624,7 +4624,7 @@ public class CardFactoryUtil {
final SpellAbility sa = abilities[0];
final SpellAbility altCostSA = sa.copy();
final Cost abCost = new Cost(altCost, card.getName(), altCostSA.isAbility());
final Cost abCost = new Cost(card, altCost, altCostSA.isAbility());
altCostSA.setPayCosts(abCost);
final StringBuilder sb = new StringBuilder();
@@ -5052,7 +5052,7 @@ public class CardFactoryUtil {
card.setCanMorph(true);
final String[] k = parse.split(":");
final Cost cost = new Cost(k[1], cardName, true);
final Cost cost = new Cost(card, k[1], true);
final int attack = card.getBaseAttack();
final int defense = card.getBaseDefense();

View File

@@ -148,19 +148,18 @@ public class Cost {
* <p>
* Constructor for Cost.
* </p>
*
* @param card
* a Card object that the Cost is associated with
* @param parse
* a {@link java.lang.String} object.
* @param cardName
* a {@link java.lang.String} object.
* @param bAbility
* a boolean.
*/
public Cost(String parse, final String cardName, final boolean bAbility) {
public Cost(final Card card, String parse, final boolean bAbility) {
this.isAbility = bAbility;
// when adding new costs for cost string, place them here
this.name = cardName;
this.name = card.getName();
while (parse.contains(Cost.TAP_X_STR)) {
final String[] splitStr = this.abCostParse(parse, Cost.TAP_X_STR, 3);
parse = this.abUpdateParse(parse, Cost.TAP_X_STR);
@@ -359,7 +358,7 @@ public class Cost {
final String str = parse.substring(startPos, endPos + 1);
return parse.replace(str, "").trim();
}
/**
* <p>
* changeCost.

View File

@@ -51,7 +51,7 @@ public abstract class AbilityActivated extends SpellAbility implements java.io.S
* a {@link java.lang.String} object.
*/
public AbilityActivated(final Card card, final String manacost) {
this(card, new Cost(manacost, card.getName(), true), null);
this(card, new Cost(card, manacost, true), null);
}
/**

View File

@@ -85,7 +85,7 @@ public abstract class AbilityMana extends AbilityActivated implements java.io.Se
* a int.
*/
public AbilityMana(final Card sourceCard, final String parse, final String produced, final int num) {
this(sourceCard, new Cost(parse, sourceCard.getName(), true), produced, num);
this(sourceCard, new Cost(sourceCard, parse, true), produced, num);
}
/**

View File

@@ -175,7 +175,7 @@ public class SpellPermanent extends Spell {
*/
public SpellPermanent(final Card sourceCard) {
// Add Costs for all SpellPermanents
this(sourceCard, new Cost(sourceCard.getManaCost(), sourceCard.getName(), false), null);
this(sourceCard, new Cost(sourceCard, sourceCard.getManaCost(), false), null);
} // Spell_Permanent()
/**