UNF: magar_of_the_magic_strings.txt and support (#4105)

* UNF: magar_of_the_magic_strings.txt and support

* tweaks

* clean up

* revised
This commit is contained in:
Northmoc
2024-06-04 09:46:33 -04:00
committed by GitHub
parent 14ddfa5680
commit 57cd390238
6 changed files with 18 additions and 9 deletions

View File

@@ -163,9 +163,7 @@ public class PlayEffect extends SpellAbilityEffect {
String name = source.getNamedCard(); String name = source.getNamedCard();
if (name.trim().isEmpty()) { if (name.trim().isEmpty()) {
name = controller.getNamedCard(); name = controller.getNamedCard();
if(name.trim().isEmpty()) { if (name.trim().isEmpty()) return;
return;
}
} }
Card card = Card.fromPaperCard(StaticData.instance().getCommonCards().getUniqueByName(name), controller); Card card = Card.fromPaperCard(StaticData.instance().getCommonCards().getUniqueByName(name), controller);
// so it gets added to stack // so it gets added to stack

View File

@@ -7,7 +7,7 @@ S:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 3 | EffectZone
T:Mode$ ChangesZone | ValidCard$ Card.Self | Destination$ Battlefield | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile three cards at random from your graveyard. Choose a noncreature, nonland card from among them and copy it. You may cast the copy without paying its mana cost. T:Mode$ ChangesZone | ValidCard$ Card.Self | Destination$ Battlefield | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile three cards at random from your graveyard. Choose a noncreature, nonland card from among them and copy it. You may cast the copy without paying its mana cost.
SVar:TrigExile:DB$ ChangeZone | Origin$ Graveyard | Destination$ Exile | AtRandom$ True | Hidden$ True | ChangeType$ Card.YouOwn | ChangeNum$ 3 | RememberChanged$ True | SubAbility$ DBChoose SVar:TrigExile:DB$ ChangeZone | Origin$ Graveyard | Destination$ Exile | AtRandom$ True | Hidden$ True | ChangeType$ Card.YouOwn | ChangeNum$ 3 | RememberChanged$ True | SubAbility$ DBChoose
SVar:DBChoose:DB$ ChooseCard | ChoiceZone$ Exile | Amount$ 1 | Choices$ Card.IsRemembered+nonLand+nonCreature | ChoiceTitle$ Choose a noncreature, nonland card | SubAbility$ DBPlay SVar:DBChoose:DB$ ChooseCard | ChoiceZone$ Exile | Amount$ 1 | Choices$ Card.IsRemembered+nonLand+nonCreature | ChoiceTitle$ Choose a noncreature, nonland card | SubAbility$ DBPlay
SVar:DBPlay:DB$ Play | Defined$ ChosenCard | ValidSA$ Spell | Controller$ You | CopyCard$ True | WithoutManaCost$ True | ValidSA$ Spell | Optional$ True | SubAbility$ DBCleanup SVar:DBPlay:DB$ Play | Defined$ ChosenCard | ValidSA$ Spell | Controller$ You | CopyCard$ True | WithoutManaCost$ True | Optional$ True | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
DeckHas:Ability$Graveyard DeckHas:Ability$Graveyard
DeckHints:Ability$Mill DeckHints:Ability$Mill

View File

@@ -2,7 +2,7 @@ Name:Denied!
ManaCost:U ManaCost:U
Types:Instant Types:Instant
A:SP$ NameCard | Defined$ You | AILogic$ MostProminentInHumanDeck | SubAbility$ DBTarget | SpellDescription$ Choose a card name, A:SP$ NameCard | Defined$ You | AILogic$ MostProminentInHumanDeck | SubAbility$ DBTarget | SpellDescription$ Choose a card name,
SVar:DBTarget:DB$ Pump | TargetType$ Spell | ValidTgts$ Card | TgtZone$ Stack | SubAbility$ DBRevealHand | SpellDescription$ None SVar:DBTarget:DB$ Pump | TargetType$ Spell | ValidTgts$ Card | TgtZone$ Stack | SubAbility$ DBRevealHand | StackDescription$ None
SVar:DBRevealHand:DB$ RevealHand | Defined$ TargetedController | RememberRevealed$ True | SubAbility$ DBCounter | SpellDescription$ then target spell's controller reveals their hand. SVar:DBRevealHand:DB$ RevealHand | Defined$ TargetedController | RememberRevealed$ True | SubAbility$ DBCounter | SpellDescription$ then target spell's controller reveals their hand.
SVar:DBCounter:DB$ Counter | Defined$ Targeted | ConditionDefined$ Remembered | ConditionPresent$ Card.NamedCard | ConditionCompare$ GE1 | SubAbility$ DBCleanup | SpellDescription$ If a card with the chosen name is revealed this way, counter that spell. SVar:DBCounter:DB$ Counter | Defined$ Targeted | ConditionDefined$ Remembered | ConditionPresent$ Card.NamedCard | ConditionCompare$ GE1 | SubAbility$ DBCleanup | SpellDescription$ If a card with the chosen name is revealed this way, counter that spell.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True

View File

@@ -2,6 +2,6 @@ Name:Enter the Dungeon
ManaCost:B B ManaCost:B B
Types:Sorcery Types:Sorcery
A:SP$ Subgame | RememberPlayers$ Win | StartingLife$ 5 | SubAbility$ DBRepeatEachPlayer | SpellDescription$ Players play a Magic subgame, starting at 5 life and using their libraries as their decks. | StackDescription$ SpellDescription A:SP$ Subgame | RememberPlayers$ Win | StartingLife$ 5 | SubAbility$ DBRepeatEachPlayer | SpellDescription$ Players play a Magic subgame, starting at 5 life and using their libraries as their decks. | StackDescription$ SpellDescription
SVar:DBRepeatEachPlayer:DB$ RepeatEach | RepeatPlayers$ Remembered | ClearRememberedBeforeLoop$ True | RepeatSubAbility$ DBSearch | SpellDescription$ The winner searches their library for two cards, puts those cards into their hand, then shuffles their library. | StackDescription$ SpellDescription SVar:DBRepeatEachPlayer:DB$ RepeatEach | RepeatPlayers$ Remembered | ClearRememberedBeforeLoop$ True | RepeatSubAbility$ DBSearch | SpellDescription$ The winner searches their library for two cards, puts those cards into their hand, then shuffles. | StackDescription$ SpellDescription
SVar:DBSearch:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Card | ChangeNum$ 2 | Mandatory$ True | DefinedPlayer$ Player.IsRemembered | SpellDescription$ None SVar:DBSearch:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Card | ChangeNum$ 2 | Mandatory$ True | DefinedPlayer$ Player.IsRemembered | StackDescription$ None
Oracle:Players play a Magic subgame under the table, starting at 5 life and using their libraries as their decks. The winner searches their library for two cards, puts those cards into their hand, then shuffles. Oracle:Players play a Magic subgame under the table, starting at 5 life and using their libraries as their decks. The winner searches their library for two cards, puts those cards into their hand, then shuffles.

View File

@@ -3,7 +3,7 @@ ManaCost:1 R
Types:Creature Human Wizard Types:Creature Human Wizard
PT:1/2 PT:1/2
K:Haste K:Haste
A:AB$ SetState | Cost$ T | ValidTgts$ Creature.YouCtrl+faceDown | Mode$ TurnFaceUp | SubAbility$ DBPump | SpellDescription$ Turn target face-down creature you control face up. At the beginning of the next end step, sacrifice it. A:AB$ SetState | Cost$ T | ValidTgts$ Creature.YouCtrl+faceDown | TgtPrompt$ Select target face-down creature you control | Mode$ TurnFaceUp | SubAbility$ DBPump | StackDescription$ Turn {c:Targeted} face up. | SpellDescription$ Turn target face-down creature you control face up.
SVar:DBPump:DB$ Pump | Defined$ Targeted | AtEOT$ Sacrifice SVar:DBPump:DB$ Pump | Defined$ Targeted | AtEOT$ Sacrifice | StackDescription$ SpellDescription | SpellDescription$ At the beginning of the next end step, sacrifice it.
AI:RemoveDeck:All AI:RemoveDeck:All
Oracle:Haste\n{T}: Turn target face-down creature you control face up. At the beginning of the next end step, sacrifice it. Oracle:Haste\n{T}: Turn target face-down creature you control face up. At the beginning of the next end step, sacrifice it.

View File

@@ -0,0 +1,11 @@
Name:Magar of the Magic Strings
ManaCost:1 B R
Types:Legendary Creature Minotaur Performer
PT:3/3
A:AB$ ChangeZone | Cost$ 1 B R | ValidTgts$ Instant.YouOwn,Sorcery.YouOwn | TgtPrompt$ Select target instant or sorcery card in your graveyard | Origin$ Graveyard | Destination$ Battlefield | RememberLKI$ True | FaceDown$ True | FaceDownPower$ 3 | FaceDownToughness$ 3 | FaceDownSetType$ Creature | AnimateSubAbility$ DBAnimate | StackDescription$ REP Note_{p:You} notes & target instant or sorcery card in your graveyard_{c:Targeted} & put_puts | SpellDescription$ Note the name of target instant or sorcery card in your graveyard and put it onto the battlefield face down. It's a 3/3 creature with "Whenever this creature deals combat damage to a player, you may create a copy of the card with the noted name. You may cast the copy without paying its mana cost" and "If this creature would leave the battlefield, exile it instead of putting it anywhere else."
SVar:DBAnimate:DB$ Animate | RememberObjects$ RememberedLKI | Defined$ Remembered | Triggers$ DealsCDTrig | Replacements$ ReplaceDies | Duration$ Permanent
SVar:DealsCDTrig:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigPlay | TriggerZones$ Battlefield | TriggerDescription$ Whenever this creature deals combat damage to a player, you may create a copy of the card with the noted name. You may cast the copy without paying its mana cost.
SVar:TrigPlay:DB$ Play | Defined$ RememberedLKI | ZoneRegardless$ True | CopyCard$ True | ValidSA$ Spell | WithoutManaCost$ True | Optional$ True
SVar:ReplaceDies:Event$ Moved | ActiveZones$ Battlefield | Origin$ Battlefield | ExcludeDestination$ Exile | ValidCard$ Card.Self | ReplaceWith$ Exile | Description$ If this creature would leave the battlefield, exile it instead of putting it anywhere else.
SVar:Exile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | Defined$ ReplacedCard
Oracle:{1}{B}{R}: Note the name of target instant or sorcery card in your graveyard and put it onto the battlefield face down. It's a 3/3 creature with "Whenever this creature deals combat damage to a player, you may create a copy of the card with the noted name. You may cast the copy without paying its mana cost" and "If this creature would leave the battlefield, exile it instead of putting it anywhere else."