diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index fcebf2c75eb..ac802460ff0 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -2354,25 +2354,29 @@ public class CardFactoryUtil { inst.addTrigger(bushidoTrigger1); inst.addTrigger(bushidoTrigger2); } else if (keyword.equals("Cascade")) { - final StringBuilder trigScript = new StringBuilder( - "Mode$ SpellCast | ValidCard$ Card.Self | Secondary$ True | " + - "TriggerDescription$ Cascade - CARDNAME"); - - final String abString = "DB$ DigUntil | Defined$ You | Amount$ 1 | Valid$ " - + "Card.nonLand+cmcLTCascadeX | FoundDestination$ Exile | RevealedDestination$" - + " Exile | ImprintRevealed$ True | RememberFound$ True"; + final StringBuilder trigScript = new StringBuilder("Mode$ SpellCast | ValidCard$ Card.Self" + + " | Secondary$ True | TriggerDescription$ Cascade - CARDNAME"); + final String abString = "DB$ DigUntil | Defined$ You | Amount$ 1 | Valid$ Card.nonLand+cmcLTCascadeX" + + " | FoundDestination$ Exile | RevealedDestination$ Exile | ImprintFound$ True" + + " | RememberRevealed$ True"; SpellAbility dig = AbilityFactory.getAbility(abString, card); dig.setSVar("CascadeX", "Count$CardManaCost"); - final String dbCascadeCast = "DB$ Play | Defined$ Remembered | WithoutManaCost$ True | Optional$ True"; - AbilitySub cascadeCast = (AbilitySub)AbilityFactory.getAbility(dbCascadeCast, card); + final String dbLandPut = "DB$ ChangeZone | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ1" + + " | Hidden$ True | Origin$ Exile | Destination$ Battlefield | ChangeType$ Land.IsRemembered" + + " | ChangeNum$ 1 | Tapped$ True | ForgetChanged$ True" + + " | SelectPrompt$ You may select a land to put on the battlefield tapped"; + AbilitySub landPut = (AbilitySub)AbilityFactory.getAbility(dbLandPut, card); + landPut.setSVar("X", "Count$Averna"); + dig.setSubAbility(landPut); - dig.setSubAbility(cascadeCast); + final String dbCascadeCast = "DB$ Play | Defined$ Imprinted | WithoutManaCost$ True | Optional$ True"; + AbilitySub cascadeCast = (AbilitySub)AbilityFactory.getAbility(dbCascadeCast, card); + landPut.setSubAbility(cascadeCast); final String dbMoveToLib = "DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered,Card.IsImprinted" + " | Origin$ Exile | Destination$ Library | RandomOrder$ True | LibraryPosition$ -1"; - AbilitySub moveToLib = (AbilitySub)AbilityFactory.getAbility(dbMoveToLib, card); cascadeCast.setSubAbility(moveToLib);