mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 03:08:02 +00:00
Merge remote-tracking branch 'upstream/master' into collector-number-in-card-list-and-card-db-refactoring
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<artifactId>forge</artifactId>
|
||||
<groupId>forge</groupId>
|
||||
<version>1.6.43-SNAPSHOT</version>
|
||||
<version>1.6.44-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>forge-gui</artifactId>
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
#Add one announcement per line
|
||||
Get in the discord if you aren't yet.
|
||||
Card support has been extended up to "Modern Horizons 2", including the available previews from the upcoming "Dungeons and Dragons: Adventures in the Forgotten Realms".
|
||||
Collector Number has been added to all cards in the Catalog.
|
||||
[Desktop] Card Catalog now adds the Cards' Collector Number as a sortable column.
|
||||
[Desktop] Improved support for Custom Editions: now custom editions appear with their own names within other official editions, and can be selected in Set filters.
|
||||
Net decks have been expanded and there are now tons of new decks in constructed, commander, brawl, oathbreaker and tiny leaders.
|
||||
Complete support to game mechanics for all cards in Modern format.
|
||||
Various other improvements to game mechanics and AI: please check the Git log for details if interested.
|
||||
Improvements to Italian translation.
|
||||
Get in the discord if you aren't yet. https://discord.gg/3v9JCVr
|
||||
Pre-release build for "Dungeons and Dragons: Adventures in the Forgotten Realms", please report any bugs!
|
||||
Commander cards for the D&D set are still being worked on.
|
||||
Custom cards can now be loaded from your user profile. Enable it your preferences.
|
||||
Add support for Collector Boosters (not implemented everywhere yet)
|
||||
*** Android 7 & 8 support is now deprecated. Support will be dropped in an upcoming release. ***
|
||||
|
||||
@@ -97,3 +97,4 @@ Kaldheim, 3/6/KHM, KHM
|
||||
Time Spiral Remastered, 3/6/KHM, TSR
|
||||
Strixhaven: School of Mages, 3/6/STX, STX
|
||||
Modern Horizons 2, 3/6/MH2, MH2
|
||||
Adventures in the Forgotten Realms, 3/6/AFR, AFR
|
||||
|
||||
@@ -2,11 +2,8 @@ Name:Academy Manufactor
|
||||
ManaCost:3
|
||||
Types:Artifact Creature Assembly-Worker
|
||||
PT:1/3
|
||||
R:Event$ CreateToken | ActiveZones$ Battlefield | ValidPlayer$ You | ValidToken$ Clue,Food,Treasure | ReplaceWith$ DBToken | Description$ If you would create a Clue, Food, or Treasure token, instead create one of each.
|
||||
SVar:DBToken:DB$ Token | TokenScript$ c_a_clue_draw | TokenAmount$ X | SubAbility$ DBToken2
|
||||
SVar:DBToken2:DB$ Token | TokenScript$ c_a_food_sac | TokenAmount$ X | SubAbility$ DBToken3
|
||||
SVar:DBToken3:DB$ Token | TokenScript$ c_a_treasure_sac | TokenAmount$ X
|
||||
SVar:X:ReplaceCount$TokenNum
|
||||
R:Event$ CreateToken | ActiveZones$ Battlefield | ValidPlayer$ You | ValidToken$ Clue,Food,Treasure | ReplaceWith$ TokenReplace | Description$ If you would create a Clue, Food, or Treasure token, instead create one of each.
|
||||
SVar:TokenReplace:DB$ ReplaceToken | Type$ ReplaceToken | ValidCard$ Clue,Food,Treasure | TokenScript$ c_a_clue_draw,c_a_food_sac,c_a_treasure_sac
|
||||
DeckHas:Ability$Sacrifice & Ability$Token & Ability$LifeGain
|
||||
DeckHints:Ability$Investigate
|
||||
Oracle:If you would create a Clue, Food, or Treasure token, instead create one of each.
|
||||
|
||||
@@ -3,8 +3,7 @@ ManaCost:2 G U
|
||||
Types:Legendary Creature Merfolk Wizard
|
||||
PT:2/2
|
||||
K:Ward:2
|
||||
R:Event$ CreateToken | ActiveZones$ Battlefield | ValidPlayer$ You | ReplaceWith$ DoubleToken | Description$ If one or more tokens would be created under your control, twice that many of those tokens are created instead.
|
||||
SVar:DoubleToken:DB$ ReplaceEffect | VarName$ TokenNum | VarValue$ X
|
||||
SVar:X:ReplaceCount$TokenNum/Twice
|
||||
R:Event$ CreateToken | ActiveZones$ Battlefield | ValidToken$ Card.YouCtrl | ReplaceWith$ DoubleToken | Description$ If one or more tokens would be created under your control, twice that many of those tokens are created instead.
|
||||
SVar:DoubleToken:DB$ ReplaceToken | Type$ Amount | ValidCard$ Card.YouCtrl
|
||||
DeckHints:Ability$Token
|
||||
Oracle:Ward {2} (Whenever this creature becomes the target of a spell or ability an opponent controls, counter it unless that player pays {2}.)\nIf one or more tokens would be created under your control, twice that many of those tokens are created instead.
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
Name:Anointed Procession
|
||||
ManaCost:3 W
|
||||
Types:Enchantment
|
||||
R:Event$ CreateToken | ActiveZones$ Battlefield | ValidPlayer$ You | ReplaceWith$ DoubleToken | EffectOnly$ True | Description$ If an effect would create one or more tokens under your control, it creates twice that many of those tokens instead.
|
||||
SVar:DoubleToken:DB$ ReplaceEffect | VarName$ TokenNum | VarValue$ X
|
||||
SVar:X:ReplaceCount$TokenNum/Twice
|
||||
R:Event$ CreateToken | ActiveZones$ Battlefield | ValidToken$ Card.YouCtrl | ReplaceWith$ DoubleToken | EffectOnly$ True | Description$ If an effect would create one or more tokens under your control, it creates twice that many of those tokens instead.
|
||||
SVar:DoubleToken:DB$ ReplaceToken | Type$ Amount | ValidCard$ Card.YouCtrl
|
||||
DeckNeeds:Ability$Token
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/anointed_procession.jpg
|
||||
Oracle:If an effect would create one or more tokens under your control, it creates twice that many of those tokens instead.
|
||||
|
||||
7
forge-gui/res/cardsfolder/a/arcane_endeavor.txt
Normal file
7
forge-gui/res/cardsfolder/a/arcane_endeavor.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
Name:Arcane Endeavor
|
||||
ManaCost:5 U U
|
||||
Types:Sorcery
|
||||
A:SP$ RollDice | Amount$ 2 | Sides$ 8 | ChosenSVar$ X | OtherSVar$ Y | SubAbility$ DBDraw | StackDescription$ SpellDescription | SpellDescription$ Roll two d8 and choose one result. Draw cards equal to that result. Then you may cast an instant or sorcery spell with mana value less than or equal to the other result from your hand without paying its mana cost.
|
||||
SVar:DBDraw:DB$ Draw | NumCards$ X | SubAbility$ DBPlay | StackDescription$ None
|
||||
SVar:DBPlay:DB$ Play | Valid$ Instant,Sorcery | ValidSA$ Spell.cmcLEY | ValidZone$ Hand | WithoutManaCost$ True | Amount$ 1 | Controller$ You | Optional$ True
|
||||
Oracle:Roll two d8 and choose one result. Draw cards equal to that result. Then you may cast an instant or sorcery spell with mana value less than or equal to the other result from your hand without paying its mana cost.
|
||||
16
forge-gui/res/cardsfolder/b/bag_of_devouring.txt
Normal file
16
forge-gui/res/cardsfolder/b/bag_of_devouring.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
Name:Bag of Devouring
|
||||
ManaCost:B
|
||||
Types:Artifact
|
||||
T:Mode$ Sacrificed | ValidCard$ Artifact.nontoken+Other,Creature.nontoken+Other | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigExile | TriggerDescription$ Whenever you sacrifice another nontoken artifact or creature, exile it.
|
||||
SVar:TrigExile:DB$ ChangeZone | Defined$ TriggeredCard | Origin$ Graveyard | Destination$ Exile | RememberChanged$ True
|
||||
A:AB$ Draw | Cost$ 2 T Sac<1/Artifact.Other;Creature.Other/another artifact or creature> | NumCards$ 1 | SpellDescription$ Draw a card.
|
||||
A:AB$ RollDice | Cost$ 3 T Sac<1/CARDNAME> | Sides$ 10 | ResultSVar$ X | SubAbility$ DBChoose | SpellDescription$ Roll a d10. Return up to X cards from among cards exiled with CARDNAME to their owners' hands, where X is the result.
|
||||
SVar:DBChoose:DB$ ChooseCard | ChoiceZone$ Exile | Choices$ Card.IsRemembered+ExiledWithSource | Amount$ X | MinAmount$ 0 | SubAbility$ DBReturn | StackDescription$ None
|
||||
SVar:DBReturn:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Exile | Destination$ Hand | StackDescription$ Return up to X cards from among cards exiled with CARDNAME to their owners' hands, where X is the result.
|
||||
T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget
|
||||
SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard
|
||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup
|
||||
SVar:DBCleanup:DB$Cleanup | ClearRemembered$ True
|
||||
SVar:NonStackingEffect:True
|
||||
DeckHas:Ability$Sacrifice
|
||||
Oracle:Whenever you sacrifice another nontoken artifact or creature, exile it.\n{2}, {T}, Sacrifice another artifact or creature: Draw a card.\n{3}, {T}, Sacrifice Bag of Devouring: Roll a d10. Return up to X cards from among cards exiled with Bag of Devouring to their owners' hands, where X is the result.
|
||||
6
forge-gui/res/cardsfolder/b/bag_of_tricks.txt
Normal file
6
forge-gui/res/cardsfolder/b/bag_of_tricks.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:Bag of Tricks
|
||||
ManaCost:1 G
|
||||
Types:Artifact
|
||||
A:AB$ RollDice | Cost$ 4 G T | Defined$ You | Sides$ 8 | ResultSVar$ X | SubAbility$ DBReveal | StackDescription$ SpellDescription | SpellDescription$ Roll a d8. Reveal cards from the top of your library until you reveal a creature card with mana value equal to the result. Put that card onto the battlefield and the rest on the bottom of your library in a random order.
|
||||
SVar:DBReveal:DB$ DigUntil | Defined$ You | Valid$ Creature.cmcEQX | FoundDestination$ Battlefield | RevealedDestination$ Library | RevealedLibraryPosition$ -1 | RevealRandomOrder$ True | StackDescription$ None
|
||||
Oracle:{4}{G}, {T}: Roll a d8. Reveal cards from the top of your library until you reveal a creature card with mana value equal to the result. Put that card onto the battlefield and the rest on the bottom of your library in a random order.
|
||||
@@ -1,9 +1,5 @@
|
||||
Name:Bestial Menace
|
||||
ManaCost:3 G G
|
||||
Types:Sorcery
|
||||
A:SP$ Token | Cost$ 3 G G | TokenAmount$ 1 | TokenScript$ g_1_1_snake | TokenOwner$ You | LegacyImage$ | SubAbility$ DBWolfToken | ChangeZoneTable$ True | SpellDescription$ Create a 1/1 green Snake creature token,
|
||||
SVar:DBWolfToken:DB$ Token | TokenAmount$ 1 | TokenScript$ g_2_2_wolf | TokenOwner$ You | LegacyImage$ g 2 2 wolf wwk | SubAbility$ DBElephantToken | SpellDescription$ a 2/2 green Wolf creature token,
|
||||
SVar:DBElephantToken:DB$ Token | TokenAmount$ 1 | TokenScript$ g_3_3_elephant | TokenOwner$ You | LegacyImage$ g 3 3 elephant wwk | SubAbility$ DBResolve | SpellDescription$ and a 3/3 green Elephant creature token.
|
||||
SVar:DBResolve:DB$ ChangeZoneResolve
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/bestial_menace.jpg
|
||||
A:SP$ Token | Cost$ 3 G G | TokenAmount$ 1 | TokenScript$ g_1_1_snake,g_2_2_wolf,g_3_3_elephant | TokenOwner$ You | SpellDescription$ Create a 1/1 green Snake creature token, a 2/2 green Wolf creature token, and a 3/3 green Elephant creature token.
|
||||
Oracle:Create a 1/1 green Snake creature token, a 2/2 green Wolf creature token, and a 3/3 green Elephant creature token.
|
||||
|
||||
8
forge-gui/res/cardsfolder/b/bucknards_everfull_purse.txt
Normal file
8
forge-gui/res/cardsfolder/b/bucknards_everfull_purse.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
Name:Bucknard's Everfull Purse
|
||||
ManaCost:2
|
||||
Types:Artifact
|
||||
A:AB$ RollDice | Cost$ 1 T | Defined$ You | Sides$ 4 | ResultSVar$ X | SubAbility$ DBTreasure | StackDescription$ SpellDescription | SpellDescription$ Roll a d4 and create a number of Treasure tokens equal to the result. The player to your right gains control of CARDNAME.
|
||||
SVar:DBTreasure:DB$ Token | TokenAmount$ X | TokenScript$ c_a_treasure_sac | TokenOwner$ You | SubAbility$ DBPass
|
||||
SVar:DBPass:DB$ GainControl | Defined$ Self | NewController$ NextPlayerToYourRight
|
||||
DeckHas:Ability$Token
|
||||
Oracle:{1}, {T}: Roll a d4 and create a number of Treasure tokens equal to the result. The player to your right gains control of Bucknard's Everfull Purse.
|
||||
@@ -4,7 +4,7 @@ Types:Legendary Planeswalker Calix
|
||||
Loyalty:4
|
||||
A:AB$ Dig | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | DigNum$ 4 | ChangeNum$ 1 | Optional$ True | ForceRevealToController$ True | ChangeValid$ Enchantment | RestRandomOrder$ True | SpellDescription$ Look at the top four cards of your library. You may reveal an enchantment card from among them and put that card into your hand. Put the rest on the bottom of your library in a random order.
|
||||
A:AB$ ChangeZone | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature.YouDontCtrl,Enchantment.YouDontCtrl | TgtPrompt$ Select target creature or enchantment you don't control | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ DBEffect | SpellDescription$ Exile target creature or enchantment you don't control until target enchantment you control leaves the battlefield.
|
||||
SVar:DBEffect:DB$ Effect | ValidTgts$ Enchantment.YouCtrl | TgtPrompt$ Select target enchantment you control | Triggers$ ComeBack | RememberObjects$ Remembered | ImprintCards$ Targeted | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile | SubAbility$ Cleanup
|
||||
SVar:DBEffect:DB$ Effect | ValidTgts$ Enchantment.YouCtrl | TgtPrompt$ Select target enchantment you control | Triggers$ ComeBack | RememberObjects$ Remembered | ImprintCards$ ThisTargetedCard | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile | SubAbility$ Cleanup
|
||||
SVar:Cleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ Target is exiled until target enchantment you control leaves the battlefield.
|
||||
SVar:TrigReturn:DB$ ChangeZone | Origin$ Exile | Destination$ Battlefield | Defined$ Remembered | SubAbility$ ExileSelf
|
||||
|
||||
16
forge-gui/res/cardsfolder/c/catti_brie_of_mithral_hall.txt
Normal file
16
forge-gui/res/cardsfolder/c/catti_brie_of_mithral_hall.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
Name:Catti-brie of Mithral Hall
|
||||
ManaCost:G W
|
||||
Types:Legendary Creature Human Archer
|
||||
PT:2/2
|
||||
K:First Strike
|
||||
K:Reach
|
||||
T:Mode$ Attacks | ValidCard$ Creature.Self | Execute$ TrigPutCounter | TriggerDescription$ Whenever CARDNAME attacks, put a +1/+1 counter on it for each Equipment attached to it.
|
||||
SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ Y
|
||||
SVar:Y:Count$Valid Equipment.Attached
|
||||
A:AB$ DealDamage | Cost$ 1 SubCounter<All/P1P1> | NumDmg$ X | ValidTgts$ Creature.attacking+OppCtrl,Creature.blocking+OppCtrl | TgtPrompt$ Select target attacking or blocking creature an opponent controls | SpellDescription$ It deals X damage to target attacking or blocking creature an opponent controls, where X is the number of counters removed this way.
|
||||
SVar:X:SVar$CostCountersRemoved
|
||||
SVar:HasAttackEffect:TRUE
|
||||
SVar:EquipMe:Multiple
|
||||
DeckNeeds:Type$Equipment
|
||||
DeckHas:Ability$Counters
|
||||
Oracle:First strike, reach\nWhenever Catti-brie of Mithral Hall attacks, put a +1/+1 counter on it for each Equipment attached to it.\n{1}, Remove all +1/+1 counters from Catti-brie: It deals X damage to target attacking or blocking creature an opponent controls, where X is the number of counters removed this way.
|
||||
@@ -3,12 +3,10 @@ ManaCost:2 G
|
||||
Types:Legendary Creature Squirrel Warrior
|
||||
PT:3/3
|
||||
K:Forestwalk
|
||||
R:Event$ CreateToken | ActiveZones$ Battlefield | ValidPlayer$ You | ReplaceWith$ DBReplace | Description$ If one or more tokens would be created under your control, those tokens plus that many 1/1 green Squirrel creature tokens are created instead.
|
||||
SVar:DBReplace:DB$ ReplaceEffect | VarName$ TokenNum | VarValue$ Y | SubAbility$ DBToken
|
||||
SVar:DBToken:DB$ Token | TokenAmount$ Y | TokenScript$ g_1_1_squirrel
|
||||
R:Event$ CreateToken | ActiveZones$ Battlefield | ValidToken$ Card.YouCtrl | ReplaceWith$ DBReplace | Description$ If one or more tokens would be created under your control, those tokens plus that many 1/1 green Squirrel creature tokens are created instead.
|
||||
SVar:DBReplace:DB$ ReplaceToken | Type$ AddToken | ValidCard$ Card.YouCtrl | TokenScript$ g_1_1_squirrel
|
||||
A:AB$ Pump | Cost$ B Sac<X/Squirrel> | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +X | NumDef$ -X | SpellDescription$ Target creature gets +X/-X until end of turn.
|
||||
SVar:X:Count$xPaid
|
||||
SVar:Y:ReplaceCount$TokenNum
|
||||
DeckHas:Ability$Token
|
||||
DeckHints:Type$Squirrel
|
||||
Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.)\nIf one or more tokens would be created under your control, those tokens plus that many 1/1 green Squirrel creature tokens are created instead.\n{B}, Sacrifice X Squirrels: Target creature gets +X/-X until end of turn.
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Chicken à la King
|
||||
ManaCost:1 U U
|
||||
Types:Creature Bird Noble
|
||||
PT:2/2
|
||||
T:Mode$ RolledDie | TriggerZones$ Battlefield | Execute$ TrigCounters | ValidResult$ 6 | TriggerDescription$ Whenever a 6 is rolled on a six-sided die, put a +1/+1 counter on each Bird.
|
||||
T:Mode$ RolledDie | TriggerZones$ Battlefield | Execute$ TrigCounters | ValidResult$ 6 | ValidSides$ 6 | TriggerDescription$ Whenever a 6 is rolled on a six-sided die, put a +1/+1 counter on each Bird.
|
||||
SVar:TrigCounters:DB$ PutCounterAll | ValidCards$ Bird | CounterType$ P1P1 | CounterNum$ 1
|
||||
A:AB$ RollDice | Cost$ tapXType<1/Bird> | AILogic$ AtOppEOT | SpellDescription$ Roll a six-sided die.
|
||||
DeckHas:Ability$Counters
|
||||
|
||||
9
forge-gui/res/cardsfolder/c/clay_golem.txt
Normal file
9
forge-gui/res/cardsfolder/c/clay_golem.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:Clay Golem
|
||||
ManaCost:4
|
||||
Types:Artifact Creature Golem
|
||||
PT:4/4
|
||||
A:AB$ PutCounter | Cost$ 6 RollDice<1/8/X> | ConditionPresent$ Card.Self+IsNotMonstrous | Monstrosity$ True | CounterNum$ X | CounterType$ P1P1 | StackDescription$ SpellDescription | SpellDescription$ Monstrosity X, where X is the result. (If this creature isn't monstrous, put X +1/+1 counters on it and it becomes monstrous.)
|
||||
T:Mode$ BecomeMonstrous | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigDestroy | TriggerDescription$ Berserk — When CARDNAME becomes monstrous, destroy target permanent.
|
||||
SVar:TrigDestroy:DB$ Destroy | ValidTgts$ Permanent
|
||||
DeckHas:Ability$Counters
|
||||
Oracle:{6}, Roll a d8: Monstrosity X, where X is the result. (If this creature isn't monstrous, put X +1/+1 counters on it and it becomes monstrous.)\nBerserk — When Clay Golem becomes monstrous, destroy target permanent.
|
||||
9
forge-gui/res/cardsfolder/c/component_pouch.txt
Normal file
9
forge-gui/res/cardsfolder/c/component_pouch.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:Component Pouch
|
||||
ManaCost:3
|
||||
Types:Artifact
|
||||
A:AB$ Mana | Cost$ T SubCounter<1/COMPONENT> | Amount$ 2 | Produced$ Combo AnyDifferent | SpellDescription$ Add two mana of different colors.
|
||||
A:AB$ RollDice | Cost$ T | Sides$ 20 | ResultSubAbilities$ 1-9:PutOne,10-20:PutTwo | SpellDescription$ Roll a d20.
|
||||
SVar:PutOne:DB$ PutCounter | Defined$ Self | CounterType$ COMPONENT | CounterNum$ 1 | SpellDescription$ 1-9 VERT Put a component counter on CARDNAME.
|
||||
SVar:PutTwo:DB$ PutCounter | Defined$ Self | CounterType$ COMPONENT | CounterNum$ 2 | SpellDescription$ 10-20 VERT Put two component counters on CARDNAME.
|
||||
DeckHas:Ability$Counters
|
||||
Oracle:{T}, Remove a component counter from Component Pouch: Add two mana of different colors.\n{T}: Roll a d20.\n1-9 | Put a component counter on Component Pouch.\n10-20 | Put two component counters on Component Pouch.
|
||||
@@ -5,7 +5,6 @@ PT:2/2
|
||||
K:Flash
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigEffect | TriggerDescription$ When CARDNAME enters the battlefield, each token that would be created under an opponent's control this turn is created under your control instead.
|
||||
SVar:TrigEffect:DB$ Effect | Name$ Crafty Cutpurse Effect | ReplacementEffects$ OppCreatEnters | SpellDescription$ Each token that would be created under an opponent's control this turn is created under your control instead.
|
||||
SVar:OppCreatEnters:Event$ CreateToken | ActiveZones$ Command | ValidPlayer$ Player.Opponent | ReplaceWith$ ETBYourCtrl | Layer$ Control | Description$ Each token that would be created under an opponent's control this turn is created under your control instead.
|
||||
SVar:ETBYourCtrl:DB$ ReplaceEffect | VarName$ Affected | VarValue$ You | VarType$ Player
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/crafty_cutpurse.jpg
|
||||
SVar:OppCreatEnters:Event$ CreateToken | ActiveZones$ Command | ValidToken$ Card.OppCtrl | ReplaceWith$ ETBYourCtrl | Layer$ Control | Description$ Each token that would be created under an opponent's control this turn is created under your control instead.
|
||||
SVar:ETBYourCtrl:DB$ ReplaceToken | Type$ ReplaceController | ValidCard$ Card.OppCtrl | NewController$ You
|
||||
Oracle:Flash\nWhen Crafty Cutpurse enters the battlefield, each token that would be created under an opponent's control this turn is created under your control instead.
|
||||
|
||||
@@ -5,9 +5,11 @@ PT:3/2
|
||||
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ DBLoop | TriggerDescription$ Whenever CARDNAME attacks, choose target creature you control, then ABILITY
|
||||
SVar:DBLoop:DB$ Repeat | ValidTgts$ Creature.YouCtrl | RepeatCheckSVar$ RepeatCheck | RepeatSVarCompare$ GT0 | RepeatSubAbility$ DBRollDice | RepeatOptional$ True
|
||||
SVar:DBRollDice:DB$ RollDice | Sides$ 20 | ResultSubAbilities$ 1-14:DBCopy,15-20:DBCopyRepeat | SpellDescription$ roll a d20.
|
||||
SVar:DBCopy:DB$ CopyPermanent | Defined$ Targeted | TokenTapped$ True | TokenAttacking$ True | NonLegendary$ True | AtEOT$ ExileCombat | SubAbility$ DBNotRepeat | SpellDescription$ 1-14 VERT Create a tapped and attacking token that's a copy of that creature, except it's not legendary and it has "Exile this creature at end of combat.
|
||||
SVar:DBCopy:DB$ CopyPermanent | Defined$ Targeted | TokenTapped$ True | TokenAttacking$ True | NonLegendary$ True | AddSVars$ DelinaTrigExile | AddTriggers$ TrigPhase | SubAbility$ DBNotRepeat | SpellDescription$ 1-14 VERT Create a tapped and attacking token that's a copy of that creature, except it's not legendary and it has "Exile this creature at end of combat.
|
||||
SVar:DBNotRepeat:DB$ StoreSVar | SVar$ RepeatCheck | Type$ Number | Expression$ 0
|
||||
SVar:DBCopyRepeat:DB$ CopyPermanent | Defined$ Targeted | TokenTapped$ True | TokenAttacking$ True | NonLegendary$ True | AtEOT$ ExileCombat | SubAbility$ DBRepeat | SpellDescription$ 15-20 VERT Create one of those tokens. You may roll again.
|
||||
SVar:DBCopyRepeat:DB$ CopyPermanent | Defined$ Targeted | TokenTapped$ True | TokenAttacking$ True | NonLegendary$ True | AddSVars$ DelinaTrigExile | AddTriggers$ TrigPhase | SubAbility$ DBRepeat | SpellDescription$ 15-20 VERT Create one of those tokens. You may roll again.
|
||||
SVar:TrigPhase:Mode$ Phase | Phase$ EndCombat | TriggerZones$ Battlefield | Execute$ DelinaTrigExile | TriggerDescription$ Exile this creature at end of combat.
|
||||
SVar:DelinaTrigExile:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Exile
|
||||
SVar:DBRepeat:DB$ StoreSVar | SVar$ RepeatCheck | Type$ Number | Expression$ 1
|
||||
SVar:RepeatCheck:Number$1
|
||||
SVar:HasAttackEffect:TRUE
|
||||
@@ -1,7 +1,7 @@
|
||||
Name:Divine Visitation
|
||||
ManaCost:3 W W
|
||||
Types:Enchantment
|
||||
R:Event$ CreateToken | ActiveZones$ Battlefield | ValidPlayer$ You | ReplaceWith$ TokenReplace | ValidToken$ Creature | Description$ If one or more creature tokens would be created under your control, that many 4/4 white Angel creature tokens with flying and vigilance are created instead.
|
||||
SVar:TokenReplace:DB$ ReplaceEffect | VarName$ Token | VarValue$ w_4_4_angel_flying_vigilance | VarType$ TokenScript
|
||||
R:Event$ CreateToken | ActiveZones$ Battlefield | ValidToken$ Creature.YouCtrl | ReplaceWith$ TokenReplace | Description$ If one or more creature tokens would be created under your control, that many 4/4 white Angel creature tokens with flying and vigilance are created instead.
|
||||
SVar:TokenReplace:DB$ ReplaceToken | Type$ ReplaceToken | ValidCard$ Creature.YouCtrl | TokenScript$ w_4_4_angel_flying_vigilance
|
||||
DeckNeeds:Ability$Token
|
||||
Oracle:If one or more creature tokens would be created under your control, that many 4/4 white Angel creature tokens with flying and vigilance are created instead.
|
||||
|
||||
10
forge-gui/res/cardsfolder/d/diviners_portent.txt
Normal file
10
forge-gui/res/cardsfolder/d/diviners_portent.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
Name:Diviner's Portent
|
||||
ManaCost:X U U U
|
||||
Types:Instant
|
||||
A:SP$ RollDice | Sides$ 20 | Modifier$ Y | ResultSubAbilities$ 1-14:DBDraw,Else:DBScry | SpellDescription$ Roll a d20 and add the number of cards in your hand.
|
||||
SVar:DBDraw:DB$ Draw | NumCards$ X | SpellDescription$ 1-14 VERT Draw X cards.
|
||||
SVar:DBScry:DB$ Scry | ScryNum$ X | SubAbility$ DBDraw2 | SpellDescription$ 15+ VERT Scry X, then draw X cards.
|
||||
SVar:DBDraw2:DB$ Draw | NumCards$ X
|
||||
SVar:X:Count$xPaid
|
||||
SVar:Y:Count$InYourHand
|
||||
Oracle:Roll a d20 and add the number of cards in your hand.\n1-14 | Draw X cards.\n15+ | Scry X, then draw X cards.
|
||||
@@ -1,11 +1,9 @@
|
||||
Name:Doubling Season
|
||||
ManaCost:4 G
|
||||
Types:Enchantment
|
||||
R:Event$ CreateToken | ActiveZones$ Battlefield | ValidPlayer$ You | ReplaceWith$ DoubleToken | EffectOnly$ True | Description$ If an effect would create one or more tokens under your control, it creates twice that many of those tokens instead.
|
||||
SVar:DoubleToken:DB$ ReplaceEffect | VarName$ TokenNum | VarValue$ X
|
||||
R:Event$ CreateToken | ActiveZones$ Battlefield | ValidToken$ Card.YouCtrl | ReplaceWith$ DoubleToken | EffectOnly$ True | Description$ If an effect would create one or more tokens under your control, it creates twice that many of those tokens instead.
|
||||
SVar:DoubleToken:DB$ ReplaceToken | Type$ Amount | ValidCard$ Card.YouCtrl
|
||||
R:Event$ AddCounter | ActiveZones$ Battlefield | ValidCard$ Permanent.YouCtrl | EffectOnly$ True | ReplaceWith$ DoubleCounters | Description$ If an effect would put one or more counters on a permanent you control, it puts twice that many of those counters on that permanent instead.
|
||||
SVar:DoubleCounters:DB$ ReplaceEffect | VarName$ CounterNum | VarValue$ Y
|
||||
SVar:X:ReplaceCount$TokenNum/Twice
|
||||
SVar:Y:ReplaceCount$CounterNum/Twice
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/doubling_season.jpg
|
||||
Oracle:If an effect would create one or more tokens under your control, it creates twice that many of those tokens instead.\nIf an effect would put one or more counters on a permanent you control, it puts twice that many of those counters on that permanent instead.
|
||||
|
||||
8
forge-gui/res/cardsfolder/d/dragonborn_champion.txt
Normal file
8
forge-gui/res/cardsfolder/d/dragonborn_champion.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
Name:Dragonborn Champion
|
||||
ManaCost:2 R G
|
||||
Types:Creature Dragon Warrior
|
||||
PT:5/3
|
||||
K:Trample
|
||||
T:Mode$ DamageDone | ValidSource$ Card.YouCtrl,Emblem.YouCtrl | ValidTarget$ Player | TriggerZones$ Battlefield | DamageAmount$ GE5 | Execute$ TrigDraw | TriggerDescription$ Whenever a source you control deals 5 or more damage to a player, draw a card.
|
||||
SVar:TrigDraw:DB$ Draw | NumCards$ 1 | SpellDescription$ Draw a card.
|
||||
Oracle:Trample\nWhenever a source you control deals 5 or more damage to a player, draw a card.
|
||||
@@ -5,7 +5,7 @@ PT:3/4
|
||||
T:Mode$ Phase | Phase$ EndCombat | Execute$ TrigCounter | TriggerZones$ Battlefield | TriggerDescription$ At end of combat, put a paralyzation counter on each creature blocking or blocked by CARDNAME and tap those creatures. Each of those creatures doesn't untap during its controller's untap step for as long as it has a paralyzation counter on it. Each of those creatures gains "{4}: Remove a paralyzation counter from this creature."
|
||||
SVar:TrigCounter:DB$ PutCounterAll | CounterType$ PARALYZATION | CounterNum$ 1 | ValidCards$ Creature.blockedBySource,Creature.blockingSource | SubAbility$ DBTap
|
||||
SVar:DBTap:DB$ TapAll | ValidCards$ Creature.blockedBySource,Creature.blockingSource | SubAbility$ DBEffect
|
||||
SVar:DBEffect:DB$ Effect | RememberObjects$ Valid Creature.blockedBySource,Valid Creature.blockingSource | StaticAbilities$ DontUntap | Duration$ Permanent | ConditionPresent$ Creature.blockedBySource,Creature.blockingSource | SubAbility$ DBAnimate | ForgetOnMoved$ Battlefield | ForgetCounter$ PARALYZATION
|
||||
SVar:DBEffect:DB$ Effect | RememberObjects$ Valid Creature.blockedBySource,Creature.blockingSource | StaticAbilities$ DontUntap | Duration$ Permanent | ConditionPresent$ Creature.blockedBySource,Creature.blockingSource | SubAbility$ DBAnimate | ForgetOnMoved$ Battlefield | ForgetCounter$ PARALYZATION
|
||||
SVar:DBAnimate:DB$ AnimateAll | ValidCards$ Creature.blockedBySource,Creature.blockingSource | Abilities$ ABRemoveCounter | Duration$ Permanent
|
||||
SVar:ABRemoveCounter:AB$ RemoveCounter | Defined$ Self | Cost$ 4 | CounterType$ PARALYZATION | CounterNum$ 1 | SpellDescription$ Remove a paralyzation counter from this creature.
|
||||
SVar:DontUntap:Mode$ Continuous | EffectZone$ Command | AffectedZone$ Battlefield | Affected$ Card.IsRemembered | AddHiddenKeyword$ CARDNAME doesn't untap during your untap step. | Description$ Each of those creatures doesn't untap during its controller's untap step for as long as it has a paralyzation counter on it.
|
||||
|
||||
11
forge-gui/res/cardsfolder/d/druid_of_purification.txt
Normal file
11
forge-gui/res/cardsfolder/d/druid_of_purification.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
Name:Druid of Purification
|
||||
ManaCost:3 G
|
||||
Types:Creature Human Druid
|
||||
PT:2/3
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChoice | TriggerDescription$ When CARDNAME enters the battlefield, starting with you, each player may choose an artifact or enchantment you don’t control. Destroy each permanent chosen this way.
|
||||
SVar:TrigChoice:DB$ RepeatEach | RepeatPlayers$ Player | StartingWithActivator$ True | RepeatSubAbility$ DBChoosePermanent | SubAbility$ DBDestroy
|
||||
SVar:DBChoosePermanent:DB$ ChooseCard | Defined$ Remembered | Choices$ Artifact.YouDontCtrl,Enchantment.YouDontCtrl | Optional$ True | ChoiceTitle$ Choose an artifact or enchantment | RememberChosen$ True
|
||||
SVar:DBDestroy:DB$ Destroy | Defined$ Remembered | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
AI:RemoveDeck:Random
|
||||
Oracle:When Druid of Purification enters the battlefield, starting with you, each player may choose an artifact or enchantment you don't control. Destroy each permanent chosen this way.
|
||||
@@ -7,9 +7,8 @@ SVar:DBDungeon:DB$ Scry | ScryNum$ 1 | RoomName$ Dungeon Level | SpellDescriptio
|
||||
SVar:DBBazaar:DB$ Token | TokenScript$ c_a_treasure_sac | TokenOwner$ You | RoomName$ Goblin Bazaar | SpellDescription$ Create a Treasure token. | NextRoom$ DBLost
|
||||
SVar:DBCaverns:DB$ Pump | ValidTgts$ Creature | KW$ HIDDEN CARDNAME can't attack. | Duration$ UntilYourNextTurn | IsCurse$ True | RoomName$ Twisted Caverns | SpellDescription$ Target creature can't attack until your next turn. | NextRoom$ DBLost
|
||||
SVar:DBLost:DB$ Scry | ScryNum$ 2 | RoomName$ Lost Level | SpellDescription$ Scry 2. | NextRoom$ DBRunestone,DBGraveyard
|
||||
SVar:DBRunestone:DB$ Dig | Defined$ You | DigNum$ 2 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect | RoomName$ Runestone Caverns | SpellDescription$ Exile the top two cards of your library. You may play them. | NextRoom$ DBMines
|
||||
SVar:DBEffect:DB$ Effect | StaticAbilities$ STPlay | RememberObjects$ RememberedCard | Duration$ Permanent | ForgetOnMoved$ Exile | SubAbility$ DBCleanup
|
||||
SVar:STPlay:Mode$ Continuous | EffectZone$ Command | AffectedZone$ Exile | Affected$ Card.IsRemembered | MayPlay$ True | Description$ You may play them.
|
||||
SVar:DBRunestone:DB$ Dig | Defined$ You | DigNum$ 2 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBPlayExiled | RoomName$ Runestone Caverns | SpellDescription$ Exile the top two cards of your library. You may play them. | NextRoom$ DBMines
|
||||
SVar:DBPlayExiled:DB$ Play | Valid$ Card.IsRemembered | ValidZone$ Exile | Controller$ You | Optional$ True | Amount$ All | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:DBGraveyard:DB$ Token | TokenScript$ b_1_1_skeleton | TokenOwner$ You | TokenAmount$ 2 | RoomName$ Muiral's Graveyard | SpellDescription$ Create two 1/1 black Skeleton creature tokens. | NextRoom$ DBMines
|
||||
SVar:DBMines:DB$ Scry | ScryNum$ 3 | RoomName$ Deep Mines | SpellDescription$ Scry 3. | NextRoom$ DBLair
|
||||
@@ -5,7 +5,7 @@ PT:5/2
|
||||
K:Flash
|
||||
K:Flying
|
||||
K:CARDNAME enters the battlefield tapped.
|
||||
S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Graveyard | MayPlay$ True | CheckSVar$ X | SVarCompare$ GE1 | Description$ You may cast CARDNAME from your graveyard if a creature not named Ebondeath, Dracolich died this turn.
|
||||
S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Graveyard | AffectedZone$ Graveyard | MayPlay$ True | CheckSVar$ X | SVarCompare$ GE1 | Description$ You may cast CARDNAME from your graveyard if a creature not named Ebondeath, Dracolich died this turn.
|
||||
SVar:X:Count$ThisTurnEntered_Graveyard_from_Battlefield_Creature.notnamedEbondeath; Dracolich
|
||||
SVar:SacMe:3
|
||||
SVar:DiscardMe:3
|
||||
10
forge-gui/res/cardsfolder/e/ebony_fly.txt
Normal file
10
forge-gui/res/cardsfolder/e/ebony_fly.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
Name:Ebony Fly
|
||||
ManaCost:2
|
||||
Types:Artifact
|
||||
K:CARDNAME enters the battlefield tapped.
|
||||
A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}.
|
||||
A:AB$ RollDice | Cost$ 4 | Sides$ 6 | ResultSVar$ X | SubAbility$ DBAnimate | SpellDescription$ Roll a d6.
|
||||
SVar:DBAnimate:DB$ Animate | Defined$ Self | Power$ X | Toughness$ X | Types$ Artifact,Creature,Insect | Keywords$ Flying | RemoveCardTypes$ True | Optional$ True | StackDescription$ SpellDescription | SpellDescription$ Until end of turn, you may have CARDNAME become an X/X Insect artifact creature with flying, where X is the result.
|
||||
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME attacks, another target attacking creature gains flying until end of turn.
|
||||
SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.Other+attacking | TgtPrompt$ Select another target attacking creature | KW$ Flying
|
||||
Oracle:Ebony Fly enters the battlefield tapped.\n{T}: Add {C}.\n{4}: Roll a d6. Until end of turn, you may have Ebony Fly become an X/X Insect artifact creature with flying, where X is the result.\nWhenever Ebony Fly attacks, another target attacking creature gains flying until end of turn.
|
||||
@@ -4,4 +4,6 @@ Types:Land
|
||||
A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}.
|
||||
A:AB$ Regenerate | ValidTgts$ Creature.Elephant | TgtPrompt$ Select target Elephant | Cost$ T | SpellDescription$ Regenerate target Elephant.
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/elephant_graveyard.jpg
|
||||
AI:RemoveDeck:Random
|
||||
DeckNeeds:Type$Elephant
|
||||
Oracle:{T}: Add {C}.\n{T}: Regenerate target Elephant.
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
Name:Emergency Powers
|
||||
ManaCost:5 W U
|
||||
Types:Instant
|
||||
A:SP$ ChangeZoneAll | Cost$ 5 W U | ChangeType$ Card | Origin$ Hand,Graveyard | Destination$ Library | Shuffle$ True | Random$ True | SubAbility$ DBDraw | UseAllOriginZones$ True | AILogic$ Timetwister | StackDescription$ SpellDescription | SpellDescription$ Each player shuffles their hand and hand into their library, then draws seven cards. Exile CARDNAME.
|
||||
A:SP$ ChangeZoneAll | ChangeType$ Card | Origin$ Hand,Graveyard | Destination$ Library | Shuffle$ True | Random$ True | SubAbility$ DBDraw | UseAllOriginZones$ True | AILogic$ Timetwister | StackDescription$ SpellDescription | SpellDescription$ Each player shuffles their hand and hand into their library, then draws seven cards. Exile CARDNAME.
|
||||
SVar:DBDraw:DB$ Draw | NumCards$ 7 | Defined$ Player | SubAbility$ DBAddendum | StackDescription$ None
|
||||
SVar:DBAddendum:DB$ ChooseCard | ChoiceZone$ Hand | Defined$ You | Amount$ 1 | Choices$ Permanent.cmcLE7+YouCtrl | AILogic$ BestCard | ConditionPlayerTurn$ True | ConditionPhases$ Main1,Main2 | ConditionDefined$ Self | ConditionPresent$ Card.wasCast | SubAbility$ DBChange | StackDescription$ SpellDescription | SpellDescription$ Addendum - If you cast this spell during your main phase, you may put a permanent card with mana value 7 or less from your hand onto the battlefield.
|
||||
SVar:DBChange:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | Defined$ ChosenCard | ConditionPlayerTurn$ True | ConditionPhases$ Main1,Main2 | ConditionDefined$ Self | ConditionPresent$ Card.wasCast | SubAbility$ DBCleanup | StackDescription$ None
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearChosen$ True | SubAbility$ DBExile
|
||||
SVar:DBAddendum:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | ChoiceZone$ Hand | Amount$ 1 | ChangeType$ Permanent.cmcLE7+YouCtrl | ChangeNum$ 1 | AILogic$ BestCard | ConditionPlayerTurn$ True | ConditionPhases$ Main1,Main2 | ConditionDefined$ Self | ConditionPresent$ Card.wasCast | SubAbility$ DBExile | StackDescription$ SpellDescription | SpellDescription$ Addendum - If you cast this spell during your main phase, you may put a permanent card with mana value 7 or less from your hand onto the battlefield.
|
||||
SVar:DBExile:DB$ ChangeZone | Origin$ Stack | Destination$ Exile | StackDescription$ None
|
||||
Oracle:Each player shuffles their hand and graveyard into their library, then draws seven cards. Exile Emergency Powers.\nAddendum — If you cast this spell during your main phase, you may put a permanent card with mana value 7 or less from your hand onto the battlefield.
|
||||
|
||||
9
forge-gui/res/cardsfolder/e/extract_brain.txt
Normal file
9
forge-gui/res/cardsfolder/e/extract_brain.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:Extract Brain
|
||||
ManaCost:X U B
|
||||
Types:Sorcery
|
||||
A:SP$ Reveal | Cost$ X U B | ValidTgts$ Opponent | IsCurse$ True | NumCards$ X | RememberRevealed$ True | SubAbility$ PickOne |StackDescription$ {p:Targeted} chooses X cards from their hand. Look at those cards. You may cast a spell from among them without paying its mana cost. | SpellDescription$ Target opponent chooses X cards from their hand. Look at those cards. You may cast a spell from among them without paying its mana cost.
|
||||
SVar:PickOne:DB$ ChooseCard | Defined$ You | Amount$ 1 | ChoiceTitle$ Choose card to cast | Choices$ Card.IsRemembered | ChoiceZone$ Hand | SubAbility$ PlayChosen | StackDescription$ None
|
||||
SVar:PlayChosen:DB$ Play | Defined$ ChosenCard | Controller$ You | WithoutManaCost$ True | Optional$ True | SubAbility$ DBCleanup | StackDescription$ None
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosenCard$ True
|
||||
SVar:X:Count$xPaid
|
||||
Oracle:Target opponent chooses X cards from their hand. Look at those cards. You may cast a spell from among them without paying its mana cost.
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user