From f4ee0441eaa7554d767fbee97ae8333f9c43f33b Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 2 Apr 2021 18:40:21 -0400 Subject: [PATCH 1/6] mavinda_students_advocate.txt --- .../upcoming/mavinda_students_advocate.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/mavinda_students_advocate.txt diff --git a/forge-gui/res/cardsfolder/upcoming/mavinda_students_advocate.txt b/forge-gui/res/cardsfolder/upcoming/mavinda_students_advocate.txt new file mode 100644 index 00000000000..b54af194634 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/mavinda_students_advocate.txt @@ -0,0 +1,15 @@ +Name:Mavinda, Students' Advocate +ManaCost:2 W +Types:Legendary Creature Bird Advisor +PT:2/3 +K:Flying +A:AB$ Effect | Cost$ 0 | ValidTgts$ Instant.YouOwn,Sorcery.YouOwn | TgtZone$ Graveyard | TgtPrompt$ Select target instant or sorcery card in your graveyard | ActivationLimit$ 1 | RememberObjects$ Targeted | StaticAbilities$ MayPlay,RaiseCost | ReplacementEffects$ ReplaceGraveyard | SubAbility$ DBCleanup | SpellDescription$ You may cast target instant or sorcery card from your graveyard this turn. If that spell doesn't target a creature you control, it costs {8} more to cast this way. If that spell would be put into your graveyard, exile it instead. Activate only once each turn. (You still pay the spell's costs. Timing rules for the spell still apply.) +SVar:MayPlay:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Graveyard | Description$ You may cast target instant or sorcery card from your graveyard this turn. (You still pay the spell's costs. Timing rules for the spell still apply.) +SVar:RaiseCost:Mode$ RaiseCost | ValidCard$ Card.IsRemembered | ValidTarget$ Creature.YouCtrl | UnlessValidTarget$ True | Activator$ You | Type$ Spell | Amount$ 8 | EffectZone$ Command | Description$ If that spell doesn't target a creature you control, it costs {8} more to cast this way. +SVar:ReplaceGraveyard:Event$ Moved | ValidCard$ Card.IsRemembered | Destination$ Graveyard | ReplaceWith$ MoveExile | Description$ If that spell would be put into your graveyard, exile it instead. +SVar:MoveExile:DB$ ChangeZone | Defined$ ReplacedCard | Origin$ All | Destination$ Exile | SubAbility$ ExileSelf +SVar:ExileSelf:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +DeckHas:Ability$Graveyard +DeckNeeds:Types$Instant|Sorcery +Oracle:Flying\n {0}: You may cast target instant or sorcery card from your graveyard this turn. If that spell doesn't target a creature you control, it costs {8} more to cast this way. If that spell would be put into your graveyard, exile it instead. Activate only once each turn. (You still pay the spell's costs. Timing rules for the spell still apply.) From d7ca06c599047ae196a1e3728e363adb4fb37a90 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 2 Apr 2021 18:41:42 -0400 Subject: [PATCH 2/6] CostAdjustment.java support UnlessValidTarget param for Mavinda --- .../src/main/java/forge/game/cost/CostAdjustment.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/cost/CostAdjustment.java b/forge-game/src/main/java/forge/game/cost/CostAdjustment.java index 7bad854935a..b69a6aab3c0 100644 --- a/forge-game/src/main/java/forge/game/cost/CostAdjustment.java +++ b/forge-game/src/main/java/forge/game/cost/CostAdjustment.java @@ -541,7 +541,11 @@ public class CostAdjustment { } curSa = curSa.getSubAbility(); } - if (!targetValid) { + if (st.hasParam("UnlessValidTarget")) { + if (targetValid) { + return false; + } + } else if (!targetValid) { return false; } } From d91f1df9d86b16aa3126d719c10234bc8a72d613 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 2 Apr 2021 20:05:47 -0400 Subject: [PATCH 3/6] blex_vexing_pest_search_for_blex.txt --- .../blex_vexing_pest_search_for_blex.txt | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/blex_vexing_pest_search_for_blex.txt diff --git a/forge-gui/res/cardsfolder/upcoming/blex_vexing_pest_search_for_blex.txt b/forge-gui/res/cardsfolder/upcoming/blex_vexing_pest_search_for_blex.txt new file mode 100644 index 00000000000..df54fb2d26d --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/blex_vexing_pest_search_for_blex.txt @@ -0,0 +1,23 @@ +Name:Blex, Vexing Pest +ManaCost:2 G +Types:Legendary Creature Pest +PT:3/2 +S:Mode$ Continuous | EffectZone$ Battlefield | Affected$ Pest.Other+YouCtrl,Bat.Other+YouCtrl,Insect.Other+YouCtrl,Snake.Other+YouCtrl,Spider.Other+YouCtrl | AddPower$ 1 | AddToughness$ 1 | Description$ Other Pests, Bats, Insects, Snakes, and Spiders you control get +1/+1. +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigGainLife | TriggerDescription$ When CARDNAME dies, you gain 4 life. +SVar:TrigGainLife:DB$ GainLife | Defined$ TriggeredCardController | LifeAmount$ 4 +DeckHas:Ability$LifeGain +DeckHints:Type$Pest|Bat|Insect|Snake|Spider +AlternateMode:Modal +Oracle:Other Pests, Bats, Insects, Snakes, and Spiders you control get +1/+1.\nWhen Blex, Vexing Pest dies, you gain 4 life. + +ALTERNATE + +Name:Search for Blex +ManaCost:2 B B +Types:Sorcery +A:SP$ Dig | DigNum$ 5 | AnyNumber$ True | DestinationZone$ Hand | RememberChanged$ True | DestinationZone2$ Graveyard | SubAbility$ DBLoseLife | StackDescription$ SpellDescription | SpellDescription$ Look at the top five cards of your library. You may put any number of them into your hand and the rest into your graveyard. +SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ X | Defined$ You | SubAbility$ DBCleanup | StackDescription$ SpellDescription | SpellDescription$ You lose 3 life for each card you put into your hand this way. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:X:Remembered$Valid Card/Times.3 +DeckHas:Ability$Graveyard +Oracle:Look at the top five cards of your library. You may put any number of them into your hand and the rest into your graveyard. You lose 3 life for each card you put into your hand this way. From 7edda12548ecc41672463890497ab910bbd30fa5 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 2 Apr 2021 20:32:47 -0400 Subject: [PATCH 4/6] selfless_glyphweaver_deadly_vanity.txt --- .../selfless_glyphweaver_deadly_vanity.txt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/selfless_glyphweaver_deadly_vanity.txt diff --git a/forge-gui/res/cardsfolder/upcoming/selfless_glyphweaver_deadly_vanity.txt b/forge-gui/res/cardsfolder/upcoming/selfless_glyphweaver_deadly_vanity.txt new file mode 100644 index 00000000000..37719611329 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/selfless_glyphweaver_deadly_vanity.txt @@ -0,0 +1,17 @@ +Name:Selfless Glyphweaver +ManaCost:2 W +Types:Creature Human Cleric +PT:2/3 +A:AB$ PumpAll | Cost$ Exile<1/CARDNAME> | ValidCards$ Creature.YouCtrl | KW$ Indestructible | SpellDescription$ Creatures you control gain indestructible until end of turn. +AlternateMode:Modal +Oracle:Exile Selfless Glyphweaver: Creatures you control gain indestructible until end of turn. + +ALTERNATE + +Name:Deadly Vanity +ManaCost:5 B B B +Types:Sorcery +A:SP$ ChooseCard | Defined$ You | Amount$ 1 | Choices$ Creature,Planeswalker | ChoiceTitle$ Choose a creature or planeswalker | Mandatory$ True | ChoiceZone$ Battlefield | SubAbility$ DBDestroyAll | RememberChosen$ True | AILogic$ BestCard | StackDescription$ SpellDescription | SpellDescription$ Choose a creature or planeswalker, +SVar:DBDestroyAll:DB$ DestroyAll | ValidCards$ Creature.IsNotRemembered,Planeswalker.IsNotRemembered | SubAbility$ DBCleanup | StackDescription$ SpellDescription | SpellDescription$ then destroy all other creatures and planeswalkers. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +Oracle:Choose a creature or planeswalker, then destroy all other creatures and planeswalkers. From a85c84096f05938c55617f3a191324286ec89f46 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 2 Apr 2021 20:33:43 -0400 Subject: [PATCH 5/6] necrotic_fumes.txt remove extra spaces --- forge-gui/res/cardsfolder/upcoming/necrotic_fumes.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-gui/res/cardsfolder/upcoming/necrotic_fumes.txt b/forge-gui/res/cardsfolder/upcoming/necrotic_fumes.txt index 2b164b3aa9b..afdb06dd847 100644 --- a/forge-gui/res/cardsfolder/upcoming/necrotic_fumes.txt +++ b/forge-gui/res/cardsfolder/upcoming/necrotic_fumes.txt @@ -1,5 +1,5 @@ Name:Necrotic Fumes ManaCost:1 B B Types:Sorcery Lesson -A:SP$ ChangeZone | Cost$ B B Exile<1/Creature> | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | Origin$ Battlefield | Destination$ Exile | SpellDescription$ Exile target creature or planeswalker. -Oracle:As an additional cost to cast this spell, exile a creature you control.\nExile target creature or planeswalker. +A:SP$ ChangeZone | Cost$ B B Exile<1/Creature> | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | Origin$ Battlefield | Destination$ Exile | SpellDescription$ Exile target creature or planeswalker. +Oracle:As an additional cost to cast this spell, exile a creature you control.\nExile target creature or planeswalker. From 9739ed6b87177a58b773987247dfef5b9b68950e Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 3 Apr 2021 08:08:01 -0400 Subject: [PATCH 6/6] fix Oracle typo --- .../res/cardsfolder/upcoming/mavinda_students_advocate.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/upcoming/mavinda_students_advocate.txt b/forge-gui/res/cardsfolder/upcoming/mavinda_students_advocate.txt index b54af194634..d20cb8cd8cc 100644 --- a/forge-gui/res/cardsfolder/upcoming/mavinda_students_advocate.txt +++ b/forge-gui/res/cardsfolder/upcoming/mavinda_students_advocate.txt @@ -12,4 +12,4 @@ SVar:ExileSelf:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ E SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True DeckHas:Ability$Graveyard DeckNeeds:Types$Instant|Sorcery -Oracle:Flying\n {0}: You may cast target instant or sorcery card from your graveyard this turn. If that spell doesn't target a creature you control, it costs {8} more to cast this way. If that spell would be put into your graveyard, exile it instead. Activate only once each turn. (You still pay the spell's costs. Timing rules for the spell still apply.) +Oracle:Flying\n{0}: You may cast target instant or sorcery card from your graveyard this turn. If that spell doesn't target a creature you control, it costs {8} more to cast this way. If that spell would be put into your graveyard, exile it instead. Activate only once each turn. (You still pay the spell's costs. Timing rules for the spell still apply.)