mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 18:28:00 +00:00
improve Decayed keyword trigger implementation
This commit is contained in:
@@ -968,6 +968,26 @@ public class CardFactoryUtil {
|
||||
trigger.setOverridingAbility(AbilityFactory.getAbility(effect, card));
|
||||
|
||||
inst.addTrigger(trigger);
|
||||
} else if (keyword.equals("Decayed")) {
|
||||
final String attackTrig = "Mode$ Attacks | ValidCard$ Card.Self | Secondary$ True | TriggerDescription$ " +
|
||||
"When a creature with decayed attacks, sacrifice it at end of combat.";
|
||||
|
||||
final String delayTrigStg = "DB$ DelayedTrigger | Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Player | " +
|
||||
"TriggerDescription$ At end of combat, sacrifice CARDNAME.";
|
||||
|
||||
final String trigSacStg = "DB$ SacrificeAll | Defined$ Self | Controller$ You";
|
||||
|
||||
SpellAbility delayTrigSA = AbilityFactory.getAbility(delayTrigStg, card);
|
||||
|
||||
AbilitySub sacSA = (AbilitySub) AbilityFactory.getAbility(trigSacStg, card);
|
||||
delayTrigSA.setAdditionalAbility("Execute", sacSA);
|
||||
|
||||
final Trigger parsedTrigger = TriggerHandler.parseTrigger(attackTrig, card, intrinsic);
|
||||
|
||||
delayTrigSA.setIntrinsic(intrinsic);
|
||||
|
||||
parsedTrigger.setOverridingAbility(delayTrigSA);
|
||||
inst.addTrigger(parsedTrigger);
|
||||
} else if (keyword.equals("Demonstrate")) {
|
||||
final String trigScript = "Mode$ SpellCast | ValidCard$ Card.Self | TriggerDescription$ Demonstrate (" + inst.getReminderText() + ")";
|
||||
final String youCopyStr = "DB$ CopySpellAbility | Defined$ TriggeredSpellAbility | MayChooseTarget$ True | Optional$ True | RememberCopies$ True";
|
||||
@@ -3401,26 +3421,9 @@ public class CardFactoryUtil {
|
||||
} else if (keyword.startsWith("Dash")) {
|
||||
effect = "Mode$ Continuous | Affected$ Card.Self+dashed | AddKeyword$ Haste";
|
||||
} else if (keyword.equals("Decayed")) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("Mode$ Continuous | Affected$ Card.Self | AddTrigger$ DecayedTrigger | AddHiddenKeyword$ ");
|
||||
sb.append("CARDNAME can't block.");
|
||||
effect = sb.toString();
|
||||
|
||||
sb = new StringBuilder();
|
||||
sb.append("Mode$ Attacks | ValidCard$ Card.Self | Execute$ DelayedTrig | TriggerDescription$ ");
|
||||
sb.append("When CARDNAME attacks, sacrifice it at end of combat.");
|
||||
String trig = sb.toString();
|
||||
|
||||
sb = new StringBuilder();
|
||||
sb.append("DB$ DelayedTrigger | Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Player | Execute$ ");
|
||||
sb.append("TrigSacrifice | TriggerDescription$ At end of combat, sacrifice CARDNAME.");
|
||||
String delTrig = sb.toString();
|
||||
|
||||
String trigSac = "DB$ SacrificeAll | Defined$ Self | Controller$ You";
|
||||
|
||||
svars.put("DecayedTrigger", trig);
|
||||
svars.put("DelayedTrig", delTrig);
|
||||
svars.put("TrigSacrifice", trigSac);
|
||||
effect = "Mode$ Continuous | Affected$ Card.Self | AddHiddenKeyword$ CARDNAME can't block. | " +
|
||||
"Secondary$ True";
|
||||
svars.put("SacrificeEndCombat", "True");
|
||||
} else if (keyword.equals("Defender")) {
|
||||
effect = "Mode$ CantAttack | ValidCard$ Card.Self | DefenderKeyword$ True | Secondary$ True";
|
||||
} else if (keyword.equals("Devoid")) {
|
||||
|
||||
Reference in New Issue
Block a user