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
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);
@@ -307,6 +305,11 @@ public class CardFactory {
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);
@@ -365,7 +368,6 @@ public class CardFactory {
if ( st == CardSplitType.Split ) {
card.setName(rules.getName());
// BUILD COMBINED 'Original' SIDE HERE
// Combined mana cost
ManaCost combinedManaCost = ManaCost.combine(rules.getMainPart().getManaCost(), rules.getOtherPart().getManaCost());
card.setManaCost(combinedManaCost);
@@ -378,22 +380,10 @@ public class CardFactory {
combinedCardColorArr.add(combinedCardColor);
card.setColor(combinedCardColorArr);
// Combined abilities -- DOESN'T DISPLAY THE ABILITY TEXT IN THE CHOICE BOX YET
card.getCharacteristics().getIntrinsicAbility().clear();
for (String a : rules.getMainPart().getAbilities()) {
final SpellAbility sa = AbilityFactory.getAbility(a, card);
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);
}
// Super and 'middle' types should use enums.
List<String> coreTypes = rules.getType().getTypesBeforeDash();
coreTypes.addAll(rules.getType().getSubTypes());
card.setType(coreTypes);
// 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());

View File

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