mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 03:08:02 +00:00
CardFactoryUtil: rework Cascade without Svars
This commit is contained in:
@@ -2504,21 +2504,32 @@ public class CardFactoryUtil {
|
|||||||
"Mode$ SpellCast | ValidCard$ Card.Self | Execute$ TrigCascade | Secondary$ " +
|
"Mode$ SpellCast | ValidCard$ Card.Self | Execute$ TrigCascade | Secondary$ " +
|
||||||
"True | TriggerDescription$ Cascade - CARDNAME");
|
"True | TriggerDescription$ Cascade - CARDNAME");
|
||||||
|
|
||||||
final String abString = "AB$ DigUntil | Cost$ 0 | Defined$ You | Amount$ 1 | Valid$ "
|
final String abString = "DB$ DigUntil | Defined$ You | Amount$ 1 | Valid$ "
|
||||||
+ "Card.nonLand+cmcLTCascadeX | FoundDestination$ Exile | RevealedDestination$"
|
+ "Card.nonLand+cmcLTCascadeX | FoundDestination$ Exile | RevealedDestination$"
|
||||||
+ " Exile | References$ CascadeX | ImprintRevealed$ True | RememberFound$ True"
|
+ " Exile | ImprintRevealed$ True | RememberFound$ True";
|
||||||
+ " | SubAbility$ CascadeCast";
|
|
||||||
final String dbCascadeCast = "DB$ Play | Defined$ Remembered | WithoutManaCost$ True | "
|
SpellAbility dig = AbilityFactory.getAbility(abString, card);
|
||||||
+ "Optional$ True | SubAbility$ CascadeMoveToLib";
|
dig.setSVar("CascadeX", "Count$CardManaCost");
|
||||||
|
|
||||||
|
final String dbCascadeCast = "DB$ Play | Defined$ Remembered | WithoutManaCost$ True | Optional$ True";
|
||||||
|
AbilitySub cascadeCast = (AbilitySub)AbilityFactory.getAbility(dbCascadeCast, card);
|
||||||
|
|
||||||
|
dig.setSubAbility(cascadeCast);
|
||||||
|
|
||||||
final String dbMoveToLib = "DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered,Card.IsImprinted"
|
final String dbMoveToLib = "DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered,Card.IsImprinted"
|
||||||
+ " | Origin$ Exile | Destination$ Library | RandomOrder$ True | LibraryPosition$ -1"
|
+ " | Origin$ Exile | Destination$ Library | RandomOrder$ True | LibraryPosition$ -1";
|
||||||
+ " | SubAbility$ CascadeCleanup";
|
|
||||||
card.setSVar("TrigCascade", abString);
|
AbilitySub moveToLib = (AbilitySub)AbilityFactory.getAbility(dbMoveToLib, card);
|
||||||
card.setSVar("CascadeCast", dbCascadeCast);
|
cascadeCast.setSubAbility(moveToLib);
|
||||||
card.setSVar("CascadeMoveToLib", dbMoveToLib);
|
|
||||||
card.setSVar("CascadeX", "Count$CardManaCost");
|
final String cascadeCleanup = "DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True";
|
||||||
card.setSVar("CascadeCleanup", "DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True");
|
AbilitySub cleanup = (AbilitySub)AbilityFactory.getAbility(cascadeCleanup, card);
|
||||||
|
moveToLib.setSubAbility(cleanup);
|
||||||
|
|
||||||
|
dig.setIntrinsic(intrinsic);
|
||||||
|
|
||||||
final Trigger cascadeTrigger = TriggerHandler.parseTrigger(trigScript.toString(), card, intrinsic);
|
final Trigger cascadeTrigger = TriggerHandler.parseTrigger(trigScript.toString(), card, intrinsic);
|
||||||
|
cascadeTrigger.setOverridingAbility(dig);
|
||||||
|
|
||||||
final Trigger cardTrigger = card.addTrigger(cascadeTrigger);
|
final Trigger cardTrigger = card.addTrigger(cascadeTrigger);
|
||||||
if (!intrinsic) {
|
if (!intrinsic) {
|
||||||
|
|||||||
Reference in New Issue
Block a user