diff --git a/forge-game/src/main/java/forge/game/card/CounterEnumType.java b/forge-game/src/main/java/forge/game/card/CounterEnumType.java index 95c44cb3374..4a853951e4f 100644 --- a/forge-game/src/main/java/forge/game/card/CounterEnumType.java +++ b/forge-game/src/main/java/forge/game/card/CounterEnumType.java @@ -355,6 +355,8 @@ public enum CounterEnumType { QUEST("QUEST", 251, 189, 0), + RALLY("RALLY", 25, 230, 225), + RELEASE("RELEASE", 200, 210, 50), REPRIEVE("REPR", 240, 120, 50), diff --git a/forge-gui/res/cardsfolder/upcoming/adaptive_training_post.txt b/forge-gui/res/cardsfolder/upcoming/adaptive_training_post.txt new file mode 100644 index 00000000000..6b0e90635aa --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/adaptive_training_post.txt @@ -0,0 +1,9 @@ +Name:Adaptive Training Post +ManaCost:2 U +Types:Artifact +T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | IsPresent$ Card.Self+counters_LT3_CHARGE | TriggerDescription$ Whenever you cast an instant or sorcery spell, if this artifact has fewer than three charge counters on it, put a charge counter on it. +SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ CHARGE | CounterNum$ 1 +A:AB$ DelayedTrigger | Cost$ SubCounter<3/CHARGE> | AILogic$ SpellCopy | Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | ThisTurn$ True | Execute$ EffTrigCopy | SpellDescription$ When you cast your next instant or sorcery spell this turn, copy that spell. You may choose new targets for the copy. +SVar:EffTrigCopy:DB$ CopySpellAbility | Defined$ TriggeredSpellAbility | MayChooseTarget$ True +SVar:BuffedBy:Instant,Sorcery +Oracle:Whenever you cast an instant or sorcery spell, if this artifact has fewer than three charge counters on it, put a charge counter on it.\nRemove three charge counters from this artifact: When you next cast an instant or sorcery spell this turn, copy it and you may choose new targets for the copy. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/aligned_heart.txt b/forge-gui/res/cardsfolder/upcoming/aligned_heart.txt new file mode 100644 index 00000000000..33e679bf3ed --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/aligned_heart.txt @@ -0,0 +1,11 @@ +Name:Aligned Heart +ManaCost:2 W +Types:Enchantment +K:Flying +K:Vigilance +T:Mode$ SpellCast | ValidCard$ Card.YouCtrl | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigCopy | ActivatorThisTurnCast$ EQ2 | TriggerDescription$ Flurry — Whenever you cast your second spell each turn, put a rally counter on this enchantment. Then create a 1/1 white Monk creature token with prowess for each rally counter on it. (Whenever you cast a noncreature spell, the token gets +1/+1 until end of turn.) +SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ RALLY | CounterNum$ 1 | SubAbility$ DBToken +SVar:DBToken:DB$ Token | TokenAmount$ X | TokenScript$ w_1_1_monk_prowess | TokenOwner$ You +SVar:X:Count$CardCounters.RALLY +SVar:BuffedBy:Card +Oracle:Flurry — Whenever you cast your second spell each turn, put a rally counter on this enchantment. Then create a 1/1 white Monk creature token with prowess for each rally counter on it. (Whenever you cast a noncreature spell, the token gets +1/+1 until end of turn.) diff --git a/forge-gui/res/cardsfolder/upcoming/felothar_the_steadfast.txt b/forge-gui/res/cardsfolder/upcoming/felothar_the_steadfast.txt new file mode 100644 index 00000000000..b482b62e087 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/felothar_the_steadfast.txt @@ -0,0 +1,11 @@ +Name:Felothar the Steadfast +ManaCost:1 W B G +Types:Legendary Creature Human Warrior +PT:0/5 +S:Mode$ CombatDamageToughness | ValidCard$ Creature.YouCtrl | Description$ Each creature you control assigns combat damage equal to its toughness rather than its power. +S:Mode$ CanAttackDefender | ValidCard$ Creature.YouCtrl | Description$ Creatures you control can attack as though they didn't have defender. +A:AB$ Draw | Cost$ 3 T Sac<1/Creature.Other/another creature> | NumCards$ X | SubAbility$ DBDiscard | SpellDescription$ Draw cards equal to the sacrificed creature's toughness, then discard cards equal to its power. +SVar:DBDiscard:DB$ Discard | NumCards$ Y | Mode$ TgtChoose +SVar:X:Sacrificed$CardToughness +SVar:Y:Sacrificed$CardPower +Oracle:Each creature you control assigns combat damage equal to its toughness rather than its power.\nCreatures you control can attack as though they didn't have defender.\n{3}, {T}, Sacrifice another creature: Draw cards equal to the sacrificed creature's toughness, then discard cards equal to its power. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/kotis_sibsig_champion.txt b/forge-gui/res/cardsfolder/upcoming/kotis_sibsig_champion.txt new file mode 100644 index 00000000000..e5ffd31ef05 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/kotis_sibsig_champion.txt @@ -0,0 +1,10 @@ +Name:Kotis, Sibsig Champion +ManaCost:B G U +Types:Legendary Creature Zombie Warrior +PT:3/3 +S:Mode$ Continuous | Affected$ Creature.YouOwn | Condition$ PlayerTurn | MayPlay$ True | MayPlayLimit$ 1 | RaiseCost$ ExileFromGrave<3/Card/other cards> | EffectZone$ Battlefield | AffectedZone$ Graveyard | Description$ Once during each of your turns, you may cast a creature spell from your graveyard by exiling three other cards from your graveyard in addition to paying its other costs. +T:Mode$ ChangesZoneAll | ValidCards$ Creature.YouCtrl+ThisTurnEnteredFrom_Graveyard,Creature.YouCtrl+wasCastFromGraveyard | Destination$ Battlefield | TriggerZones$ Battlefield | ActivationLimit$ 1 | Execute$ TrigPutCounter | TriggerDescription$ Whenever one or more creatures you control enter, if one or more of them entered from a graveyard or was cast from a graveyard, put two +1/+1 counters on NICKNAME. +SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 2 +DeckHas:Ability$Counters|Graveyard +DeckHints:Ability$Graveyard|Mill +Oracle:Once during each of your turns, you may cast a creature spell from your graveyard by exiling three other cards from your graveyard in addition to paying its other costs.\nWhenever one or more creatures you control enter, if one or more of them entered from a graveyard or was cast from a graveyard, put two +1/+1 counters on Kotis. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/mardu_devotee.txt b/forge-gui/res/cardsfolder/upcoming/mardu_devotee.txt index d4b55c208a5..0fb9ebaee23 100644 --- a/forge-gui/res/cardsfolder/upcoming/mardu_devotee.txt +++ b/forge-gui/res/cardsfolder/upcoming/mardu_devotee.txt @@ -1,8 +1,8 @@ -Name:Mardu Devotee -ManaCost:W -Types:Creature Human Scout -PT:2/2 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigScry | TriggerDescription$ When this creature enters, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom and the rest on top in any order.) -SVar:TrigScry:DB$ Scry | ScryNum$ 2 -A:AB$ Mana | Cost$ 1 | Produced$ Combo R W B | ActivationLimit$ 1 | SpellDescription$ Add {R}, {W}, or {B}. Activate only once each turn. -Oracle:When this creature enters, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom and the rest on top in any order.)\n{1}: Add {R}, {W}, or {B}. Activate only once each turn. \ No newline at end of file +Name:Mardu Devotee +ManaCost:W +Types:Creature Human Scout +PT:1/2 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigScry | TriggerDescription$ When this creature enters, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom and the rest on top in any order.) +SVar:TrigScry:DB$ Scry | ScryNum$ 2 +A:AB$ Mana | Cost$ 1 | Produced$ Combo R W B | ActivationLimit$ 1 | SpellDescription$ Add {R}, {W}, or {B}. Activate only once each turn. +Oracle:When this creature enters, scry 2. (Look at the top two cards of your library, then put any number of them on the bottom and the rest on top in any order.)\n{1}: Add {R}, {W}, or {B}. Activate only once each turn. diff --git a/forge-gui/res/cardsfolder/upcoming/rite_of_renewal.txt b/forge-gui/res/cardsfolder/upcoming/rite_of_renewal.txt index 71c7824f281..dd0d4af5ceb 100644 --- a/forge-gui/res/cardsfolder/upcoming/rite_of_renewal.txt +++ b/forge-gui/res/cardsfolder/upcoming/rite_of_renewal.txt @@ -1,9 +1,9 @@ -Name:Rite of Renewal -ManaCost:3 G -Types:Sorcery -A:SP$ Pump | Origin$ Graveyard | TgtZone$ Graveyard | TargetMin$ 0 | TargetMax$ 2 | TgtPrompt$ Choose up to two target permanent cards in your graveyard | ValidTgts$ Permanent.YouOwn | SubAbility$ DBPump | SpellDescription$ Return up to two target permanent cards from your graveyard to your hand. Target player shuffles up to four target cards from their graveyard into their library. Exile CARDNAME. -SVar:DBPump:DB$ Pump | ValidTgts$ Player | SubAbility$ DBChangeZone | IsCurse$ True -SVar:DBChangeZone:DB$ ChangeZone | TargetMin$ 0 | TargetMax$ 4 | TargetsWithDefinedController$ ParentTarget | Origin$ Graveyard | Destination$ Library | Shuffle$ True | TgtPrompt$ Select up to four target cards in targeted player's graveyard | ValidTgts$ Card | SubAbility$ DBExile -SVar:DBExile:DB$ ChangeZone | Origin$ Stack | Destination$ Exile -DeckHas:Ability$Graveyard -Oracle:Return up to two target permanent cards from your graveyard to your hand. Target player shuffles up to four target cards from their graveyard into their library. Exile Rite of Renewal. +Name:Rite of Renewal +ManaCost:3 G +Types:Sorcery +A:SP$ ChangeZone | Origin$ Graveyard | TargetMin$ 0 | TargetMax$ 2 | TgtPrompt$ Choose up to two target permanent cards in your graveyard | ValidTgts$ Permanent.YouOwn | SubAbility$ DBPump | SpellDescription$ Return up to two target permanent cards from your graveyard to your hand. Target player shuffles up to four target cards from their graveyard into their library. Exile CARDNAME. +SVar:DBPump:DB$ Pump | ValidTgts$ Player | SubAbility$ DBChangeZone | IsCurse$ True +SVar:DBChangeZone:DB$ ChangeZone | TargetMin$ 0 | TargetMax$ 4 | TargetsWithDefinedController$ ParentTarget | Origin$ Graveyard | Destination$ Library | Shuffle$ True | TgtPrompt$ Select up to four target cards in targeted player's graveyard | ValidTgts$ Card | SubAbility$ DBExile +SVar:DBExile:DB$ ChangeZone | Origin$ Stack | Destination$ Exile +DeckHas:Ability$Graveyard +Oracle:Return up to two target permanent cards from your graveyard to your hand. Target player shuffles up to four target cards from their graveyard into their library. Exile Rite of Renewal. diff --git a/forge-gui/res/cardsfolder/upcoming/severance_priest.txt b/forge-gui/res/cardsfolder/upcoming/severance_priest.txt new file mode 100644 index 00000000000..fdb6e789837 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/severance_priest.txt @@ -0,0 +1,12 @@ +Name:Severance Priest +ManaCost:W B G +Types:Creature Djinn Cleric +PT:3/3 +K:Deathtouch +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When this creature enters, target opponent reveals their hand. You may choose a nonland card from it. If you do, exile that card. +SVar:TrigExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | ValidTgts$ Opponent | DefinedPlayer$ Targeted | Chooser$ You | TgtPrompt$ Select target opponent | ChangeType$ Card.nonLand | ChangeNum$ 1 | Optional$ True | RememberChanged$ True | IsCurse$ True +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When this creature leaves the battlefield, the exiled card's owner creates an X/X white Spirit creature token where X is the mana value of the exiled card. +SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ w_x_x_spirit | TokenOwner$ RememberedOwner | ConditionDefined$ Remembered | ConditionPresent$ Card.ExiledWithSource | TokenPower$ X | TokenToughness$ X | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:X:Remembered$CardManaCost +Oracle:Deathtouch\nWhen this creature enters, target opponent reveals their hand. You may choose a nonland card from it. If you do, exile that card.\nWhen this creature leaves the battlefield, the exiled card's owner creates an X/X white Spirit creature token where X is the mana value of the exiled card. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/shiko_and_narset_unified.txt b/forge-gui/res/cardsfolder/upcoming/shiko_and_narset_unified.txt new file mode 100644 index 00000000000..5295acf5d01 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/shiko_and_narset_unified.txt @@ -0,0 +1,12 @@ +Name:Shiko and Narset, Unified +ManaCost:1 U R W +Types:Legendary Creature Human Spirit Dragon +PT:4/4 +K:Flying +K:Vigilance +T:Mode$ SpellCast | ValidCard$ Card.YouCtrl | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigCopy | ActivatorThisTurnCast$ EQ2 | TriggerDescription$ Flurry — Whenever you cast your second spell each turn, copy that spell if it targets a permanent or player, and you may choose new targets for the copy. If you don't copy a spell this way, draw a card. +SVar:TrigCopy:DB$ CopySpellAbility | Defined$ TriggeredSpellAbility | ConditionDefined$ TriggeredSpellAbility | ConditionPresent$ Spell.IsTargeting Valid Permanent,Spell.IsTargeting Player | RememberCopies$ True | MayChooseTarget$ True | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ EQ0 | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:BuffedBy:Card +Oracle:Flying, vigilance\nFlurry — Whenever you cast your second spell each turn, copy that spell if it targets a permanent or player, and you may choose new targets for the copy. If you don't copy a spell this way, draw a card. diff --git a/forge-gui/res/cardsfolder/upcoming/tempest_hawk.txt b/forge-gui/res/cardsfolder/upcoming/tempest_hawk.txt new file mode 100644 index 00000000000..cab372cbdc1 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/tempest_hawk.txt @@ -0,0 +1,9 @@ +Name:Tempest Hawk +ManaCost:2 W +Types:Creature Bird +PT:2/2 +K:Flying +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | Execute$ TrigSearch | OptionalDecider$ You | CombatDamage$ True | TriggerDescription$ Whenever this creature deals combat damage to a player, you may search your library for a card named Tempest Hawk, reveal it, put it into your hand, then shuffle. +SVar:TrigSearch:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedTempest Hawk | ChangeNum$ 1 | ShuffleNonMandatory$ True +K:A deck can have any number of cards named CARDNAME. +Oracle:Flying\nWhenever this creature deals combat damage to a player, you may search your library for a card named Tempest Hawk, reveal it, put it into your hand, then shuffle.\nA deck can have any number of cards named Tempest Hawk.