CardFactoryUtil: turn Living Weapon into new Format

This commit is contained in:
Hanmac
2016-10-30 15:51:05 +00:00
parent b21a9b36d0
commit e3765ecf3a
2 changed files with 33 additions and 25 deletions

View File

@@ -1433,7 +1433,8 @@ public class Card extends GameEntity implements Comparable<Card> {
|| keyword.startsWith("ETBReplacement") || keyword.startsWith("MayEffectFromOpeningHand")
|| keyword.equals("Undaunted")) {
} else if (keyword.startsWith("Provoke") || keyword.startsWith("Devour") || keyword.equals("Unleash")
|| keyword.startsWith("Soulbond") || keyword.equals("Partner") || keyword.equals("Retrace")) {
|| keyword.startsWith("Soulbond") || keyword.equals("Partner") || keyword.equals("Retrace")
|| keyword.equals("Living Weapon")) {
sbLong.append(keyword + " (" + Keyword.getInstance(keyword).getReminderText() + ")");
} else if (keyword.startsWith("Fabricate") || keyword.startsWith("Soulshift")
|| keyword.startsWith("Crew") || keyword.startsWith("Tribute")) {

View File

@@ -2290,30 +2290,7 @@ public class CardFactoryUtil {
card.setSVar("MyriadCleanup", dbString4);
}
else if (keyword.equals("Living Weapon")) {
card.removeIntrinsicKeyword(keyword);
final StringBuilder sbTrig = new StringBuilder();
sbTrig.append("Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ");
sbTrig.append("ValidCard$ Card.Self | Execute$ TrigGerm | TriggerDescription$ ");
sbTrig.append("Living Weapon (When this Equipment enters the battlefield, ");
sbTrig.append("put a 0/0 black Germ creature token onto the battlefield, then attach this to it.)");
final StringBuilder sbGerm = new StringBuilder();
sbGerm.append("DB$ Token | TokenAmount$ 1 | TokenName$ Germ | TokenTypes$ Creature,Germ | RememberTokens$ True | ");
sbGerm.append("TokenOwner$ You | TokenColors$ Black | TokenPower$ 0 | TokenToughness$ 0 | TokenImage$ B 0 0 Germ | SubAbility$ DBGermAttach");
final StringBuilder sbAttach = new StringBuilder();
sbAttach.append("DB$ Attach | Defined$ Remembered | SubAbility$ DBGermClear");
final StringBuilder sbClear = new StringBuilder();
sbClear.append("DB$ Cleanup | ClearRemembered$ True");
card.setSVar("TrigGerm", sbGerm.toString());
card.setSVar("DBGermAttach", sbAttach.toString());
card.setSVar("DBGermClear", sbClear.toString());
final Trigger etbTrigger = TriggerHandler.parseTrigger(sbTrig.toString(), card, true);
card.addTrigger(etbTrigger);
addTriggerAbility(keyword, card, null);
}
else if (keyword.equals("Epic")) {
addSpellAbility(keyword, card, null);
@@ -2894,6 +2871,36 @@ public class CardFactoryUtil {
if (!intrinsic) {
kws.addTrigger(cardTrigger);
}
} else if (keyword.equals("Living Weapon")) {
final StringBuilder sbTrig = new StringBuilder();
sbTrig.append("Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ");
sbTrig.append("ValidCard$ Card.Self | Secondary$ True | TriggerDescription$ ");
sbTrig.append("Living Weapon (" + Keyword.getInstance(keyword).getReminderText() + ")");
final StringBuilder sbGerm = new StringBuilder();
sbGerm.append("DB$ Token | TokenAmount$ 1 | TokenName$ Germ | TokenTypes$ Creature,Germ | RememberTokens$ True | ");
sbGerm.append("TokenOwner$ You | TokenColors$ Black | TokenPower$ 0 | TokenToughness$ 0 | TokenImage$ B 0 0 Germ");
final SpellAbility saGerm = AbilityFactory.getAbility(sbGerm.toString(), card);
final String sbAttach = "DB$ Attach | Defined$ Remembered";
final AbilitySub saAttach = (AbilitySub) AbilityFactory.getAbility(sbAttach, card);
saGerm.setSubAbility(saAttach);
final String sbClear = "DB$ Cleanup | ClearRemembered$ True";
final AbilitySub saClear = (AbilitySub) AbilityFactory.getAbility(sbClear, card);
saAttach.setSubAbility(saClear);
final Trigger etbTrigger = TriggerHandler.parseTrigger(sbTrig.toString(), card, intrinsic);
etbTrigger.setOverridingAbility(saGerm);
final Trigger cardTrigger = card.addTrigger(etbTrigger);
if (!intrinsic) {
saGerm.setIntrinsic(false);
kws.addTrigger(cardTrigger);
}
} else if (keyword.startsWith("Madness")) {
// Set Madness Triggers
final String[] k = keyword.split(":");