mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 02:08: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));
|
trigger.setOverridingAbility(AbilityFactory.getAbility(effect, card));
|
||||||
|
|
||||||
inst.addTrigger(trigger);
|
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")) {
|
} else if (keyword.equals("Demonstrate")) {
|
||||||
final String trigScript = "Mode$ SpellCast | ValidCard$ Card.Self | TriggerDescription$ Demonstrate (" + inst.getReminderText() + ")";
|
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";
|
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")) {
|
} else if (keyword.startsWith("Dash")) {
|
||||||
effect = "Mode$ Continuous | Affected$ Card.Self+dashed | AddKeyword$ Haste";
|
effect = "Mode$ Continuous | Affected$ Card.Self+dashed | AddKeyword$ Haste";
|
||||||
} else if (keyword.equals("Decayed")) {
|
} else if (keyword.equals("Decayed")) {
|
||||||
StringBuilder sb = new StringBuilder();
|
effect = "Mode$ Continuous | Affected$ Card.Self | AddHiddenKeyword$ CARDNAME can't block. | " +
|
||||||
sb.append("Mode$ Continuous | Affected$ Card.Self | AddTrigger$ DecayedTrigger | AddHiddenKeyword$ ");
|
"Secondary$ True";
|
||||||
sb.append("CARDNAME can't block.");
|
svars.put("SacrificeEndCombat", "True");
|
||||||
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);
|
|
||||||
} else if (keyword.equals("Defender")) {
|
} else if (keyword.equals("Defender")) {
|
||||||
effect = "Mode$ CantAttack | ValidCard$ Card.Self | DefenderKeyword$ True | Secondary$ True";
|
effect = "Mode$ CantAttack | ValidCard$ Card.Self | DefenderKeyword$ True | Secondary$ True";
|
||||||
} else if (keyword.equals("Devoid")) {
|
} else if (keyword.equals("Devoid")) {
|
||||||
|
|||||||
Reference in New Issue
Block a user