From cf148f4b2cd4a14b9213bf6cd4ff26191a44e5c5 Mon Sep 17 00:00:00 2001 From: Xavier Date: Tue, 5 Jul 2022 23:58:52 -0400 Subject: [PATCH 1/5] Card Script for Alaundo the Seer. --- .../res/cardsfolder/upcoming/alaundo_the_seer.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt b/forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt new file mode 100644 index 00000000000..495cee7a203 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt @@ -0,0 +1,15 @@ +Name:Alaundo the Seer +ManaCost:2 G U +Types:Legendary Creature Human Shaman +PT:3/5 +A:AB$ Draw | Cost$ T | SubAbility$ DBExile | StackDescription$ SpellDescription | SpellDescription$ Draw a card, then exile a card from your hand and put a number of time counters on it equal to its mana value. It gains "When the last time counter is removed from this card, if it's exiled, you may cast it without paying its mana cost. If you cast a creature spell this way, it gains haste until end of turn." Then remove a time counter from each other card you own in exile. +SVar:DBExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | TgtPrompt$ Select a card to exile with a number of time counters equal to its mana value | SubAbility$ DBPutTimeCounters | RememberChanged$ True | Mandatory$ True +SVar:DBPutTimeCounters:DB$ PutCounter | Defined$ Remembered | CounterType$ TIME | CounterNum$ X | SubAbility$ DBAddTrigger +SVar:X:Remembered$CardManaCost +SVar:DBAddTrigger:DB$ Animate | Defined$ Remembered | Triggers$ TWhenLastTimeCounterRemoved | Duration$ Permanent | SubAbility$ DBRemoveTimeCounterOtherCardsInExile +SVar:TWhenLastTimeCounterRemoved:Mode$ CounterRemoved | ValidCard$ Card.Self+counters_EQ0_TIME | TriggerZones$ Exile | CounterType$ TIME | Execute$ DBCastWithoutPayingManaCost | TriggerDescription$ When the last time counter is removed from this card, if it's exiled, you may cast it without paying its mana cost. If you cast a creature spell this way, it gains haste until end of turn. +SVar:DBCastWithoutPayingManaCost:DB$ Play | Valid$ Card.Self | ValidSA$ Spell | ValidZone$ Exile | Destination$ Battlefield | WithoutManaCost$ True | Optional$ True | SubAbility$ DBGiveHaste +SVar:DBGiveHaste:DB$ Pump | Defined$ Self | KW$ Haste | PumpZone$ Stack +SVar:DBRemoveTimeCounterOtherCardsInExile:DB$ RemoveCounterAll | ValidCards$ Card.YouOwn+IsNotRemembered | ValidZone$ Exile | CounterType$ TIME | CounterNum$ 1 | SubAbility$ DBCleanUp +SVar:DBCleanUp:DB$ CleanUp | ClearRemembered$ True +Oracle:{T}:Draw a card, then exile a card from your hand and put a number of time counters on it equal to its mana value. It gains "When the last time counter is removed from this card, if it's exiled, you may cast it without paying its mana cost. If you cast a creature spell this way, it gains haste until end of turn." Then remove a time counter from each other card you own in exile. (Test#2) From 3fdff97f9fa1db12ff848dfb3f8d94aabf00abf3 Mon Sep 17 00:00:00 2001 From: Xavier Date: Wed, 6 Jul 2022 12:39:41 -0400 Subject: [PATCH 2/5] Card Script for Alaundo the Seer using PutCounters. --- forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt b/forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt index 495cee7a203..f2d367e8273 100644 --- a/forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt +++ b/forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt @@ -9,7 +9,7 @@ SVar:X:Remembered$CardManaCost SVar:DBAddTrigger:DB$ Animate | Defined$ Remembered | Triggers$ TWhenLastTimeCounterRemoved | Duration$ Permanent | SubAbility$ DBRemoveTimeCounterOtherCardsInExile SVar:TWhenLastTimeCounterRemoved:Mode$ CounterRemoved | ValidCard$ Card.Self+counters_EQ0_TIME | TriggerZones$ Exile | CounterType$ TIME | Execute$ DBCastWithoutPayingManaCost | TriggerDescription$ When the last time counter is removed from this card, if it's exiled, you may cast it without paying its mana cost. If you cast a creature spell this way, it gains haste until end of turn. SVar:DBCastWithoutPayingManaCost:DB$ Play | Valid$ Card.Self | ValidSA$ Spell | ValidZone$ Exile | Destination$ Battlefield | WithoutManaCost$ True | Optional$ True | SubAbility$ DBGiveHaste -SVar:DBGiveHaste:DB$ Pump | Defined$ Self | KW$ Haste | PumpZone$ Stack +SVar:DBGiveHaste:DB$ Pump | Defined$ Self | KW$ Haste | ConditionDefined$ Self | ConditionPresent$ Card.Creature | PumpZone$ Stack SVar:DBRemoveTimeCounterOtherCardsInExile:DB$ RemoveCounterAll | ValidCards$ Card.YouOwn+IsNotRemembered | ValidZone$ Exile | CounterType$ TIME | CounterNum$ 1 | SubAbility$ DBCleanUp SVar:DBCleanUp:DB$ CleanUp | ClearRemembered$ True -Oracle:{T}:Draw a card, then exile a card from your hand and put a number of time counters on it equal to its mana value. It gains "When the last time counter is removed from this card, if it's exiled, you may cast it without paying its mana cost. If you cast a creature spell this way, it gains haste until end of turn." Then remove a time counter from each other card you own in exile. (Test#2) +Oracle:{T}:Draw a card, then exile a card from your hand and put a number of time counters on it equal to its mana value. It gains "When the last time counter is removed from this card, if it's exiled, you may cast it without paying its mana cost. If you cast a creature spell this way, it gains haste until end of turn." Then remove a time counter from each other card you own in exile. From 6ba164ebadbaad49abac3e6dc7d141d5eb6a33e6 Mon Sep 17 00:00:00 2001 From: Xavier Date: Wed, 6 Jul 2022 12:45:26 -0400 Subject: [PATCH 3/5] Card Script for Alaundo the Seer WithCountersType and WithCountersAmount, and modifications to ChangeZoneEffect. This commit adds code to ChangeZoneEffect which enables WithCountersType and WithCountersAmount with an SVar dependent on Remembered when exiling. --- .../java/forge/game/ability/effects/ChangeZoneEffect.java | 7 +++++++ forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt | 3 +-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java index 072538ebf2e..d675f24b9f6 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java @@ -1448,6 +1448,13 @@ public class ChangeZoneEffect extends SpellAbilityEffect { } } } + if (ZoneType.Exile.equals(destination) && sa.hasParam("WithCountersType")) { + CounterType cType = CounterType.getType(sa.getParam("WithCountersType")); + int cAmount = AbilityUtils.calculateAmount(sa.getOriginalHost(), sa.getParamOrDefault("WithCountersAmount", "1"), sa); + GameEntityCounterTable table = new GameEntityCounterTable(); + movedCard.addCounter(cType, cAmount, player, table); + table.replaceCounterEffect(game, sa, true); + } } if (((!ZoneType.Battlefield.equals(destination) && changeType != null && !defined && !changeType.equals("Card")) diff --git a/forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt b/forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt index f2d367e8273..f27a9415ddd 100644 --- a/forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt +++ b/forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt @@ -3,8 +3,7 @@ ManaCost:2 G U Types:Legendary Creature Human Shaman PT:3/5 A:AB$ Draw | Cost$ T | SubAbility$ DBExile | StackDescription$ SpellDescription | SpellDescription$ Draw a card, then exile a card from your hand and put a number of time counters on it equal to its mana value. It gains "When the last time counter is removed from this card, if it's exiled, you may cast it without paying its mana cost. If you cast a creature spell this way, it gains haste until end of turn." Then remove a time counter from each other card you own in exile. -SVar:DBExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | TgtPrompt$ Select a card to exile with a number of time counters equal to its mana value | SubAbility$ DBPutTimeCounters | RememberChanged$ True | Mandatory$ True -SVar:DBPutTimeCounters:DB$ PutCounter | Defined$ Remembered | CounterType$ TIME | CounterNum$ X | SubAbility$ DBAddTrigger +SVar:DBExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | TgtPrompt$ Select a card to exile with a number of time counters equal to its mana value | WithCountersType$ TIME | WithCountersAmount$ X | SubAbility$ DBAddTrigger | RememberChanged$ True | Mandatory$ True SVar:X:Remembered$CardManaCost SVar:DBAddTrigger:DB$ Animate | Defined$ Remembered | Triggers$ TWhenLastTimeCounterRemoved | Duration$ Permanent | SubAbility$ DBRemoveTimeCounterOtherCardsInExile SVar:TWhenLastTimeCounterRemoved:Mode$ CounterRemoved | ValidCard$ Card.Self+counters_EQ0_TIME | TriggerZones$ Exile | CounterType$ TIME | Execute$ DBCastWithoutPayingManaCost | TriggerDescription$ When the last time counter is removed from this card, if it's exiled, you may cast it without paying its mana cost. If you cast a creature spell this way, it gains haste until end of turn. From 80472b27f7e01914855e44ecef35564e30dc558f Mon Sep 17 00:00:00 2001 From: Xavier Date: Thu, 7 Jul 2022 19:09:55 -0400 Subject: [PATCH 4/5] Added DeckHints --- forge-gui/release-files/CONTRIBUTORS.txt | 1 + forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/forge-gui/release-files/CONTRIBUTORS.txt b/forge-gui/release-files/CONTRIBUTORS.txt index 863dbaa699d..13a02623a39 100644 --- a/forge-gui/release-files/CONTRIBUTORS.txt +++ b/forge-gui/release-files/CONTRIBUTORS.txt @@ -60,5 +60,6 @@ twosat Xyx Zimtente Zuchinni +XavierMD (If you think your name should be on this list, add it with your next contribution) diff --git a/forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt b/forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt index f27a9415ddd..8751788d632 100644 --- a/forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt +++ b/forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt @@ -11,4 +11,5 @@ SVar:DBCastWithoutPayingManaCost:DB$ Play | Valid$ Card.Self | ValidSA$ Spell | SVar:DBGiveHaste:DB$ Pump | Defined$ Self | KW$ Haste | ConditionDefined$ Self | ConditionPresent$ Card.Creature | PumpZone$ Stack SVar:DBRemoveTimeCounterOtherCardsInExile:DB$ RemoveCounterAll | ValidCards$ Card.YouOwn+IsNotRemembered | ValidZone$ Exile | CounterType$ TIME | CounterNum$ 1 | SubAbility$ DBCleanUp SVar:DBCleanUp:DB$ CleanUp | ClearRemembered$ True +DeckHints:Keyword$Suspend Oracle:{T}:Draw a card, then exile a card from your hand and put a number of time counters on it equal to its mana value. It gains "When the last time counter is removed from this card, if it's exiled, you may cast it without paying its mana cost. If you cast a creature spell this way, it gains haste until end of turn." Then remove a time counter from each other card you own in exile. From aa395db23408bc16e10aacc8903606b3159f6a5e Mon Sep 17 00:00:00 2001 From: Xavier Date: Sat, 9 Jul 2022 11:24:03 -0400 Subject: [PATCH 5/5] CleanUp -> Cleanup --- forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt b/forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt index 8751788d632..8d018b7090f 100644 --- a/forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt +++ b/forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt @@ -10,6 +10,6 @@ SVar:TWhenLastTimeCounterRemoved:Mode$ CounterRemoved | ValidCard$ Card.Self+cou SVar:DBCastWithoutPayingManaCost:DB$ Play | Valid$ Card.Self | ValidSA$ Spell | ValidZone$ Exile | Destination$ Battlefield | WithoutManaCost$ True | Optional$ True | SubAbility$ DBGiveHaste SVar:DBGiveHaste:DB$ Pump | Defined$ Self | KW$ Haste | ConditionDefined$ Self | ConditionPresent$ Card.Creature | PumpZone$ Stack SVar:DBRemoveTimeCounterOtherCardsInExile:DB$ RemoveCounterAll | ValidCards$ Card.YouOwn+IsNotRemembered | ValidZone$ Exile | CounterType$ TIME | CounterNum$ 1 | SubAbility$ DBCleanUp -SVar:DBCleanUp:DB$ CleanUp | ClearRemembered$ True +SVar:DBCleanUp:DB$ Cleanup | ClearRemembered$ True DeckHints:Keyword$Suspend Oracle:{T}:Draw a card, then exile a card from your hand and put a number of time counters on it equal to its mana value. It gains "When the last time counter is removed from this card, if it's exiled, you may cast it without paying its mana cost. If you cast a creature spell this way, it gains haste until end of turn." Then remove a time counter from each other card you own in exile.