Fixed primitives, fixed "proliferate" target chooser, improved "cycled" and "discarded" triggers, added new keywords "pcycledcount" and "ocycledcount" to calculate how may cards have been cycled this turn from a specific player, added new menu choices to instantly select/deselect and confirm all the possible targets (in any zone) during the target selection of an ability (e.g. Proliferation ability can target a lot of permanents and players so using that menu choice all the targets will be instantly chosen and then the current player will be able to remove any of them or confirm the entire selection).

This commit is contained in:
Vittorio Alfieri
2021-10-13 17:39:48 +02:00
parent 371d4c9f85
commit fbcb1feb88
17 changed files with 96 additions and 37 deletions

View File

@@ -8691,8 +8691,11 @@ toughness=2
[card]
name=Brutal Expulsion
abilities=devoid
auto=ability$!name(Choose one) choice name(Return creature) target(creature) moveto(ownerhand) _ choice name(Return spell) target(*|stack) fizzleto(hand) _ choice name(Don't return anything) donothing!$ controller
auto=ability$!may name(Deal 2 damage) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:2])) ueot!$ controller
restriction=compare(type:*[creature;planeswalker]:battlefieldplustype:*:stackplusend)~morethan~0
auto=if type(creature|battlefield)~morethan~0 then choice name(Return creature) name(Return creature) target(creature) moveto(ownerhand) and!( ability$!may name(Deal 2 damage) name(Deal 2 damage) target(*[creature;planeswalker]|battlefield) transforms((,newability[exiledeath],newability[damage:2])) ueot!$ controller )!
auto=if type(*|opponentstack)~morethan~0 then choice name(Return opponent spell) name(Return opponent spell) target(*|opponentstack) transforms((,newability[-nofizzle],newability[-nofizzlealternative],newability[fizzleto(hand)],newability[ability$!may name(Deal 2 damage) name(Deal 2 damage) target(*[creature;planeswalker]|battlefield) transforms((,newability[exiledeath],newability[damage:2])) ueot!$ opponent])) oneshot
auto=if type(*|mystack)~morethan~1 then choice name(Return your spell) name(Return your spell) target(*|mystack) transforms((,newability[-nofizzle],newability[-nofizzlealternative],newability[fizzleto(hand)],newability[ability$!may name(Deal 2 damage) name(Deal 2 damage) target(*[creature;planeswalker]|battlefield) transforms((,newability[exiledeath],newability[damage:2])) ueot!$ controller])) oneshot
auto=if type(*[creature;planeswalker]|battlefield)~morethan~0 then choice name(Don't return and deal 2 damage) name(Don't return and deal 2 damage) target(*[creature;planeswalker]|battlefield) transforms((,newability[exiledeath])) ueot && damage:2
text=Devoid (This card has no color.) -- Choose one or both -- Return target spell or creature to its owner's hand. -- Brutal Expulsion deals 2 damage to target creature or planeswalker. If that permanent would be put into a graveyard this turn, exile it instead.
mana={2}{U}{R}
type=Instant
@@ -17881,9 +17884,10 @@ type=Sorcery
[/card]
[card]
name=Divide by Zero
target=*[manacost>=1]|battlefield
auto=moveto(ownerhand)
auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot
restriction=compare(type:*:battlefieldplustype:*:stackplusend)~morethan~0
auto=if type(*[manacost>=1]|battlefield)~morethan~0 then choice name(Return permanent) name(Return permanent) target(*[manacost>=1]|battlefield) moveto(ownerhand) and!( ability$!name(Learn) name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot!$ controller )!
auto=if type(*|opponentstack)~morethan~0 then choice name(Return opponent spell) name(Return opponent spell) target(*|opponentstack) transforms((,newability[-nofizzle],newability[-nofizzlealternative],newability[fizzleto(hand)],newability[ability$!name(Learn) name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot!$ opponent])) oneshot
auto=if type(*|mystack)~morethan~1 then choice name(Return your spell) name(Return your spell) target(*|mystack) transforms((,newability[-nofizzle],newability[-nofizzlealternative],newability[fizzleto(hand)],newability[ability$!name(Learn) name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot!$ controller])) oneshot
text=Return target spell or permanent with mana value 1 or greater to its owner's hand. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.)
mana={2}{U}
type=Instant
@@ -22613,7 +22617,7 @@ toughness=2
[/card]
[card]
name=Failure // Comply
auto=ifnot paid(alternative) then target(*|stack) fizzleto(hand)
auto=ifnot paid(alternative) then target(*|stack) transforms((,newability[-nofizzle],newability[-nofizzlealternative],newability[fizzleto(hand)])) oneshot
auto=if paid(alternative) then chooseanameopp maxcast(*[chosenname])0 opponent ueot && phaseaction[upkeep once] maxcast(*[lastnamechosen])0 opponent ueot chooseend nonland
autograveyard={W}{E}:name(Comply) activate castcard(alternative) asSorcery
text=Return target spell to its owner's hand. -- Aftermath (Cast this spell only from your graveyard. Then exile it.) Choose a card name. Until your next turn, your opponents can't cast spells with the chosen name.
@@ -64456,9 +64460,9 @@ toughness=4
[/card]
[card]
name=Spellpyre Phoenix
abilities=flying,cycling
auto=moveTo(myHand) target(*[instant;sorcery;cycling]|myGraveyard)
autograveyard=if type(@cycled(*|myHand)~morethan~2 then moveTo(myhand) target(Spellpyre Phoenix|myGraveyard))
abilities=flying
auto=may name(Return instant or sorcery) target(*[instant;sorcery;cycling]|myGraveyard) moveTo(myHand)
autograveyard=@each end restriction{compare(pcycledcount)~morethan~1}:name(Return to hand) moveTo(myhand)
text=Flying -- When Spellpyre Phoenix enters the battlefield, you may return target instant or sorcery card with a cycling ability from your graveyard to your hand. -- At the beginning of each end step, if you cycled two or more cards this turn, return Spellpyre Phoenix from your graveyard to your hand.
mana={3}{R}{R}
type=Creature
@@ -73804,8 +73808,9 @@ type=Instant
[/card]
[card]
name=Unsubstantiate
auto=choice name(Return target creature) target(creature|battlefield) moveTo(ownerHand)
auto=choice name(Return target spell) target(*|stack) fizzleto(hand)
restriction=compare(type:creature:battlefieldplustype:*:stackplusend)~morethan~0
auto=if type(creature|battlefield)~morethan~0 then choice name(Return target creature) name(Return target creature) target(creature|battlefield) moveTo(ownerHand)
auto=if type(*|stack)~morethan~1 then choice name(Return target spell) name(Return target spell) target(*|stack) transforms((,newability[-nofizzle],newability[-nofizzlealternative],newability[fizzleto(hand)])) oneshot
text=Return target spell or creature to its owner's hand.
mana={1}{U}
type=Instant
@@ -75014,7 +75019,8 @@ type=Instant
[card]
name=Venser, Shaper Savant
abilities=flash
auto=target(*) moveto(ownerhand)
auto=if type(*|battlefield)~morethan~0 then choice name(Return target permanent) name(Return target permanent) target(*|battlefield) moveTo(ownerHand)
auto=if type(*|stack)~morethan~0 then choice name(Return target spell) name(Return target spell) target(*|stack) transforms((,newability[-nofizzle],newability[-nofizzlealternative],newability[fizzleto(hand)])) oneshot
text=Flash (You may cast this spell any time you could cast an instant.) -- When Venser, Shaper Savant enters the battlefield, return target spell or permanent to its owner's hand.
mana={2}{U}{U}
type=Legendary Creature