Bug fixes, learn macros update

Crystalline Nautilus
academic dispute
Soulstinger
Crown of Gondor
Fists of Flame
Imperial Aerosaur
Volatile Rig crashes the game
Kiora Bests the Sea God
Holy Frazzle-Cannon
Illustrious Wanderglyph
Stonespeaker Crystal
Slayer of the Wicked
This commit is contained in:
Eduardo MG
2024-06-12 13:08:19 -06:00
parent b20484c7de
commit b60630d814
4 changed files with 32 additions and 43 deletions

View File

@@ -177,7 +177,7 @@
#AUTO_DEFINE _RIOT_ movedTo(this|myBattlefield):transforms((,newability[ability$! name(Choose counter or ability) choice name(Put a +1/+1 counter) counter(1/1) target(creature) _ choice name(Gains Haste) haste target(creature) forever !$ controller]))
# Learn
#AUTO_DEFINE _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
#AUTO_DEFINE _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
# Spectacle, if an opponent lost life this turn
#AUTO_DEFINE _SPECTACLE_ compare(oplifelost)~morethan~0

View File

@@ -3689,7 +3689,7 @@ type=Artifact
name=Arcane Subtraction
target=creature
auto=-4/0 ueot
auto=_LEARN_ controller
auto=_LEARN_
text=Target creature gets -4/-0 until end of turn. -- 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={1}{U}
type=Instant
@@ -9322,7 +9322,7 @@ subtype=Equipment
name=Blade of Shared Souls
auto=teach(creature) transforms((,newability[if cantargetcard(*[-bladed]|*) then may name(Become a copy) name(Become a copy) target(other creature|mybattlefield) copy and!( all(this) transforms((bladed,newability[this(cantargetcard(*[bladed]|*) {0}:name(Copy effect ends) name(Copy effect ends) flip(myorigname) undocpy])) forever )!]))
auto={2}:equip
auto=livingweapontoken(Rebel,Creature Rebel,2/2)
auto=livingweapontoken(Rebel,Creature Rebel,2/2,red)
text=For Mirrodin! (When this Equipment enters the battlefield, create a 2/2 red Rebel creature token, then attach this to it.) -- Whenever Blade of Shared Souls becomes attached to a creature, for as long as Blade of Shared Souls remains attached to it, you may have that creature become a copy of another target creature you control. -- Equip {2}
mana={2}{U}
type=Artifact
@@ -9444,7 +9444,7 @@ name=Bladehold War-Whip
#MISSING: Equip abilities you activate of other Equipment cost {1} less to activate.
auto=teach(creature) double strike
auto={3}{R}{W}:equip
auto=livingweapontoken(Rebel,Rebel,2/2,red)
auto=livingweapontoken(Rebel,Creature Rebel,2/2,red)
text=For Mirrodin! (When this Equipment enters the battlefield, create a 2/2 red Rebel creature token, then attach this to it.) -- Equip abilities you activate of other Equipment cost {1} less to activate. -- Equipped creature has double strike. -- Equip {3}{R}{W}
mana={1}{R}{W}
type=Artifact
@@ -12845,7 +12845,7 @@ toughness=3
[/card]
[card]
name=Bristly Bill, Spine Sower
auto=@movedTo(land|myBattlefield):target(creature) counter(1/1)
auto=@movedTo(land|myBattlefield):counter(1/1) target(creature)
auto={3}{G}{G}:transforms((,newability[thisforeach(counter{1/1.1}) counter(1/1) all(this)])) oneshot all(creature|myBattlefield)
text=Landfall - Whenever a land enters the battlefield under your control, put a +1/+1 counter on target creature. -- {3}{G}{G}: Double the number of +1/+1 counters on each creature you control.
mana={1}{G}
@@ -16124,7 +16124,7 @@ backside=Chandra, Roaring Flame
restriction=compare(isflipped)~equalto~0
anyzone={0}:doubleside(backside)
auto=@movedTo(*[red]|mystack) restriction{compare(isflipped)~equalto~0}:untap
auto={T}:name(Deal 1 damage) target(player) damage:1 && if compare(totaldmg)~morethan~2 then all(this) moveto(exile) and!( moveto(ownerbattlefield) and!( flip(backside) )! )!
auto={T}:name(Deal 1 damage) target(player) damage:1 && if compare(oplifelost)~morethan~2 then all(this) moveto(exile) and!( moveto(ownerbattlefield) and!( flip(backside) )! )!
text=Whenever you cast a red spell, untap Chandra, Fire of Kaladesh. -- {T}: Chandra, Fire of Kaladesh deals 1 damage to target player. If Chandra has dealt 3 or more damage this turn, exile her, then return her to the battlefield transformed under her owner's control. // Chandra, Roaring Flame
mana={1}{R}{R}
type=Legendary Creature
@@ -20905,7 +20905,7 @@ type=Artifact
[card]
name=Crown of Gondor
auto=@movedto(creature[legendary]|mybattlefield) restriction{compare(pmonarch)~equalto~0,compare(omonarch)~equalto~0}:name(Becomes monarch) ability$!_MONARCH_CONTROLLER_!$ controller
auto=this(variable{pmonarch}>0) {1}:name(Equip as monarch) name(Equip as monarch) name(Equip as monarch) rehook target(creature|mybattlefield)
auto=this(variable{pmonarch}>0) {1}:name(Equip as monarch) name(Equip as monarch) name(Equip as monarch) rehook target(creature|mybattlefield) asSorcery
auto={4}:equip
auto=teach(creature) type:creature:mybattlefield/type:creature:mybattlefield nonstatic
text=Equipped creature gets +1/+1 for each creature you control. -- When a legendary creature enters the battlefield under your control, if there is no monarch, you become the monarch. -- Equip {4}. This ability costs {3} less to activate if you're the monarch.
@@ -32546,6 +32546,7 @@ type=Instant
[card]
name=Expel from Orazca
target=*[-land]
auto=_ASCEND_ controller
auto=choice name(owner's hand) moveTo(ownerHand)
auto=_CITY'S_BLESSING_ choice name(owner's library) moveTo(ownerLibrary)
text=Ascend (If you control ten or more permanents, you get the city's blessing for the rest of the game.) -- Return target nonland permanent to its owner's hand. If you have the city's blessing, you may put that permanent on top of its owner's library instead.
@@ -35697,7 +35698,7 @@ type=Artifact
name=Fists of Flame
target=creature
auto=draw:1 controller
auto=thisforeach(variable{pdrewcount}>0) 1/1 ueot && trample ueot
auto=thisforeach(variable{pdrewcount}>0) 1/0 ueot && trample ueot
text=Draw a card. Until end of turn, target creature gains trample and gets +1/+0 for each card you've drawn this turn.
mana={1}{R}
type=Instant
@@ -47593,7 +47594,7 @@ toughness=2
[card]
name=Holy Frazzle-Cannon
auto={1}:equip
auto=teach(creature) transforms((,newability[_ATTACKING_name(Put 1/1 counter) all(other *[creature;share!types!]|myBattlefield) counter(1/1)]))
auto=teach(creature) transforms((,newability[_ATTACKING_name(Put 1/1 counter) all(*[creature;share!types!]|myBattlefield) counter(1/1)]))
text=Whenever equipped creature attacks, put a +1/+1 counter on that creature and each other creature you control that shares a creature type with it. -- Equip {1}
color=black,white
type=Artifact
@@ -49486,7 +49487,7 @@ toughness=1
name=Illustrious Wanderglyph
auto=_ASCEND_
auto=@movedTo(*|myBattlefield) restriction{type(City's Blessing|mybattlefield)~equalto~0}:_ASCEND_
auto=_CITY'S_BLESSING_ lord(other creature|myBattlefield) +2/+2
auto=_CITY'S_BLESSING_ lord(other creature[artifact]|myBattlefield) +2/+2
auto=@each upkeep:_GNOMETOKEN_
text=Ascend (If you control ten or more permanents, you get the city's blessing for the rest of the game.) -- Other artifact creatures you control get +2/+2 as long as you have the city's blessing. -- At the beginning of each upkeep, create a 1/1 colorless Gnome artifact creature token.
mana={4}{W}
@@ -49760,7 +49761,7 @@ subtype=Aura
[card]
name=Imperial Aerosaur
abilities=flying
auto=target(other creature|mybattlefield) flying ueot && 1/1 ueot
auto=target(other creature|mybattlefield) transforms((,newability[1/1],newability[flying])) ueot
text=Flying -- When Imperial Aerosaur enters the battlefield, another target creature you control gets +1/+1 and gains flying until end of turn.
mana={3}{W}
type=Creature
@@ -55734,8 +55735,9 @@ name=Kiora Bests the Sea God
auto=token(Kraken Omi)
auto=counter(0/0,1,Lore)
auto=@each my firstmain:counter(0/0,1,Lore)
auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.2.Lore}) tap all(*[-land]|opponentbattlefield) && frozen
auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) MoveTo(myBattlefield) target(*|opponentbattlefield) && untap && sacrifice(this)
auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.2.Lore}=) all(*[-land]|opponentbattlefield) transforms((,newability[tap],newability[freeze])) ueot
auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) target(*|opponentbattlefield) moveTo(myBattlefield) and!(untap)!
auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) sacrifice(this)
text=(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.) -- I - Create an 8/8 blue Kraken creature token with hexproof. -- II - Tap all nonland permanents target opponent controls. They don't untap during their controller's next untap step. -- III - Gain control of target permanent an opponent controls. Untap it.
mana={5}{U}{U}
type=Enchantment
@@ -68509,10 +68511,8 @@ toughness=1
[card]
name=Neverwinter Hydra
abilities=trample
auto=if compare(halfpaid)~morethan~0 then counter(1/1)
auto=@dierolled(this) from(controller) once:counter(1/1,-1)
auto=_WARD_(4)
auto=thisforeach(variable{halfpaid}>0) ability$!name(Roll a d6) name(Roll a d6) all(mysource) rolld6 6 winability counter(1/1.lastrollresult) winabilityend loseability counter(1/1.lastrollresult) loseabilityend rolld6end!$ controller
auto=thisforeach(variable{halfpaid}) all(this) rolld6 6 winability counter(1/1,lastrollresult) winabilityend loseability counter(1/1,lastrollresult) loseabilityend rolld6end
text=As Neverwinter Hydra enters the battlefield, roll X d6. It enters with a number of +1/+1 counters on it equal to the total of those results. -- Trample -- Ward {4} (Whenever this creature becomes the target of a spell or ability an opponent controls, counter it unless that player pays {4}.)
mana={X}{X}{G}{G}
type=Creature
@@ -77621,14 +77621,14 @@ type=Sorcery
[card]
name=Pteramander
abilities=flying
auto={7}{U}:restriction{type(*[instant;sorcery]|myGraveyard)~equalto~0} _ADAPT_(4)
auto={6}{U}:restriction{type(*[instant;sorcery]|myGraveyard)~equalto~1} _ADAPT_(4)
auto={5}{U}:restriction{type(*[instant;sorcery]|myGraveyard)~equalto~2} _ADAPT_(4)
auto={4}{U}:restriction{type(*[instant;sorcery]|myGraveyard)~equalto~3} _ADAPT_(4)
auto={3}{U}:restriction{type(*[instant;sorcery]|myGraveyard)~equalto~4} _ADAPT_(4)
auto={2}{U}:restriction{type(*[instant;sorcery]|myGraveyard)~equalto~5} _ADAPT_(4)
auto={1}{U}:restriction{type(*[instant;sorcery]|myGraveyard)~equalto~6} _ADAPT_(4)
auto={U}:restriction{type(*[instant;sorcery]|myGraveyard)~morethan~6} _ADAPT_(4)
auto={7}{U}:restriction{type(*[instant;sorcery]|myGraveyard)~equalto~0} name(Adapt 4) this(counter{1/1}<1) transforms((,newability[counter(1/1.4)])) forever
auto={6}{U}:restriction{type(*[instant;sorcery]|myGraveyard)~equalto~1} name(Adapt 4) this(counter{1/1}<1) transforms((,newability[counter(1/1.4)])) forever
auto={5}{U}:restriction{type(*[instant;sorcery]|myGraveyard)~equalto~2} name(Adapt 4) this(counter{1/1}<1) transforms((,newability[counter(1/1.4)])) forever
auto={4}{U}:restriction{type(*[instant;sorcery]|myGraveyard)~equalto~3} name(Adapt 4) this(counter{1/1}<1) transforms((,newability[counter(1/1.4)])) forever
auto={3}{U}:restriction{type(*[instant;sorcery]|myGraveyard)~equalto~4} name(Adapt 4) this(counter{1/1}<1) transforms((,newability[counter(1/1.4)])) forever
auto={2}{U}:restriction{type(*[instant;sorcery]|myGraveyard)~equalto~5} name(Adapt 4) this(counter{1/1}<1) transforms((,newability[counter(1/1.4)])) forever
auto={1}{U}:restriction{type(*[instant;sorcery]|myGraveyard)~equalto~6} name(Adapt 4) this(counter{1/1}<1) transforms((,newability[counter(1/1.4)])) forever
auto={U}:restriction{type(*[instant;sorcery]|myGraveyard)~morethan~6} name(Adapt 4) this(counter{1/1}<1) transforms((,newability[counter(1/1.4)])) forever
text=Flying -- {7}{U}: Adapt 4. This ability costs {1} less to activate for each instant and sorcery card in your graveyard. (If this creature has no +1/+1 counters on it, put four +1/+1 counters on it.)
mana={U}
type=Creature
@@ -94939,7 +94939,7 @@ subtype=Equipment
[/card]
[card]
name=Soulstinger
auto=name(Put two -1/-1 counters) name(Put two -1/-1 counters) counter(-1/-1,2) target(creature)
auto=name(Put two -1/-1 counters) name(Put two -1/-1 counters) counter(-1/-1,2) target(creature|myBattlefield)
auto=_DIES_this(counter{-1/-1}=1) ability$!name(Put -1/-1 counter) may name(Put -1/-1 counter) target(creature) counter(-1/-1)!$ controller
auto=_DIES_this(counter{-1/-1}=2) ability$!name(Put -1/-1 counters) may name(Put -1/-1 counters) target(creature) counter(-1/-1,2)!$ controller
auto=_DIES_this(counter{-1/-1}=3) ability$!name(Put -1/-1 counters) may name(Put -1/-1 counters) target(creature) counter(-1/-1,3)!$ controller
@@ -97874,7 +97874,7 @@ subtype=Aura
[card]
name=Stonespeaker Crystal
auto={T}:name(Add 2 mana) add{C}{C}
auto={2}{T}{S}:name(Draw and exile) transforms((,newability[draw:1 controller],newability[choice name(Exile opponent graveyard) all(*|opponentgraveyard) moveto(exile)],newability[choice name(Exile your graveyard) all(*|mygraveyard) moveto(exile)])) oneshot
auto={2}{T}{S}:name(Draw and exile) transforms((,newability[draw:1 controller],newability[choice name(Exile opponent graveyard) all(*|opponentgraveyard) moveto(exile)],newability[choice name(Exile your graveyard) all(*|mygraveyard) moveto(exile)],newability[choice name(Exile both graveyards) all(*|graveyard) moveto(exile)])) oneshot
text={T}: Add {C}{C}. -- {2}, {T}, Sacrifice Stonespeaker Crystal: Exile any number of target players' graveyards. Draw a card.
mana={4}
type=Artifact

View File

@@ -2120,7 +2120,7 @@ toughness=3
[/card]
[card]
name=Akoum Flameseeker
auto={T(ally|myBattlefield)}{t}:may name(discard and draw) _DISCARD&DRAW_
auto={T(ally|myBattlefield)}{t}:_DISCARD&DRAW_
text=Cohort -- {T}, Tap an untapped Ally you control: Discard a card. If you do, draw a card.
mana={2}{R}
type=Creature
@@ -24677,7 +24677,7 @@ auto=bestow transforms((,newability[@targeted(this):all(trigger[to]) sacrifice])
auto=@targeted(this):all(trigger[to]) sacrifice
auto=bestow bstw
auto=bestow teach(creature) 4/4
bestow={5}{w}{w}
bestow={3}{U}{U}
text=Bestow {3}{U}{U} (If you cast this card for its bestow cost, it's an Aura spell with enchant creature. It becomes a creature again if it's not attached to a creature.) -- When Crystalline Nautilus becomes the target of a spell or ability, sacrifice it. -- Enchanted creature gets +4/+4 and has "When this creature becomes the target of a spell or ability, sacrifice it."
mana={2}{U}
type=Enchantment Creature
@@ -107852,7 +107852,7 @@ toughness=1
[/card]
[card]
name=Slayer of the Wicked
auto=destroy target(vampire,werewolf,zombie)
auto=may destroy target(vampire,werewolf,zombie)
text=When Slayer of the Wicked enters the battlefield, you may destroy target Vampire, Werewolf, or Zombie.
mana={3}{W}
type=Creature
@@ -115074,7 +115074,7 @@ name=Stymied Hopes
target=*|stack
auto=transforms((,newability[pay[[{1}]] name(pay 1 mana) donothing?fizzle])) forever
aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot
auto=_SCRY1_
auto=_SCRY1_ controller
text=Counter target spell unless its controller pays {1}. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.)
mana={1}{U}
type=Instant
@@ -130243,18 +130243,6 @@ power=1
toughness=4
[/card]
[card]
name=Volatile Rig
auto=_ENRAGE_flipacoin loseability sacrifice all(this) loseabilityend flipend
auto=_DIES_flipacoin loseability damage:4 all(creature) && damage:4 all(player) loseabilityend flipend
abilities=trample,mustattack
text=Trample -- Volatile Rig attacks each turn if able. -- Whenever Volatile Rig is dealt damage, flip a coin. If you lose the flip, sacrifice Volatile Rig. -- When Volatile Rig dies, flip a coin. If you lose the flip, it deals 4 damage to each creature and each player.
mana={4}
type=Artifact Creature
subtype=Construct
power=4
toughness=4
[/card]
[card]
name=Volcanic Awakening
abilities=storm
auto=destroy target(land)

View File

@@ -195,7 +195,8 @@ public:
{
return 0;
}
//Creatures entering the battlefield don't cause abilities to trigger (e.g. "Hushbringer").
//Creatures entering the battlefield don't cause abilities to trigger (e.g. "Hushbringer").
//NOT WORKING
if (e->card->isCreature() && (game->players[0]->game->battlefield->hasAbility(Constants::NOENTERTRG) || game->players[1]->game->battlefield->hasAbility(Constants::NOENTERTRG))
&& (e->to == game->players[0]->game->battlefield || e->to == game->players[1]->game->battlefield))
{