mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
- Add a static ability string to card when adding a keyword static ability (fixes Clone on a card with one of those keyword abilities, e.g. Cloning a card with Changeling).
- Simplified CardFactoryUtil::addStaticAbility code.
This commit is contained in:
@@ -3913,6 +3913,7 @@ public class CardFactoryUtil {
|
|||||||
|
|
||||||
public static void addStaticAbility(final String keyword, final Card card, final KeywordsChange kws) {
|
public static void addStaticAbility(final String keyword, final Card card, final KeywordsChange kws) {
|
||||||
final boolean intrinsic = kws == null;
|
final boolean intrinsic = kws == null;
|
||||||
|
String effect = null;
|
||||||
|
|
||||||
if (keyword.startsWith("Escalate")) {
|
if (keyword.startsWith("Escalate")) {
|
||||||
final String[] k = keyword.split(":");
|
final String[] k = keyword.split(":");
|
||||||
@@ -3925,45 +3926,28 @@ public class CardFactoryUtil {
|
|||||||
}
|
}
|
||||||
sb.append(cost.toSimpleString());
|
sb.append(cost.toSimpleString());
|
||||||
|
|
||||||
final String effect = "Mode$ RaiseCost | ValidCard$ Card.Self | Type$ Spell | Amount$ Escalate | Cost$ "+ manacost +" | EffectZone$ All" +
|
effect = "Mode$ RaiseCost | ValidCard$ Card.Self | Type$ Spell | Amount$ Escalate | Cost$ "+ manacost +" | EffectZone$ All" +
|
||||||
" | Description$ " + sb.toString() + " (" + Keyword.getInstance(keyword).getReminderText() + ")";
|
" | Description$ " + sb.toString() + " (" + Keyword.getInstance(keyword).getReminderText() + ")";
|
||||||
StaticAbility st = card.addStaticAbility(effect);
|
|
||||||
st.setIntrinsic(intrinsic);
|
|
||||||
if (!intrinsic) {
|
|
||||||
kws.addStaticAbility(st);
|
|
||||||
}
|
|
||||||
} else if (keyword.equals("Changeling")) {
|
} else if (keyword.equals("Changeling")) {
|
||||||
final String effect = "Mode$ Continuous | EffectZone$ All | Affected$ Card.Self" +
|
effect = "Mode$ Continuous | EffectZone$ All | Affected$ Card.Self" +
|
||||||
" | CharacteristicDefining$ True | AddType$ AllCreatureTypes | Secondary$ True" +
|
" | CharacteristicDefining$ True | AddType$ AllCreatureTypes | Secondary$ True" +
|
||||||
" | Description$ Changeling (" + Keyword.getInstance(keyword).getReminderText() + ")";
|
" | Description$ Changeling (" + Keyword.getInstance(keyword).getReminderText() + ")";
|
||||||
StaticAbility st = card.addStaticAbility(effect);
|
|
||||||
st.setIntrinsic(intrinsic);
|
|
||||||
if (!intrinsic) {
|
|
||||||
kws.addStaticAbility(st);
|
|
||||||
}
|
|
||||||
} else if (keyword.startsWith("Strive")) {
|
} else if (keyword.startsWith("Strive")) {
|
||||||
final String[] k = keyword.split(":");
|
final String[] k = keyword.split(":");
|
||||||
final String manacost = k[1];
|
final String manacost = k[1];
|
||||||
|
|
||||||
final String effect = "Mode$ RaiseCost | ValidCard$ Card.Self | Type$ Spell | Amount$ Strive | Cost$ "+ manacost +" | EffectZone$ All" +
|
effect = "Mode$ RaiseCost | ValidCard$ Card.Self | Type$ Spell | Amount$ Strive | Cost$ "+ manacost +" | EffectZone$ All" +
|
||||||
" | Description$ Strive - " + Keyword.getInstance(keyword).getReminderText();
|
" | Description$ Strive - " + Keyword.getInstance(keyword).getReminderText();
|
||||||
StaticAbility st = card.addStaticAbility(effect);
|
|
||||||
st.setIntrinsic(intrinsic);
|
|
||||||
if (!intrinsic) {
|
|
||||||
kws.addStaticAbility(st);
|
|
||||||
}
|
|
||||||
} else if (keyword.equals("Unleash")) {
|
} else if (keyword.equals("Unleash")) {
|
||||||
final String effect = "Mode$ Continuous | Affected$ Card.Self+counters_GE1_P1P1 | AddHiddenKeyword$ CARDNAME can't block.";
|
effect = "Mode$ Continuous | Affected$ Card.Self+counters_GE1_P1P1 | AddHiddenKeyword$ CARDNAME can't block.";
|
||||||
|
|
||||||
StaticAbility st = card.addStaticAbility(effect);
|
|
||||||
st.setIntrinsic(intrinsic);
|
|
||||||
if (!intrinsic) {
|
|
||||||
kws.addStaticAbility(st);
|
|
||||||
}
|
|
||||||
} else if (keyword.equals("Undaunted")) {
|
} else if (keyword.equals("Undaunted")) {
|
||||||
final String effect = "Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ Undaunted | EffectZone$ All" +
|
effect = "Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ Undaunted | EffectZone$ All" +
|
||||||
" | Description$ Undaunted (" + Keyword.getInstance(keyword).getReminderText() + ")";
|
" | Description$ Undaunted (" + Keyword.getInstance(keyword).getReminderText() + ")";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (effect != null) {
|
||||||
StaticAbility st = card.addStaticAbility(effect);
|
StaticAbility st = card.addStaticAbility(effect);
|
||||||
|
card.addStaticAbilityString(effect);
|
||||||
st.setIntrinsic(intrinsic);
|
st.setIntrinsic(intrinsic);
|
||||||
if (!intrinsic) {
|
if (!intrinsic) {
|
||||||
kws.addStaticAbility(st);
|
kws.addStaticAbility(st);
|
||||||
|
|||||||
Reference in New Issue
Block a user