Fixes to Kaldheim equipment, cast prevention, AI sacrificing

Kaldheim (KHM) equipment that creates tokens uses an ETB (Enter the Battlefield) ability, not a cast ability.
Cards that use maxCast(anytext)0 simply prevent any type of casting.
The AI sometimes hangs when sacrificing creatures, preventing game continuation. To address this, a restriction has been added to allow only the human player to use this effect.
Other bug fixes:
Doomsday
Perimeter Sergeant
Imposing Grandeur
Sacred armory text
This commit is contained in:
Eduardo MG
2024-02-12 18:00:35 -06:00
parent 667adfadce
commit 0d05aeb329
2 changed files with 28 additions and 30 deletions

View File

@@ -4885,7 +4885,8 @@ toughness=1
[/card]
[card]
name=Ashes of the Abhorrent
auto=lord(*|graveyard) onlymanaability
auto=lord(*[-land]|graveyard) changecost(colorless:+999) forcedalive
auto=lord(*[-land]|graveyard) -canPlayFromGraveyard
auto=@movedto(*|graveyard) from(battlefield):life:1 controller
text=Players can't cast spells from graveyards or activate abilities of cards in graveyards. -- Whenever a creature dies, you gain 1 life.
mana={1}{W}
@@ -25451,7 +25452,7 @@ type=Sorcery
[/card]
[card]
name=Doomsday
auto=name(Search 5 cards) target(<5>*|mylibrary,mygraveyard) moveto(myreveal) and!( moveto(mylibrary) and!( transforms((,newability[all(*[-fresh]|mylibrary) moveto(exile)],newability[all(*|mygraveyard) moveto(exile)])) oneshot )! )!
auto=name(Search 5 cards) target(<5>other *|mylibrary,mygraveyard) moveto(myreveal) and!( moveto(mylibrary) and!( transforms((,newability[all(*[-fresh]|mylibrary) moveto(exile)],newability[all(*|mygraveyard) moveto(exile)])) oneshot )! )!
auto=life:-halfuplifetotal controller
text=Search your library and graveyard for five cards and exile the rest. Put the chosen cards on top of your library in any order. You lose half your life, rounded up.
mana={B}{B}{B}
@@ -26280,7 +26281,7 @@ toughness=2
[/card]
[card]
name=Draugr's Helm
autostack=may name(Create zombie and attach) pay({2}{B}) name(Create zombie and attach) moveTo(mybattlefield) and!( transforms((,newability[token(Zombie^Creature Zombie Berserker^2/2^black)],newability[rehook target(berserker[token;zombie;fresh]|mybattlefield)])) oneshot )!
auto=may name(Create zombie and attach) pay({2}{B}) name(Create zombie and attach) moveTo(mybattlefield) and!( transforms((,newability[token(Zombie^Creature Zombie Berserker^2/2^black)],newability[rehook target(berserker[token;zombie;fresh]|mybattlefield)])) oneshot )!
auto={4}:equip
auto=teach(creature) 2/2
auto=teach(creature) menace
@@ -27758,7 +27759,7 @@ toughness=3
[/card]
[card]
name=Dwarven Hammer
autostack=may name(Create dwarf and attach) pay({2}) name(Create dwarf and attach) moveTo(mybattlefield) and!( transforms((,newability[token(Dwarf^Creature Dwarf Berserker^2/1^red)],newability[rehook target(berserker[token;dwarf;fresh]|mybattlefield)])) oneshot )!
auto=may name(Create dwarf and attach) pay({2}) name(Create dwarf and attach) moveTo(mybattlefield) and!( transforms((,newability[token(Dwarf^Creature Dwarf Berserker^2/1^red)],newability[rehook target(berserker[token;dwarf;fresh]|mybattlefield)])) oneshot )!
auto={3}:equip
auto=teach(creature) 3/0
auto=teach(creature) trample
@@ -29025,7 +29026,7 @@ type=Instant
[/card]
[card]
name=Elven Bow
autostack=may name(Create elf and attach) pay({2}) name(Create elf and attach) moveTo(mybattlefield) and!( transforms((,newability[token(Elf^Creature Elf Warrior^1/1^green)],newability[rehook target(warrior[token;elf;fresh]|mybattlefield)])) oneshot )!
auto=may name(Create elf and attach) pay({2}) name(Create elf and attach) moveTo(mybattlefield) and!( transforms((,newability[token(Elf^Creature Elf Warrior^1/1^green)],newability[rehook target(warrior[token;elf;fresh]|mybattlefield)])) oneshot )!
auto={3}:equip
auto=teach(creature) 1/2
auto=teach(creature) reach
@@ -38620,7 +38621,7 @@ toughness=4
[/card]
[card]
name=Giant's Amulet
autostack=may name(Create giant and attach) pay({3}{U}) name(Create giant and attach) moveTo(mybattlefield) and!( transforms((,newability[token(Giant^Creature Giant Wizard^4/4^blue)],newability[rehook target(warrior[token;giant;fresh]|mybattlefield)])) oneshot )!
auto=may name(Create giant and attach) pay({3}{U}) name(Create giant and attach) moveTo(mybattlefield) and!( transforms((,newability[token(Giant^Creature Giant Wizard^4/4^blue)],newability[rehook target(warrior[token;giant;fresh]|mybattlefield)])) oneshot )!
auto={2}:equip
auto=teach(creature) 0/1
auto=teach(creature) transforms((,newability[this(variable{tapped}<1) opponentshroud]))
@@ -39937,7 +39938,6 @@ toughness=5
[/card]
[card]
name=Gluttonous Guest
abilities=deathtouch
auto=name(Create a blood) token(Blood)
auto=@sacrificed(blood|mybattlefield):name(Gain 1 life) life:1 controller
text=When Gluttonous Guest enters the battlefield, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") -- Whenever you sacrifice a Blood token, you gain 1 life.
@@ -71998,7 +71998,7 @@ toughness=3
[/card]
[card]
name=Perimeter Sergeant
auto=_ATTACKING_all(human|myBattlefield) 1/0 ueot
auto=_ATTACKING_all(other human|myBattlefield) 1/0 ueot
text=Whenever Perimeter Sergeant attacks, other Humans you control get +1/+0 until end of turn.
mana={2}{W}
type=Creature
@@ -79382,7 +79382,7 @@ type=Instant
[card]
name=Reprobation
target=creature
auto=loseabilities
auto=teach(creature) loseabilities
auto=transforms((,setpower=0,settoughness=1))
auto=transforms((coward))
text=Enchant creature -- Enchanted creature loses all abilities and is a Coward creature with base power and toughness 0/1. (It keeps all supertypes but loses all other types and creature types.)
@@ -92402,10 +92402,9 @@ toughness=2
name=Soulless Jailer
auto=@movedto(*|battlefield) from(graveyard):all(trigger[to]) moveto(ownergraveyard)
auto=@movedto(*|battlefield) from(exile):all(trigger[to]) moveto(ownerexile)
auto=maxCast(*[-creature]|graveyard)0
auto=maxCast(*[-creature]|graveyard)0 opponent
auto=maxCast(*[-creature]|exile)0
auto=maxCast(*[-creature]|exile)0 opponent
auto=lord(*[-land]|graveyard) changecost(colorless:+999) forcedalive
auto=lord(*[-land]|graveyard) -canPlayFromGraveyard
auto=lord(*[-land]|exile) changecost(colorless:+999) forcedalive
text=Permanent cards in graveyards can't enter the battlefield. -- Players can't cast noncreature spells from graveyards or exile.
mana={2}
type=Artifact Creature
@@ -106767,7 +106766,7 @@ toughness=5
[card]
name=Urza, Lord High Artificer
auto=create(Construct)
auto=aslongas(artifact[-tapped]|mybattlefield) {T(artifact|myBattlefield)}:add{U}
auto=aslongas(artifact[-tapped]|mybattlefield) {T(artifact|myBattlefield)}:add{U} restriction{compare(ishuman)~morethan~0}
auto={5}:name(Shuffle and play) shuffle && reveal:1 optionone name(Reveal)if type(*|reveal)~morethan~0 then name(Check to play) target(*|reveal) transforms((,newability[if type(*|mybattlefield)~morethan~0 then castcard(putinplay)])) else name(do not play) target(*|reveal) donothing optiononeend optiontwo choice all(*|reveal) moveTo(exile) optiontwoend revealend
text=When Urza, Lord High Artificer enters the battlefield, create a 0/0 colorless Construct artifact creature token with "This creature gets +1/+1 for each artifact you control." -- Tap an untapped artifact you control: Add {U}. -- {5}: Shuffle your library, then exile the top card. Until end of turn, you may play that card without paying its mana cost.
mana={2}{U}{U}
@@ -107053,7 +107052,7 @@ toughness=5
[/card]
[card]
name=Valkyrie's Sword
autostack=may name(Create angel and attach) pay({4}{W}) name(Create angel and attach) moveTo(mybattlefield) and!( transforms((,newability[token(Warrior^Creature Angel Warrior^4/4^white^flying^vigilance)],newability[rehook target(warrior[token;angel;fresh]|mybattlefield)])) oneshot )!
auto=may name(Create angel and attach) pay({4}{W}) name(Create angel and attach) moveTo(mybattlefield) and!( transforms((,newability[token(Warrior^Creature Angel Warrior^4/4^white^flying^vigilance)],newability[rehook target(warrior[token;angel;fresh]|mybattlefield)])) oneshot )!
auto={3}:equip
auto=teach(creature) 2/1
text=When Valkyrie's Sword enters the battlefield, you may pay {4}{W}. If you do, create a 4/4 white Angel Warrior creature token with flying and vigilance, then attach Valkyrie's Sword to it. -- Equipped creature gets +2/+1. -- Equip {3}
@@ -110947,10 +110946,9 @@ type=Instant
name=Weathered Runestone
auto=@movedto(*[-land]|battlefield) from(graveyard):all(trigger[to]) moveto(ownergraveyard)
auto=@movedto(*[-land]|battlefield) from(library):all(trigger[to]) moveto(ownerlibrary)
auto=maxCast(*|graveyard)0
auto=maxCast(*|graveyard)0 opponent
auto=maxCast(*|library)0
auto=maxCast(*|library)0 opponent
auto=lord(*[-land]|graveyard) changecost(colorless:+999) forcedalive
auto=lord(*[-land]|graveyard) -canPlayFromGraveyard
auto=lord(*[-land]|library) changecost(colorless:+999) forcedalive
text=Nonland permanent cards in graveyards and libraries can't enter the battlefield. -- Players can't cast spells from graveyards or libraries.
mana={2}
type=Artifact

View File

@@ -6460,7 +6460,7 @@ toughness=1
[/card]
[card]
name=Ashnod's Altar
auto={S(creature|myBattlefield)}:Add{2}
auto={S(creature|myBattlefield)}:Add{2} restriction{compare(ishuman)~morethan~0}
text=Sacrifice a creature: Add {2} to your mana pool.
mana={3}
type=Artifact
@@ -86173,11 +86173,11 @@ subtype=Aura
[/card]
[card]
name=Phyrexian Altar
auto=aslongas(creature|mybattlefield) {S(creature|myBattlefield)}:Add{W}
auto=aslongas(creature|mybattlefield) {S(creature|myBattlefield)}:Add{U}
auto=aslongas(creature|mybattlefield) {S(creature|myBattlefield)}:Add{B}
auto=aslongas(creature|mybattlefield) {S(creature|myBattlefield)}:Add{R}
auto=aslongas(creature|mybattlefield) {S(creature|myBattlefield)}:Add{G}
auto=aslongas(creature|mybattlefield) {S(creature|myBattlefield)}:Add{W} restriction{compare(ishuman)~morethan~0}
auto=aslongas(creature|mybattlefield) {S(creature|myBattlefield)}:Add{U} restriction{compare(ishuman)~morethan~0}
auto=aslongas(creature|mybattlefield) {S(creature|myBattlefield)}:Add{B} restriction{compare(ishuman)~morethan~0}
auto=aslongas(creature|mybattlefield) {S(creature|myBattlefield)}:Add{R} restriction{compare(ishuman)~morethan~0}
auto=aslongas(creature|mybattlefield) {S(creature|myBattlefield)}:Add{G} restriction{compare(ishuman)~morethan~0}
text=Sacrifice a creature: Add one mana of any color to your mana pool.
mana={3}
type=Artifact
@@ -96540,9 +96540,9 @@ type=Sorcery
name=Roilmage's Trick
auto=all(creature|opponentbattlefield) -converge/0 ueot
auto=draw:1 controller
text=Converge -- Creatures your opponents control get -X/-0 until end of turn, where X is the number of colors of mana spent to cast Roilmage's Trick.
text=Converge -- Creatures your opponents control get -X/-0 until end of turn, where X is the number of colors of mana spent to cast this spell. -- Draw a card.
mana={3}{U}
type=Sorcery
type=Instant
[/card]
[card]
name=Roil's Retribution
@@ -98073,7 +98073,7 @@ toughness=3
[card]
name=Sacred Armory
auto={2}:1/0 target(creature)
text={2}: Target creatures gets +1/+0 until end of turn.
text={2}: Target creature gets +1/+0 until end of turn.
mana={2}
type=Artifact
[/card]
@@ -110394,7 +110394,7 @@ subtype=Aura
[/card]
[card]
name=Spawning Pit
auto=aslongas(creature|mybattlefield) {S(creature|myBattlefield)}:counter(0/0,1,Charge)
auto=aslongas(creature|mybattlefield) {S(creature|myBattlefield)}:counter(0/0,1,Charge) restriction{compare(ishuman)~morethan~0}
auto={1}{C(0/0,-2,Charge)}:token(Spawn,artifact creature spawn,2/2)
text=Sacrifice a creature: Put a charge counter on Spawning Pit. -- {1}, Remove two charge counters from Spawning Pit: Put a 2/2 colorless Spawn artifact creature token onto the battlefield.
mana={2}
@@ -131836,7 +131836,7 @@ toughness=6
[/card]
[card]
name=War Cadence
auto={X}{U}:name(Block X Cost) thisforeach(X) all(creature) transforms((,newability[blockcost:1])) ueot
auto={X}{R}:name(Block X Cost) thisforeach(X) all(creature) transforms((,newability[blockcost:1])) ueot
text={X}{R}: This turn, creatures can't block unless their controller pays {X} for each blocking creature he or she controls.
mana={2}{R}
type=Enchantment