building abilities of combined face in a right way

This commit is contained in:
Maxmtg
2013-03-03 18:00:11 +00:00
parent 6e7a15a863
commit deea6d3364
2 changed files with 17 additions and 28 deletions

View File

@@ -288,9 +288,7 @@ public class CardFactory {
// this is the "default" spell for permanents like creatures and artifacts // this is the "default" spell for permanents like creatures and artifacts
if (card.isPermanent() && !card.isAura() && !card.isLand()) { if (card.isPermanent() && !card.isAura() && !card.isLand()) {
if (card.getRules().getSplitType() != CardSplitType.Split) { card.addSpellAbility(new SpellPermanent(card)); // ignore the default spell for combined split cards
card.addSpellAbility(new SpellPermanent(card)); // ignore the default spell for combined split cards
}
} }
CardFactoryUtil.parseKeywords(card, cardName); CardFactoryUtil.parseKeywords(card, cardName);
@@ -307,6 +305,11 @@ public class CardFactory {
card.addStaticAbility(stAbs.get(i)); card.addStaticAbility(stAbs.get(i));
} }
} }
if ( state == CardCharacteristicName.LeftSplit || state == CardCharacteristicName.RightSplit )
{
card.getState(CardCharacteristicName.Original).getSpellAbility().addAll(card.getCharacteristics().getSpellAbility());
}
} }
card.setState(CardCharacteristicName.Original); card.setState(CardCharacteristicName.Original);
@@ -365,7 +368,6 @@ public class CardFactory {
if ( st == CardSplitType.Split ) { if ( st == CardSplitType.Split ) {
card.setName(rules.getName()); card.setName(rules.getName());
// BUILD COMBINED 'Original' SIDE HERE
// Combined mana cost // Combined mana cost
ManaCost combinedManaCost = ManaCost.combine(rules.getMainPart().getManaCost(), rules.getOtherPart().getManaCost()); ManaCost combinedManaCost = ManaCost.combine(rules.getMainPart().getManaCost(), rules.getOtherPart().getManaCost());
card.setManaCost(combinedManaCost); card.setManaCost(combinedManaCost);
@@ -378,22 +380,10 @@ public class CardFactory {
combinedCardColorArr.add(combinedCardColor); combinedCardColorArr.add(combinedCardColor);
card.setColor(combinedCardColorArr); card.setColor(combinedCardColorArr);
// Combined abilities -- DOESN'T DISPLAY THE ABILITY TEXT IN THE CHOICE BOX YET // Super and 'middle' types should use enums.
card.getCharacteristics().getIntrinsicAbility().clear(); List<String> coreTypes = rules.getType().getTypesBeforeDash();
for (String a : rules.getMainPart().getAbilities()) { coreTypes.addAll(rules.getType().getSubTypes());
final SpellAbility sa = AbilityFactory.getAbility(a, card); card.setType(coreTypes);
if (sa.hasParam("SetAsKicked")) {
sa.addOptionalAdditionalCosts("Kicker");
}
card.addSpellAbility(sa);
}
for (String a : rules.getOtherPart().getAbilities()) {
final SpellAbility sa = AbilityFactory.getAbility(a, card);
if (sa.hasParam("SetAsKicked")) {
sa.addOptionalAdditionalCosts("Kicker");
}
card.addSpellAbility(sa);
}
// Combined text -- CURRENTLY TAKES ORACLE TEXT BECAUSE THE ABILITY TEXT DOESN'T WORK (?) // Combined text -- CURRENTLY TAKES ORACLE TEXT BECAUSE THE ABILITY TEXT DOESN'T WORK (?)
String combinedText = String.format("%s: %s\n%s: %s", rules.getMainPart().getName(), rules.getMainPart().getOracleText(), rules.getOtherPart().getName(), rules.getOtherPart().getOracleText()); String combinedText = String.format("%s: %s\n%s: %s", rules.getMainPart().getName(), rules.getMainPart().getOracleText(), rules.getOtherPart().getName(), rules.getOtherPart().getOracleText());

View File

@@ -2796,16 +2796,15 @@ public class CardFactoryUtil {
// ************************************************** // **************************************************
// AbilityFactory cards // AbilityFactory cards
final ArrayList<String> ia = card.getIntrinsicAbilities(); final ArrayList<String> ia = card.getIntrinsicAbilities();
if (ia.size() > 0) { for (int i = 0; i < ia.size(); i++) {
for (int i = 0; i < ia.size(); i++) { // System.out.println(cardName);
// System.out.println(cardName); final SpellAbility sa = AbilityFactory.getAbility(ia.get(i), card);
final SpellAbility sa = AbilityFactory.getAbility(ia.get(i), card); if (sa.hasParam("SetAsKicked")) {
if (sa.hasParam("SetAsKicked")) { sa.addOptionalAdditionalCosts("Kicker");
sa.addOptionalAdditionalCosts("Kicker");
}
card.addSpellAbility(sa);
} }
card.addSpellAbility(sa);
} }
} }
/** /**