diff --git a/projects/mtg/bin/Res/sets/primitives/_macros.txt b/projects/mtg/bin/Res/sets/primitives/_macros.txt index a31accd04..ddc8ca356 100644 --- a/projects/mtg/bin/Res/sets/primitives/_macros.txt +++ b/projects/mtg/bin/Res/sets/primitives/_macros.txt @@ -58,11 +58,11 @@ #AUTO_DEFINE _AMASS_($c) if type(army|mybattlefield)~morethan~0 then counter(1/1.$c) notATarget(army|myBattlefield) else create(Zombie Army:creature Zombie Army:0/0:black) and!(counter(1/1.$c) notATarget(army|myBattlefield))! # Amass Orc, Set LTR -#AUTO_DEFINE _AMASSORC1_ if type(army|mybattlefield)~morethan~0 then name(Put 1/1 counter) name(Put 1/1 counter) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1)])) forever else name(Create Orc Army) token(Orc Army^Creature Orc Army^0/0^black) and!( name(Put 1/1 counter) counter(1/1) notatarget(army|myBattlefield) )! -#AUTO_DEFINE _AMASSORC2_ if type(army|mybattlefield)~morethan~0 then name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.2)])) forever else name(Create Orc Army) token(Orc Army^Creature Orc Army^0/0^black) and!( name(Put 1/1 counters) counter(1/1.2) notatarget(army|myBattlefield) )! -#AUTO_DEFINE _AMASSORC3_ if type(army|mybattlefield)~morethan~0 then name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.3)])) forever else name(Create Orc Army) token(Orc Army^Creature Orc Army^0/0^black) and!( name(Put 1/1 counters) counter(1/1.3) notatarget(army|myBattlefield) )! -#AUTO_DEFINE _AMASSORC4_ if type(army|mybattlefield)~morethan~0 then name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.4)])) forever else name(Create Orc Army) token(Orc Army^Creature Orc Army^0/0^black) and!( name(Put 1/1 counters) counter(1/1.4) notatarget(army|myBattlefield) )! -#AUTO_DEFINE _AMASSORC5_ if type(army|mybattlefield)~morethan~0 then name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.5)])) forever else name(Create Orc Army) token(Orc Army^Creature Orc Army^0/0^black) and!( name(Put 1/1 counters) counter(1/1.5) notatarget(army|myBattlefield) )! +#AUTO_DEFINE _AMASSORC1_ if type(army|mybattlefield)~morethan~0 then name(Put 1/1 counter) name(Put 1/1 counter) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1)])) forever else name(Create Orc Army) token(Orc Army) and!( name(Put 1/1 counter) counter(1/1) notatarget(army|myBattlefield) )! +#AUTO_DEFINE _AMASSORC2_ if type(army|mybattlefield)~morethan~0 then name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.2)])) forever else name(Create Orc Army) token(Orc Army) and!( name(Put 1/1 counters) counter(1/1.2) notatarget(army|myBattlefield) )! +#AUTO_DEFINE _AMASSORC3_ if type(army|mybattlefield)~morethan~0 then name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.3)])) forever else name(Create Orc Army) token(Orc Army) and!( name(Put 1/1 counters) counter(1/1.3) notatarget(army|myBattlefield) )! +#AUTO_DEFINE _AMASSORC4_ if type(army|mybattlefield)~morethan~0 then name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.4)])) forever else name(Create Orc Army) token(Orc Army) and!( name(Put 1/1 counters) counter(1/1.4) notatarget(army|myBattlefield) )! +#AUTO_DEFINE _AMASSORC5_ if type(army|mybattlefield)~morethan~0 then name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.5)])) forever else name(Create Orc Army) token(Orc Army) and!( name(Put 1/1 counters) counter(1/1.5) notatarget(army|myBattlefield) )! # Scry, Evergreen #AUTO_DEFINE _SCRY_($c) scry:$c scrycore delayed dontshow donothing scrycoreend scryend diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index 8f6aae167..a22717546 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -1,7 +1,7 @@ grade=borderline #Bordeline Primitives Pack for Wagic the Homebrew. #Please keep these card alphabetized, and try to have the "name=" line at the top of each card -#I sorted this programmatically - Thanks to Vitty85 26-06-2023 +#I sorted this programmatically - Thanks to Vitty85 27-06-2023 [card] name=+2 Mace auto={3}:equip @@ -7124,6 +7124,16 @@ mana={1}{B} type=Instant [/card] [card] +name=Battle-Scarred Goblin +auto=@combat(blocked) source(this) from(creature):name(Damage blocking creatures) all(trigger[from]) damage:1 +text=Whenever Battle-Scarred Goblin becomes blocked, it deals 1 damage to each creature blocking it. +mana={1}{R} +type=Creature +subtype=Goblin Warrior +power=2 +toughness=2 +[/card] +[card] name=Battlefield Butcher auto={5}{T}:restriction{type(creature|mygraveyard)~equalto~0} life:-2 opponent auto={4}{T}:restriction{type(creature|mygraveyard)~equalto~1} life:-2 opponent @@ -10861,6 +10871,18 @@ mana={1}{U} type=Instant [/card] [card] +name=Boromir, Warden of the Tower +abilities=vigilance +auto=@movedTo(*|opponentstack):name(Counter if no mana spent) all(trigger[to]) name(Counter if no mana spent) transforms((,newability[if compare(totmanaspent)~equalto~0 then name(Counter spell) name(Counter spell) ability$!name(Counter spell) name(Counter spell) target(*|opponentstack) fizzle!$ opponent])) oneshot +auto={0}:name(Sacrifice and give indestructible) sacrifice and!( transforms((,newability[all(creature|mybattlefield) indestructible ueot],newability[ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller])) ueot )! +text=Vigilance -- Whenever an opponent casts a spell, if no mana was spent to cast it, counter that spell. -- Sacrifice Boromir, Warden of the Tower: Creatures you control gain indestructible until end of turn. The Ring tempts you. +mana={2}{W} +type=Legendary Creature +subtype=Human Soldier +power=3 +toughness=3 +[/card] +[card] name=Boros Challenger abilities=mentor auto=_ATTACKING_name(Choose attacking creature) transforms((,newability[target(other creature[attacking;power<=pminus1minusend]|myBattlefield) counter(1/1)])) oneshot @@ -12866,6 +12888,14 @@ mana={2}{B} type=Sorcery [/card] [card] +name=Call of the Ring +auto=@each my upkeep:name(The ring tempts you) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +auto=@bearerchosen(creature|mybattlefield):name(Pay 2 life and draw) pay({L:2}) name(Pay 2 life and draw) draw:1 controller +text=At the beginning of your upkeep, the Ring tempts you. -- Whenever you choose a creature as your Ring-bearer, you may pay 2 life. If you do, draw a card. +mana={1}{B} +type=Enchantment +[/card] +[card] name=Call the Cavalry auto=create(Knight:creature Knight:2/2:white:vigilance)*2 text=Create two 2/2 white Knight creature tokens with vigilance. @@ -13662,6 +13692,14 @@ mana={4}{U}{U}{U} type=Enchantment [/card] [card] +name=Cast into the Fire +auto=if type(creature|battlefield)~morethan~0 then choice name(Deal 1 damage) name(Deal 1 damage) target(creature|battlefield) damage:1 +auto=if type(artifact|battlefield)~morethan~0 then choice name(Exle artifact) name(Exle artifact) target(artifact|battlefield) moveto(exile) +text=Choose one -- Cast into the Fire deals 1 damage to each of up to two target creatures. -- Exile target artifact. +mana={1}{R} +type=Instant +[/card] +[card] name=Castaway's Despair target=creature auto=tap @@ -15966,6 +16004,16 @@ mana={3}{G} type=Sorcery [/card] [card] +name=Cirith Ungol Patrol +auto={1}{T}{S(other creature|mybattlefield)}:name(Draw and create food) token(Food) and!( draw:1 controller )! +text={1}, {T}, Sacrifice another creature: Draw a card, then create a Food token. (It's an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.") +mana={4}{B} +type=Creature +subtype=Orc Soldier +power=4 +toughness=5 +[/card] +[card] name=Citadel Gate auto=tap(noevent) auto={T}:Add{W} @@ -16117,6 +16165,15 @@ mana={R} type=Sorcery [/card] [card] +name=Claim the Precious +target=creature +auto=destroy +auto=ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +text=Destroy target creature. The Ring tempts you. +mana={1}{B}{B} +type=Sorcery +[/card] +[card] name=Clam-I-Am auto=@dierolled(*|battlefield) result(3) from(controller):all(this) rolld6 6 winability donothing winabilityend loseability donothing loseabilityend rolld6end text=Whenever you roll a 3 on a six-sided die, you may reroll that die. @@ -25207,6 +25264,15 @@ type=Enchantment subtype=Aura [/card] [card] +name=Dreadful as the Storm +target=creature +auto=transforms((,setpower=5,settoughness=5)) ueot +auto=ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +text=Target creature has base power and toughness 5/5 until end of turn. The Ring tempts you. +mana={2}{U} +type=Instant +[/card] +[card] name=Dreadhorde Arcanist abilities=trample auto=_ATTACKING_may target(*[instant;sorcery;manacost<=power]|mygraveyard) activate castcard(normal) and!(transforms((,newability[gainedexiledeath])) forever)! @@ -26079,6 +26145,17 @@ mana={3} type=Artifact [/card] [card] +name=Dunland Crebain +abilities=flying +auto=_AMASSORC2_ +text=Flying -- When Dunland Crebain enters the battlefield, amass Orcs 2. (Put two +1/+1 counters on an Army you control. It's also an Orc. If you don't control an Army, create a 0/0 black Orc Army creature token first.) +mana={2}{B} +type=Creature +subtype=Bird Horror +power=1 +toughness=1 +[/card] +[card] name=Duplicant auto=if type(creature[-token]|battlefield)~morethan~0 then may name(Exile non-token creature) name(Exile non-token creature) imprint target(creature[-token]) && all(this) transforms((,newability[evictpw/evictth cdaactive])) forever auto=this(variable{hasevict}>=1) transforms((evicttypes)) @@ -26523,6 +26600,16 @@ power=2 toughness=2 [/card] [card] +name=Easterling Vanguard +auto=_DIES_ _AMASSORC1_ +text=When Easterling Vanguard dies, amass Orcs 1. (Put a +1/+1 counter on an Army you control. It's also an Orc. If you don't control an Army, create a 0/0 black Orc Army creature token first.) +mana={1}{B} +type=Creature +subtype=Human Warrior +power=2 +toughness=1 +[/card] +[card] name=Easy Prey abilities=cycling target=creature[manacost<=2] @@ -28440,6 +28527,16 @@ power=4 toughness=3 [/card] [card] +name=Erebor Flamesmith +auto=@movedTo(*[instant;sorcery]|mystack):name(Deal damage) damage:1 opponent +text=Whenever you cast an instant or sorcery spell, Erebor Flamesmith deals 1 damage to each opponent. +mana={1}{R} +type=Creature +subtype=Dwarf Artificer +power=2 +toughness=1 +[/card] +[card] name=Erebos's Intervention target=creature,graveyard auto=choice name(Target creature gets -X/-X) -X/-X @@ -31041,6 +31138,17 @@ type=Legendary Enchantment subtype=Background [/card] [card] +name=Faramir, Field Commander +auto=@each my endofturn restriction{myhasdeadcreature}:name(Draw a card) name(Draw a card) draw:1 controller +auto=@bearerchosen(other creature|mybattlefield):name(Create a soldier) token(Human Soldier,Creature Human Soldier,1/1,white) +text=At the beginning of your end step, if a creature died under your control this turn, draw a card. -- Whenever the Ring tempts you, if you chose a creature other than Faramir, Field Commander as your Ring-bearer, create a 1/1 white Human Soldier creature token. +mana={3}{W} +type=Legendary Creature +subtype=Human Soldier +power=3 +toughness=3 +[/card] +[card] name=Farewell auto=ability$!name(Exile all graveyards) may name(Exile all graveyards) moveto(exile) all(*|graveyard)!$ controller auto=ability$!name(Exile all enchantments) may name(Exile all enchantments) moveto(exile) all(enchantment)!$ controller @@ -32439,6 +32547,15 @@ mana={3}{W}{W} type=Instant [/card] [card] +name=Fire of Orthanc +target=*[artifact;land]|battlefield +auto=destroy +auto=all(creature[-flying]|battlefield) transforms((,newability[cantblock])) ueot +text=Destroy target artifact or land. Creatures without flying can't block this turn. +mana={3}{R} +type=Sorcery +[/card] +[card] name=Fire-Omen Crane abilities=flying auto=_ATTACKING_damage:1 target(creature|opponentBattlefield) @@ -35123,6 +35240,19 @@ power=3 toughness=4 [/card] [card] +name=Gandalf the White +#MISSING: that ability triggers an additional time +abilities=flash +auto=lord(*[legendary]|mycastingzone) asflash +auto=lord(*[artifact]|mycastingzone) asflash +text=Flash -- You may cast legendary spells and artifact spells as though they had flash. -- If a legendary permanent or an artifact entering or leaving the battlefield causes a triggered ability of a permanent you control to trigger, that ability triggers an additional time. +mana={3}{W}{W} +type=Legendary Creature +subtype=Avatar Wizard +power=4 +toughness=5 +[/card] +[card] name=Gandalf, Friend of the Shire abilities=flash auto=lord(sorcery|mycastingzone) asflash @@ -38670,6 +38800,26 @@ power=3 toughness=6 [/card] [card] +name=Gollum's Bite +target=creature +auto=-2/-2 ueot +autograveyard={3}{B}:name(Exile and tempt) moveto(myexile) and!( ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller )! asSorcery +text=Target creature gets -2/-2 until end of turn. -- {3}{B}, Exile Gollum's Bite from your graveyard: The Ring tempts you. Activate only as a sorcery. +mana={B} +type=Instant +[/card] +[card] +name=Gollum, Patient Plotter +auto=@movedto(this|nonbattlezone) from(battlefield):name(The ring tempts you) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +autograveyard={B}{S(creature|myBattlefield)}:name(Return gollum to hand) moveto(ownerhand) asSorcery +text=When Gollum, Patient Plotter leaves the battlefield, the Ring tempts you. -- {B}, Sacrifice a creature: Return Gollum from your graveyard to your hand. Activate only as a sorcery. +mana={1}{B} +type=Legendary Creature +subtype=Halfling Horror +power=3 +toughness=1 +[/card] +[card] name=Golos, Tireless Pilgrim auto=may name(Search land) target(land|myLibrary) moveTo(myBattlefield) and!( transforms((,newability[tap(noevent)],newability[shuffle])) oneshot )! auto={2}{W}{U}{B}{R}{G}:name(Exile top 3 cards) all(*[zpos<=3]|mylibrary) moveto(exile) and!( transforms((,newability[canplayfromexile])) ueot )! @@ -39800,6 +39950,17 @@ power=5 toughness=3 [/card] [card] +name=Grima Wormtongue +abilities=nolifegainopponent +auto={T}:name(Scrifice creature) target(other creature|mybattlefield) sacrifice and!( transforms((,newability[choice name(Opponent loses life) life:-1 opponent],newability[choice name(You lose life) life:-1 controller],newability[if cantargetcard(*[legendary]|*) then name(Amass orc 2) name(Amass orc 2) ability$!name(Amass 1) _AMASSORC2_!$ controller])) forever )! +text=Your opponents can't gain life. -- {T}, Sacrifice another creature: Target player loses 1 life. If the sacrificed creature was legendary, amass Orcs 2. +mana={2}{B} +type=Legendary Creature +subtype=Human Advisor +power=1 +toughness=4 +[/card] +[card] name=Grimclimb Pathway auto={T}:add{B} text={T}: Add {B}. // Brightclimb Pathway @@ -39945,6 +40106,20 @@ power=3 toughness=3 [/card] [card] +name=Grond, the Gatebreaker +abilities=trample +auto=aslongas(army|mybattlefield) becomes(Artifact Creature) +auto={crew(other creature[power>=3]|myBattlefield)}:name(crew 3 [1 creature]) becomes(Artifact Creature) ueot restriction{type(other creature[-tapped;power>=3]|mybattlefield)~morethan~0,compare(crewtotalpower)~morethan~2} +auto={crew(other creature[power>=1]|myBattlefield)}{crew(other creature[power>=2]|myBattlefield)}:name(crew 3 [2 creature]) becomes(Artifact Creature) ueot restriction{type(other creature[-tapped;power>=1]|mybattlefield)~morethan~0,type(other creature[-tapped;power>=2]|mybattlefield)~morethan~0,type(other creature[-tapped;-cantcrew]|mybattlefield)~morethan~1,compare(crewtotalpower)~morethan~2} +auto={crew(other creature[power>=1]|myBattlefield)}{crew(other creature[power>=1]|myBattlefield)}{crew(other creature[power>=1]|myBattlefield)}:name(crew 3 [3 creature]) becomes(Artifact Creature) ueot restriction{type(other creature[-tapped;power>=1]|mybattlefield)~morethan~2,compare(crewtotalpower)~morethan~2} +text=Trample -- As long as it's your turn and you control an Army, Grond, the Gatebreaker is an artifact creature. -- Crew 3 (Tap any number of creatures you control with total power 3 or more: This Vehicle becomes an artifact creature until end of turn.) +mana={3}{B} +type=Legendary Artifact +subtype=Vehicle +power=5 +toughness=5 +[/card] +[card] name=Groom's Finery auto=teach(creature) 2/0 auto=teach(creature) becomes(Groom) @@ -48204,6 +48379,17 @@ power=3 toughness=5 [/card] [card] +name=Isildur's Fateful Strike +target=creature +restriction=type(creature[legendary]|mybattlefield)~morethan~0,type(planeswalker[legendary]|mybattlefield)~equalto~0 +otherrestriction=type(creature[legendary]|mybattlefield)~equalto~0,type(planeswalker[legendary]|mybattlefield)~morethan~0 +other={2}{B}{B} +auto=transforms((,newability[destroy],newability[if compare(phandcount)~morethan~4 then name(Exile cards) name(Exile cards) target(*|myhand) moveto(myexile)])) oneshot +text=(You may cast a legendary instant only if you control a legendary creature or planeswalker.) -- Destroy target creature. If its controller has more than four cards in hand, they exile cards from their hand equal to the difference. +mana={2}{B}{B} +type=Legendary Instant +[/card] +[card] name=Island Sanctuary auto=replacedraw turnlimited ability$!name(Choose one) choice name(Skip draw and become unattackable) lord(creature[-flying;-islandwalk]|opponentBattlefield) cantattack uynt _ choice name(Draw card) draw:1 noreplace controller!$ controller text=If you would draw a card during your draw step, instead you may skip that draw. If you do, until your next turn, you can't be attacked except by creatures with flying and/or islandwalk. @@ -53017,6 +53203,15 @@ mana={B} type=Instant [/card] [card] +name=Lash of the Balrog +target=creature +other={4}{B} name(Pay 4 mana) +auto=destroy +text=As an additional cost to cast this spell, sacrifice a creature or pay {4}. -- Destroy target creature. +mana={B}{S(creature|mybattlefield)} +type=Sorcery +[/card] +[card] name=Last One Standing restriction=type(creature|battlefield)~morethan~0 auto=count(type:creature:mybattlefield) && countb(type:creature:opponentbattlefield) @@ -59435,6 +59630,18 @@ type=Enchantment subtype=Aura [/card] [card] +name=Mirkwood Bats +abilities=flying +auto=@tokencreated(*|myBattlefield):name(Opponent loses life) life:-1 opponent +auto=@sacrificed(*[token]|myBattlefield):name(Opponent loses life) life:-1 opponent +text=Flying -- Whenever you create or sacrifice a token, each opponent loses 1 life. +mana={3}{B} +type=Creature +subtype=Bat +power=2 +toughness=3 +[/card] +[card] name=Mirran Banesplitter abilities=flash auto=name(Attach to creature) rehook target(creature|mybattlefield) @@ -62193,6 +62400,17 @@ power=4 toughness=4 [/card] [card] +name=Nasty End +restriction=type(creature[-legendary]|mybattlefield)~morethan~0 +otherrestriction=type(creature[legendary]|mybattlefield)~morethan~0 +other={1}{B}{S(creature[legendary]|mybattlefield)} name(Sacrifice legendary creature) +auto=ifnot paid(alternative) then name(Draw 2 cards) name(Draw 2 cards) draw:2 controller +auto=if paid(alternative) then name(Draw 2 cards) name(Draw 2 cards) draw:3 controller +text=As an additional cost to cast this spell, sacrifice a creature. -- Draw two cards. If the sacrificed creature was legendary, draw three cards instead. +mana={1}{B}{S(creature[-legendary]|mybattlefield)} +type=Instant +[/card] +[card] name=Natural Reclamation target=enchantment,artifact auto=destroy @@ -63634,6 +63852,16 @@ power=4 toughness=4 [/card] [card] +name=Nimrodel Watcher +auto=@scryed(*|mybattlefield,mystack) turnlimited:name(Gain 1/0 and unblockable) transforms((,newability[1/0],newability[unblockable])) ueot +text=Whenever you scry, Nimrodel Watcher gets +1/+0 until end of turn and can't be blocked this turn. This ability triggers only once each turn. +mana={1}{U} +type=Creature +subtype=Elf Scout +power=2 +toughness=1 +[/card] +[card] name=Nine Lives abilities=opponentshroud auto=@damaged(controller):name(Put incarnation counter) counter(0/0,1,Incarnation) @@ -64055,6 +64283,14 @@ power=1 toughness=2 [/card] [card] +name=Now for Wrath, Now for Ruin! +auto=ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +auto=name(Put 1/1 counter) all(creature|mybattlefield) transforms((,newability[counter(1/1)],newability[vigilance])) ueot +text=Put a +1/+1 counter on each creature you control. They gain vigilance until end of turn. The Ring tempts you. +mana={3}{W} +type=Sorcery +[/card] +[card] name=Noxious Assault auto=all(creature|myBattlefield) transforms((,newability[2/2])) ueot auto=emblem transforms((,newability[@combat(blocking) source(creature|mybattlefield):name(Controller gets poison) alterpoison:1 controller],newability[@combat(blocking) source(creature|opponentbattlefield):name(Controller gets poison) alterpoison:1 opponent])) ueot @@ -65534,6 +65770,20 @@ text=Ondu Skyruins enters the battlefield tapped. -- {T}: Add {W}. // {6}{W}{W} type=Land [/card] [card] +name=One Ring to Rule Them All +auto=counter(0/0,1,Lore) +auto=@each my firstmain:counter(0/0,1,Lore) +auto=transforms((,newability[@bearerchosen(creature|mybattlefield) turnlimited:name(Players mill cards) all(trigger[to]) name(Players mill cards) transforms((,newability[deplete:power opponent],newability[deplete:power controller])) ueot])) ueot +auto=name(The ring tempts you) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.2.Lore}<=2) name(Destroy all nonlegendary creatures) name(Destroy all nonlegendary creatures) all(creature[-legendary]|battlefield) destroy +auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) name(Opponent loses life) name(Opponent loses life) life:-type:creature:opponentgraveyard opponent +auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) sacrifice +text=(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.) -- I - The Ring tempts you, then each player mills cards equal to your Ring-bearer's power. -- II - Destroy all nonlegendary creatures. -- III - Each opponent loses 1 life for each creature card in that player's graveyard. +mana={2}{B}{B} +type=Enchantment +subtype=Saga +[/card] +[card] name=One With the Wind target=creature auto=2/2 @@ -65924,6 +66174,14 @@ mana={5} type=Artifact [/card] [card] +name=Orc Army +color=black +type=Creature +subtype=Orc Army +power=0 +toughness=0 +[/card] +[card] name=Orchard Strider aicode=activate target(land[basic]|mylibrary) moveto(myhand) autohand={1}{G}{cycle}:name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>land[basic]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend @@ -67843,6 +68101,22 @@ mana={2}{B} type=Sorcery [/card] [card] +name=Pelargir Survivor +auto=this(variable{type:*[instant;sorcery]:myrestrictedcastingzone}>0) {T}:name(Add white) name(Add white) add{W} +auto=this(variable{type:*[instant;sorcery]:myrestrictedcastingzone}>0) {T}:name(Add blue) name(Add blue) add{U} +auto=this(variable{type:*[instant;sorcery]:myrestrictedcastingzone}>0) {T}:name(Add black) name(Add black) add{B} +auto=this(variable{type:*[instant;sorcery]:myrestrictedcastingzone}>0) {T}:name(Add red) name(Add red) add{R} +auto=this(variable{type:*[instant;sorcery]:myrestrictedcastingzone}>0) {T}:name(Add green) name(Add green) add{G} +auto={5}{U}{T}:name(Opponent mills 3 cards) deplete:3 opponent +auto={5}{U}{T}:name(You mill 3 cards) deplete:3 controller +text={T}: Add one mana of any color. Spend this mana only to cast an instant or sorcery spell. -- {5}{U}, {T}: Target player mills three cards. (They put the top three cards of their library into their graveyard.) +mana={1}{U} +type=Creature +subtype=Human Peasant +power=1 +toughness=3 +[/card] +[card] name=Pelt Collector auto=@movedto(other creature[power=0]|myBattlefield):this(power<0) counter(1/1) auto=@movedto(other creature[power=0]|myGraveyard) from(mybattlefield):this(power<0) counter(1/1) @@ -73133,6 +73407,17 @@ power=3 toughness=3 [/card] [card] +name=Rangers of Ithilien +abilities=vigilance +auto=may name(Gain control of creature) target(*[creature&power<=pminus1minusend]) steal and!( ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller )! +text=Vigilance -- When Rangers of Ithilien enters the battlefield, gain control of up to one target creature with lesser power for as long as you control Rangers of Ithilien. Then the Ring tempts you. +mana={2}{U}{U} +type=Creature +subtype=Human Ranger +power=3 +toughness=3 +[/card] +[card] name=Ranging Raptors auto=_ENRAGE_may moveto(mybattlefield) target(basic|mylibrary) && tap text=Enrage - Whenever Ranging Raptors is dealt damage, you may search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library. @@ -78708,6 +78993,14 @@ power=2 toughness=2 [/card] [card] +name=Sam's Desperate Rescue +target=creature|mygraveyard +auto=moveTo(myhand) and!( name(The ring tempts you) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller )! +text=Return target creature card from your graveyard to your hand. The Ring tempts you. +mana={B} +type=Sorcery +[/card] +[card] name=Samite Blessing target=creature auto=teach(creature) transforms((,newability[{T}:name(Prevent 1 damage) target(creature) prevent:1])) @@ -78769,6 +79062,17 @@ power=3 toughness=4 [/card] [card] +name=Samwise the Stouthearted +abilities=flash +auto=may name(Return a permanent) target(*[-instant&-sorcery&fresh]|mygraveyard) moveto(myhand) and!( ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller )! +text=Flash -- When Samwise the Stouthearted enters the battlefield, choose up to one target permanent card in your graveyard that was put there from the battlefield this turn. Return it to your hand. Then the Ring tempts you. +mana={1}{W} +type=Legendary Creature +subtype=Halfling Peasant +power=2 +toughness=1 +[/card] +[card] name=Sanctifier en-Vec abilities=protection from black,protection from red auto=all(*[red;black]|graveyard) moveto(exile) @@ -79400,6 +79704,27 @@ power=0 toughness=3 [/card] [card] +name=Saruman the White +auto=_WARD_(2) +auto=@movedto(*|mystack) restriction{thisturn(*|mystack)~equalto~1,type(army|mybattlefield)~morethan~0}:name(Put 1/1 counters) name(Put 1/1 counters) target(army|myBattlefield) transforms((Orc,newability[counter(1/1.2)])) forever +auto=@movedto(*|mystack) restriction{thisturn(*|mystack)~equalto~1,type(army|mybattlefield)~equalto~0}:name(Create Orc Army) token(Orc Army) and!( name(Put 1/1 counters) counter(1/1.2) target(army|myBattlefield) )! +text=Ward {2} -- Whenever you cast your second spell each turn, amass Orcs 2. (Put two +1/+1 counters on an Army you control. It's also an Orc. If you don't control an Army, create a 0/0 black Orc Army creature token first.) +mana={4}{U} +type=Legendary Creature +subtype=Avatar Wizard +power=4 +toughness=4 +[/card] +[card] +name=Saruman's Trickery +target=*|stack +auto=fizzle +auto=_AMASSORC1_ +text=Counter target spell. -- Amass Orcs 1. (Put a +1/+1 counter on an Army you control. It's also an Orc. If you don't control an Army, create a 0/0 black Orc Army creature token first.) +mana={1}{U}{U} +type=Instant +[/card] +[card] name=Saryth, the Viper's Fang auto=lord(other creature[tapped]|myBattlefield) deathtouch auto=lord(other creature[-tapped]|myBattlefield) opponentshroud @@ -79495,6 +79820,19 @@ power=2 toughness=2 [/card] [card] +name=Sauron, Lord of the Rings +abilities=trample +auto=_AMASSORC5_ +auto=deplete:5 controller && ability$!name(Return a creature) name(Return a creature) target(creature|mygraveyard) moveto(mybattlefield)!$ controller +auto=@movedto(*[iscommander]|graveyard) from(opponentbattlefield):name(The ring tempts you) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +text=When you cast this spell, amass Orcs 5, mill five cards, then return a creature card from your graveyard to the battlefield. -- Trample -- Whenever a commander an opponent controls dies, the Ring tempts you. +mana={5}{U}{B}{R} +type=Legendary Creature +subtype=Avatar Horror +power=9 +toughness=9 +[/card] +[card] name=Savaen Elves auto={G}{G}{T}:destroy target(aura) text={G}{G}, {T}: Destroy target Aura attached to a land. @@ -82603,6 +82941,15 @@ mana={U} type=Instant [/card] [card] +name=Shelob's Ambush +target=creature +auto=name(Create food) token(Food) +auto=transforms((,newability[1/2],newability[deathtouch])) ueot +text=Target creature gets +1/+2 and gains deathtouch until end of turn. Create a Food token. (It's an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.") +mana={B} +type=Instant +[/card] +[card] name=Sheltered Thicket abilities=cycling auto=tap @@ -85638,6 +85985,15 @@ power=8 toughness=8 [/card] [card] +name=Slip On the Ring +target=creature|myBattlefield +autostack=ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +auto=name(Exile creature) moveto(myexile) and!( moveto(mybattlefield) )! +text=Exile target creature you own, then return it to the battlefield under your control. The Ring tempts you. +mana={1}{W} +type=Instant +[/card] +[card] name=Slip Out the Back target=creature auto=counter(1/1) @@ -86066,6 +86422,17 @@ power=1 toughness=3 [/card] [card] +name=Snarling Warg +abilities=menace +auto=aslongas(*[orc;goblin]|myBattlefield) 1/0 +text=Menace (This creature can't be blocked except by two or more creatures.) -- As long as you control a Goblin or Orc, Snarling Warg gets +1/+0. +mana={3}{B} +type=Creature +subtype=Wolf +power=3 +toughness=4 +[/card] +[card] name=Snarling Wolf auto={1}{G}:name(Gets 2/2) 2/2 ueot limit:1 text={1}{G}: Snarling Wolf gets +2/+2 until end of turn. Activate only once each turn. @@ -86575,6 +86942,14 @@ power=2 toughness=2 [/card] [card] +name=Soothing of Smeagol +target=creature[-token]|battlefield +auto=moveTo(ownerHand) and!( ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller )! +text=Return target nontoken creature to its owner's hand. The Ring tempts you. +mana={1}{U} +type=Instant +[/card] +[card] name=Soothsayer Adept auto={1}{U}{T}:_LOOT_ text=1{U}, {T}: Draw a card, then discard a card. @@ -88985,6 +89360,17 @@ power=3 toughness=2 [/card] [card] +name=Stalwarts of Osgiliath +auto=_RINGTEMPTS_ +auto=_SECOND_DRAW_ name(Put 1/1 counter) counter(1/1) +text=When Stalwarts of Osgiliath enters the battlefield, the Ring tempts you. -- Whenever you draw your second card each turn, put a +1/+1 counter on Stalwarts of Osgiliath. +mana={4}{W} +type=Creature +subtype=Human Soldier +power=4 +toughness=3 +[/card] +[card] name=Stampede Rider abilities=trample auto=@each combatbegins:if type(creature[power>=4]|mybattlefield)~morethan~0 then 1/1 ueot @@ -89498,6 +89884,15 @@ mana={2}{U} type=Instant [/card] [card] +name=Stern Scolding +target=creature|stack +auto=if cantargetcard(*[power<=2]|*) then fizzle +auto=if cantargetcard(*[toughness<=2]|*) then fizzle +text=Counter target creature spell with power or toughness 2 or less. +mana={U} +type=Instant +[/card] +[card] name=Steward of Solidarity auto=@exerted(this):token(Warrior,creature Warrior,1/1,white,vigilance) auto={T}:exert @@ -90007,6 +90402,15 @@ mana={R} type=Instant [/card] [card] +name=Storm of Saruman +auto=_WARD_(3) +auto=@movedto(*[-instant;-sorcery]|mystack) restriction{thisturn(*|mystack)~equalto~1}:name(Copy spell) name(Copy spell) all(trigger[to]) name(Copy spell) transforms((,newability[clone options(nolegend)])) oneshot +auto=@movedto(*[instant;sorcery]|mystack) restriction{thisturn(*|mystack)~equalto~1}:name(Copy spell) name(Copy spell) all(trigger[to]) name(Copy spell) transforms((,newability[activate castcard(copied)])) oneshot +text=Ward {3} -- Whenever you cast your second spell each turn, copy it, except the copy isn't legendary. You may choose new targets for the copy. (A copy of a permanent spell becomes a token.) +mana={4}{U}{U} +type=Enchantment +[/card] +[card] name=Storm of Souls abilities=exiledeath auto=all(creature|mygraveyard) moveto(mybattlefield) and!( transforms((Spirit,setpower=1,settoughness=1)) forever )! @@ -94368,6 +94772,14 @@ type=Enchantment subtype=Saga [/card] [card] +name=The Black Breath +auto=all(creature|opponentBattlefield) transforms((,newability[-1/-1])) ueot +auto=ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +text=Creatures your opponents control get -1/-1 until end of turn. The Ring tempts you. +mana={2}{B} +type=Sorcery +[/card] +[card] name=The Blackstaff of Waterdeep abilities=doesnotuntap auto=@each my untap:if cantargetcard(*[tapped]|mybattlefield) then may name(Untap Blackstaff of Waterdeep) name(Untap Blackstaff of Waterdeep) untap @@ -95099,7 +95511,7 @@ auto=@combat(attacking) source(mytgt) restriction{compare(pringtemptations)~more auto=@combat(blocked) source(mytgt) from(creature) restriction{compare(pringtemptations)~morethan~2}:name(Creature will be sacrificed) name(Creature will be sacrificed) all(trigger[from]) name(Creature will be sacrificed) transforms((,newability[phaseaction[combatends once sourceinplay] sacrifice])) forever auto=@combatdamaged(player) from(mytgt) restriction{compare(pringtemptations)~morethan~3}:name(Opponent loses life) name(Opponent loses life) life:-3 opponent auto={9999}:equip -text=Your Ring-bearer is legendary and canâ??t be blocked by creatures with greater power. -- Whenever your Ring-bearer attacks, draw a card, then discard a card. -- Whenever your Ring-bearer becomes blocked by a creature, that creatureâ??s controller sacrifices it at end of combat. -- Whenever your Ring-bearer deals combat damage to a player, each opponent loses 3 life. +text=Your Ring-bearer is legendary and can't be blocked by creatures with greater power. -- Whenever your Ring-bearer attacks, draw a card, then discard a card. -- Whenever your Ring-bearer becomes blocked by a creature, that creature's controller sacrifices it at end of combat. -- Whenever your Ring-bearer deals combat damage to a player, each opponent loses 3 life. type=Emblem [/card] [card] @@ -97248,6 +97660,16 @@ power=2 toughness=3 [/card] [card] +name=Took Reaper +auto=_DIES_ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +text=When Took Reaper dies, the Ring tempts you. +mana={1}{W} +type=Creature +subtype=Halfling Peasant +power=2 +toughness=1 +[/card] +[card] name=Toothy, Imaginary Friend abilities=partner partner=Pir, Imaginative Rascal @@ -98441,6 +98863,17 @@ mana={3}{W} type=Instant [/card] [card] +name=Troll of Khazad-dum +abilities=threeblockers +autohand={1}{cycle}:name(Search swamp) target(swamp|myLibrary) moveTo(myHand) and!( shuffle )! +text=Troll of Khazad-dum can't be blocked except by three or more creatures. -- Swampcycling {1} ({1}, Discard this card: Search your library for a Swamp card, reveal it, put it into your hand, then shuffle.) +mana={5}{B} +type=Creature +subtype=Troll +power=6 +toughness=5 +[/card] +[card] name=Trollbred Guardian auto={2}{G}:_ADAPT_(2) auto=lord(creature[counter{1/1}]|myBattlefield) trample @@ -100443,6 +100876,16 @@ power=2 toughness=2 [/card] [card] +name=Uruk-hai Berserker +auto=name(The ring tempts you) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +text=When Uruk-hai Berserker enters the battlefield, the Ring tempts you. +mana={2}{B} +type=Creature +subtype=Orc Berserker +power=3 +toughness=2 +[/card] +[card] name=Urza's Armor auto=@damaged(controller):life:1 controller text=If a source would deal damage to you, prevent 1 of that damage. @@ -104000,6 +104443,20 @@ power=1 toughness=3 [/card] [card] +name=War of the Last Alliance +auto=counter(0/0,1,Lore) +auto=@each my firstmain:counter(0/0,1,Lore) +auto=name(Search legendary creature) target(creature[legendary]|mylibrary) moveto(myhand) and!( shuffle )! +auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.2.Lore}<=2) name(Search legendary creature) name(Search legendary creature) target(creature[legendary]|mylibrary) moveto(myhand) and!( shuffle )! +auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) name(Creatures gain double strike) name(Creatures gain double strike) all(other creature|myBattlefield) transforms((,newability[double strike])) ueot +auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) name(The ring tempts you) name(The ring tempts you) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) sacrifice +text=(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.) -- I, II - Search your library for a legendary creature card, reveal it, put it into your hand, then shuffle. -- III - Creatures you control gain double strike until end of turn. The Ring tempts you. +mana={3}{W} +type=Enchantment +subtype=Saga +[/card] +[card] name=War of the Spark auto=counter(0/0,1,Lore) auto=@each my firstmain:counter(0/0,1,Lore) @@ -105371,6 +105828,17 @@ power=1 toughness=1 [/card] [card] +name=Willow-Wind +abilities=flying +auto=_SCRY2_ +text=Flying -- When Willow-Wind enters the battlefield, scry 2. +mana={4}{U} +type=Creature +subtype=Elemental +power=3 +toughness=4 +[/card] +[card] name=Willowdusk, Essence Seer auto={1}{T}:if compare(lifegain)~morethan~compare(lifelost) then target(other creature|battlefield) counter(1/1.lifegain) else counter(1/1.lifelost) assorcery text={1}, {T}: Choose another target creature. Put a number of +1/+1 counters on it equal to the amount of life you gained this turn or the amount of life you lost this turn, whichever is greater. Activate only as a sorcery. diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index 3096bc6c2..69ef14802 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -5779,6 +5779,7 @@ class ASeizeWrapper: public InstantAbility { public: ASeize * ability; + MTGAbility * andAbility; ASeizeWrapper(GameObserver* observer, int _id, MTGCardInstance * card, MTGCardInstance * _target); int resolve(); const string getMenuText(); diff --git a/projects/mtg/src/AllAbilities.cpp b/projects/mtg/src/AllAbilities.cpp index 4aa3d1ba5..77d51b2b5 100644 --- a/projects/mtg/src/AllAbilities.cpp +++ b/projects/mtg/src/AllAbilities.cpp @@ -9200,6 +9200,7 @@ ASeizeWrapper::ASeizeWrapper(GameObserver* observer, int _id, MTGCardInstance * InstantAbility(observer, _id, source, _target) { ability = NEW ASeize(observer, _id,card,_target); + andAbility = NULL; } int ASeizeWrapper::resolve() @@ -9207,6 +9208,20 @@ int ASeizeWrapper::resolve() ASeize * a = ability->clone(); a->target = target; a->addToGame(); + if(andAbility) + { + MTGAbility * andAbilityClone = andAbility->clone(); + andAbilityClone->target = target; + if(andAbility->oneShot) + { + andAbilityClone->resolve(); + SAFE_DELETE(andAbilityClone); + } + else + { + andAbilityClone->addToGame(); + } + } return 1; } @@ -9220,12 +9235,15 @@ ASeizeWrapper * ASeizeWrapper::clone() const ASeizeWrapper * a = NEW ASeizeWrapper(*this); a->ability = this->ability->clone(); a->oneShot = 1; + if(andAbility) + a->andAbility = andAbility->clone(); return a; } ASeizeWrapper::~ASeizeWrapper() { SAFE_DELETE(ability); + SAFE_DELETE(andAbility); } //AShackle diff --git a/projects/mtg/src/CardGui.cpp b/projects/mtg/src/CardGui.cpp index 2010745c7..3ed1251c6 100644 --- a/projects/mtg/src/CardGui.cpp +++ b/projects/mtg/src/CardGui.cpp @@ -1887,9 +1887,11 @@ void CardGui::RenderCountersBig(MTGCard * mtgcard, const Pos& pos, int drawMode) if (!card) return; - if (!card->counters) + int ringTemptations = card->controller()->ringTemptations; + + if (!card->counters && !ringTemptations) return; - if (!card->counters->mCount) + if (!card->counters->mCount && !ringTemptations) return; // Write Named Counters @@ -1904,6 +1906,73 @@ void CardGui::RenderCountersBig(MTGCard * mtgcard, const Pos& pos, int drawMode) i = txt.size() + 1; } + if (ringTemptations > 0 && card->name == "The Ring") // Added a label on Ring to show the number of temptations. + { + char buf[512]; + bool renderText = true; + string gfx = ""; + if (counterGraphics.find("temptations") == counterGraphics.end()) + { + string gfxRelativeName = "counters/"; + gfxRelativeName.append("temptations"); + gfxRelativeName.append(".png"); + string _gfx = WResourceManager::Instance()->graphicsFile(gfxRelativeName); + if (!fileExists(_gfx.c_str())) + _gfx = ""; + counterGraphics["temptations"] = _gfx; + } + gfx = counterGraphics["temptations"]; + if (gfx.size()) + renderText = false; + + if (renderText) + { + std::string s = "temptations"; + s[0] = toupper(s[0]); + sprintf(buf, _("%s: %i").c_str(), s.c_str(), ringTemptations); + } + + if (!gfx.size()) + { + gfx = "counters/default.png"; + } + + float x = pos.actX + (22 - BigWidth / 2) * pos.actZ; + float y = pos.actY + (-BigHeight / 2 + 80 + 11 * i + 21 * 0) * pos.actZ; + if (y > pos.actY + 105) + { + y = (-BigHeight / 2 + 80 + 11 * i) * pos.actZ + (y - 105 - 21); + x += (BigWidth / 2) * pos.actZ; + } + + if (gfx.size()) + { + JQuadPtr q = WResourceManager::Instance()->RetrieveTempQuad(gfx); + + if (q.get() && q->mTex) + { + float scale = 20.f / q->mHeight; + if (renderText) + { + float scaleX = (font->GetStringWidth(buf) + 20) / q->mWidth; + JRenderer::GetInstance()->RenderQuad(q.get(), x, y, 0, scaleX, scale); + } + else + { + JRenderer::GetInstance()->RenderQuad(q.get(), x + (scale * q->mWidth * 0), y, 0, scale, scale); + } + } + } + + if (renderText) + { + font->SetColor(ARGB(255,0,0,0)); + font->DrawString(buf, x + 5, y + 5); + } + + return; // No need to check counters on The Ring. + } + for (size_t t = 0; t < card->counters->counters.size(); t++) { Counter * c = card->counters->counters[t]; diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index d369d12cc..d23227d46 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -521,25 +521,25 @@ int AbilityFactory::parseCastRestrictions(MTGCardInstance * card, Player * playe if(check != string::npos) { bool hasdeadtype = false; - string checktype = restriction[i].substr(7); - for(int cp = 0;cp < 2;cp++) + string checktype = ""; + Player * checkCurrent = NULL; + if(restriction[i].find("oppo") != string::npos){ + checktype = restriction[i].substr(11); + checkCurrent = card->controller()->opponent(); + } else { + checktype = restriction[i].substr(9); + checkCurrent = card->controller(); + } + MTGGameZone * grave = checkCurrent->game->graveyard; + for(unsigned int gy = 0; gy < grave->cardsSeenThisTurn.size(); gy++) { - Player * checkCurrent = observer->players[cp]; - MTGGameZone * grave = checkCurrent->game->graveyard; - for(unsigned int gy = 0;gy < grave->cardsSeenThisTurn.size();gy++) + MTGCardInstance * checkCard = grave->cardsSeenThisTurn[gy]; + if(checkCard->hasType(checktype) && + ((checkCard->previousZone == checkCurrent->game->battlefield))) //died from battlefield { - MTGCardInstance * checkCard = grave->cardsSeenThisTurn[gy]; - if(checkCard->hasType(checktype) && - ((checkCard->previousZone == checkCurrent->game->battlefield)|| - (checkCard->previousZone == checkCurrent->opponent()->game->battlefield))//died from battlefield - ) - { - hasdeadtype = true; - break; - } - } - if(hasdeadtype) + hasdeadtype = true; break; + } } if(!hasdeadtype) return 0; @@ -5665,6 +5665,12 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG { MTGAbility * a = NEW ASeizeWrapper(observer, id, card, target); a->oneShot = 1; + if(storedAndAbility.size()) + { + string stored = storedAndAbility; + storedAndAbility.clear(); + ((ASeizeWrapper*)a)->andAbility = parseMagicLine(stored, id, spell, card); + } return a; }