From e47256eae7bad9fb5188508a6028463c15eceb20 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Wed, 1 Mar 2017 10:35:47 +0800 Subject: [PATCH] update cant attack rule If it says cant attack or cant attack You or PlanesWalker, creatures cant attack a player or planeswalker, If it says cant attack You, creatures cant attack a player only but can attack a PlanesWalker --- projects/mtg/bin/Res/sets/primitives/mtg.txt | 202 +++++++++++++------ projects/mtg/src/MTGCardInstance.cpp | 2 - projects/mtg/src/MTGGameZones.cpp | 2 + 3 files changed, 138 insertions(+), 68 deletions(-) diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index 7e0628ea7..9d0b85ec2 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -2402,6 +2402,7 @@ type=Sorcery [card] name=Akron Legionnaire auto=lord(creature[-artifact;-Akron Legionnaire]|myBattlefield) cantattack +auto=lord(creature[-artifact;-Akron Legionnaire]|myBattlefield) cantpwattack text=Except for creatures named Akron Legionnaire and artifact creatures, creatures you control can't attack. mana={6}{W}{W} type=Creature @@ -2613,7 +2614,7 @@ type=Land [card] name=Alchemist's Vial auto=choice draw:1 controller -auto={1}{T}{S}:target(creature) transforms((,newability[cantattack ueot],newability[cantblock ueot])) ueot +auto={1}{T}{S}:name(cant attack or block) target(creature) transforms((,cantattack,cantpwattack,cantblock)) ueot text=When Alchemist's Vial enters the battlefield, draw a card. -- 1, Tap, Sacrifice Alchemist's Vial: Target creature can't attack or block this turn. mana={2} type=Artifact @@ -3872,7 +3873,7 @@ type=Enchantment [card] name=Angelic Arbiter abilities=flying -auto=@movedTo(*|opponentstack):lord(creature|opponentBattlefield) cantattack +auto=this(variable{ostormcount}>0) transforms((,newability[lord(creature|opponentBattlefield) cantattack],newability[lord(creature|opponentBattlefield) cantpwattack])) auto=@combat(attacking) source(creature|opponentBattlefield):maxCast(*)0 opponent ueot text=Flying -- Each opponent who cast a spell this turn can't attack with creatures. -- Each opponent who attacked with creatures this turn can't cast spells. mana={5}{W}{W} @@ -5423,7 +5424,7 @@ toughness=4 [/card] [card] name=Archon of the Triumvirate -auto=@combat(attacking) source(this):name(detain) target(*[-land]|opponentBattlefield) transforms((Detained,newability[cantattack],newability[cantblock],newability[noactivatedability])) uynt +auto=@combat(attacking) source(this):name(detain) target(*[-land]|opponentBattlefield) transforms((Detained,cantattack,cantpwattack,cantblock,noactivatedability)) uynt abilities=flying text=Flying -- Whenever Archon of the Triumvirate attacks, detain up to two target nonland permanents your opponents control. (Until your next turn, those permanents can't attack or block and their activated abilities can't be activated.) mana={5}{W}{U} @@ -5941,6 +5942,7 @@ toughness=5 [card] name=Armored Galleon auto=aslongas(island|opponentBattlefield) cantattack <1 +auto=aslongas(island|opponentBattlefield) cantpwattack <1 text=Armored Galleon can't attack unless defending player controls an Island. mana={4}{U} type=Creature @@ -6107,6 +6109,7 @@ type=Enchantment name=Arrest target=creature auto=cantattack +auto=cantpwattack auto=cantblock auto=noactivatedability text=Enchant creature -- Enchanted creature can't attack or block, and its activated abilities can't be activated. @@ -8156,7 +8159,7 @@ toughness=1 [/card] [card] name=Azorius Arrester -auto=name(detain) target(creature|opponentBattlefield) transforms((Detained,newability[cantattack],newability[cantblock],newability[noactivatedability])) uynt +auto=name(detain) target(creature|opponentBattlefield) transforms((Detained,cantattack,cantpwattack,cantblock,noactivatedability)) uynt text=When Azorius Arrester enters the battlefield, detain target creature an opponent controls. (Until your next turn, that creature can't attack or block and its activated abilities can't be activated.) mana={1}{W} type=Creature @@ -8224,7 +8227,7 @@ toughness=1 [/card] [card] name=Azorius Justiciar -auto=name(detain) target(creature|opponentBattlefield) transforms((Detained,newability[cantattack],newability[cantblock],newability[noactivatedability])) uynt +auto=name(detain) target(creature|opponentBattlefield) transforms((Detained,cantattack,cantpwattack,cantblock,noactivatedability)) uynt text=When Azorius Justiciar enters the battlefield, detain up to two target creatures your opponents control. (Until your next turn, those creatures can't attack or block and their activated abilities can't be activated.) mana={2}{W}{W} type=Creature @@ -11818,6 +11821,7 @@ type=Instant [card] name=Blind-Spot Giant auto=aslongas(other giant|myBattlefield) cantattack <1 +auto=aslongas(other giant|myBattlefield) cantpwattack <1 auto=aslongas(other giant|myBattlefield) cantblock <1 text=Blind-Spot Giant can't attack or block unless you control another Giant. mana={2}{R} @@ -12343,6 +12347,7 @@ toughness=2 [card] name=Bloodcrazed Goblin auto=this(variable{odnoncount}<1) cantattack +auto=this(variable{odnoncount}<1) cantpwattack text=Bloodcrazed Goblin can't attack unless an opponent was dealt noncombat damage this turn. mana={R} type=Creature @@ -13540,6 +13545,7 @@ name=Bonds of Faith target=creature auto=teach(creature[human]) 2/2 auto=teach(creature[-human]) cantattack +auto=teach(creature[-human]) cantpwattack auto=teach(creature[-human]) cantblock text=Enchant creature -- Enchanted creature gets +2/+2 as long as it's a Human. Otherwise, it can't attack or block. mana={1}{W} @@ -14138,6 +14144,7 @@ toughness=2 name=Bound by Moonsilver target=creature auto=cantattack +auto=cantpwattack auto=cantblock auto=canttransform auto={S(other *|mybattlefield)}:rehook target(creature) assorcery limit:1 @@ -14150,6 +14157,7 @@ subtype=Aura name=Bound in Silence target=creature auto=cantattack +auto=cantpwattack auto=cantblock text=Enchant creature -- Enchanted creature can't attack or block. mana={2}{W} @@ -14393,8 +14401,7 @@ type=Instant [card] name=Brainwash target=creature -auto=teach(creature) cantattack -auto=teach(creature) {3}:canattack +auto=teach(creature) transforms((,newability[attackcost:3])) text=Enchant creature -- Enchanted creature can't attack unless its controller pays {3}. mana={W} type=Enchantment @@ -14475,6 +14482,7 @@ subtype=Aura [card] name=Branded Brawlers auto=aslongas(land[-tapped]|opponentBattlefield) cantattack +auto=aslongas(land[-tapped]|opponentBattlefield) cantpwattack auto=aslongas(land[-tapped]|myBattlefield) cantblock text=Branded Brawlers can't attack if defending player controls an untapped land. -- Branded Brawlers can't block if you control an untapped land. mana={R} @@ -14894,7 +14902,7 @@ toughness=3 [card] name=Briber's Purse auto=counter(0/0,X,gem) -auto={1}{T}{C(0/0,-1,gem)}:target(creature) transforms((,newability[cantattack ueot],newability[cantblock ueot])) ueot +auto={1}{T}{C(0/0,-1,gem)}:name(cant attack or block) target(creature) transforms((,cantattack,cantpwattack,cantblock)) ueot text=Briber's Purse enters the battlefield with X gem counters on it. -- 1, Tap, Remove a gem counter from Briber's Purse: Target creature can't attack or block this turn. mana={X} type=Artifact @@ -16262,6 +16270,7 @@ toughness=2 name=Cage of Hands target=creature auto=cantattack +auto=cantpwattack auto=cantblock auto={1}{W}:moveTo(ownerhand) text=Enchant creature -- Enchanted creature can't attack or block. -- {1}{W}: Return Cage of Hands to its owner's hand. @@ -16274,6 +16283,7 @@ name=Cagemail target=creature auto=2/2 auto=cantattack +auto=cantpwattack text=Enchant creature -- Enchanted creature gets +2/+2 and can't attack. mana={1}{W} type=Enchantment @@ -17609,6 +17619,7 @@ toughness=3 name=Caught in the Brights target=creature auto=teach(creature) cantattack +auto=teach(creature) cantpwattack auto=teach(creature) cantblock auto=teach(creature|mybattlefield) transforms((,newability[@combat(attacking) source(artifact[vehicle]|myBattlefield):all(this) moveto(exile)])) auto=teach(creature|opponentbattlefield) transforms((,newability[@combat(attacking) source(artifact[vehicle]|opponentBattlefield):all(this) moveto(exile)])) @@ -18388,6 +18399,7 @@ name=Cessation target=creature autograveyard=@movedTo(this|graveyard) from(battlefield):moveTo(ownerhand) auto=cantattack +auto=cantpwattack text=Enchant creature -- Enchanted creature can't attack. -- When Cessation is put into a graveyard from the battlefield, return Cessation to its owner's hand. mana={2}{W} type=Enchantment @@ -18455,6 +18467,7 @@ toughness=3 name=Chained Throatseeker abilities=infect auto=this(variable{opponentpoisoncount} <1) cantattack +auto=this(variable{opponentpoisoncount} <1) cantpwattack text=Infect (This creature deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.) Chained Throatseeker can't attack unless defending player is poisoned. mana={5}{U} type=Creature @@ -18819,6 +18832,7 @@ toughness=3 name=Change of Heart target=creature auto=cantattack +auto=cantpwattack buyback={W}{3} text=Buyback {3} (You may pay an additional {3} as you cast this spell. If you do, put this card into your hand as it resolves.) -- Target creature can't attack this turn. mana={W} @@ -19533,6 +19547,7 @@ type=Instant name=Choking Restraints target=creature auto=cantattack +auto=cantpwattack auto=cantblock auto={3}{w}{w}{s}:sacrifice all(mytgt) text=Enchant creature -- Enchanted creature can't attack or block. -- {3}{W}{W}, Sacrifice Choking Restraints: Exile enchanted creature. @@ -24615,6 +24630,7 @@ toughness=2 name=Crystallization target=creature auto=cantattack +auto=cantpwattack auto=cantblock auto=@targeted(mytgt):all(trigger[to]) moveTo(exile) text=Enchant creature -- Enchanted creature can't attack or block. -- When enchanted creature becomes the target of a spell or ability, exile that creature. @@ -27670,6 +27686,7 @@ toughness=6 [card] name=Deep-Sea Serpent auto=aslongas(island|opponentBattlefield) cantattack <1 +auto=aslongas(island|opponentBattlefield) cantpwattack <1 text=Deep-Sea Serpent can't attack unless defending player controls an Island. mana={4}{U}{U} type=Creature @@ -27680,6 +27697,7 @@ toughness=5 [card] name=Deep-Sea Terror auto=aslongas(*|mygraveyard) cantattack <7 +auto=aslongas(*|mygraveyard) cantpwattack <7 text=Deep-Sea Terror can't attack unless there are seven or more cards in your graveyard. mana={4}{U}{U} type=Creature @@ -28294,6 +28312,7 @@ toughness=3 name=Demonic Torment target=creature auto=cantattack +auto=cantpwattack auto=teach(creature) preventAllCombatDamage from(this) text=Enchant creature -- Enchanted creature can't attack. -- Prevent all combat damage that would be dealt by enchanted creature. mana={2}{B} @@ -31868,6 +31887,7 @@ type=Artifact [card] name=Dreamwinder auto=aslongas(island|opponentBattlefield) cantattack <1 +auto=aslongas(island|opponentBattlefield) cantpwattack <1 auto={U}{S(island|myBattlefield)}:ueot name(land becomes an island) loseabilities && losesubtypesof(land) && transforms((island)) target(land) text=Dreamwinder can't attack unless defending player controls an Island. -- {U}, Sacrifice an Island: Target land becomes an Island until end of turn. mana={3}{U} @@ -32237,23 +32257,7 @@ toughness=7 [/card] [card] name=Droning Bureaucrats -auto={0}{T}:name(X = 0) lord(creature[manacost=0]) cantattack && lord(creature[manacost=0]) cantblock -auto={1}{T}:name(X = 1) lord(creature[manacost=1]) cantattack && lord(creature[manacost=1]) cantblock -auto={2}{T}:name(X = 2) lord(creature[manacost=2]) cantattack && lord(creature[manacost=2]) cantblock -auto={3}{T}:name(X = 3) lord(creature[manacost=3]) cantattack && lord(creature[manacost=3]) cantblock -auto={4}{T}:name(X = 4) lord(creature[manacost=4]) cantattack && lord(creature[manacost=4]) cantblock -auto={5}{T}:name(X = 5) lord(creature[manacost=5]) cantattack && lord(creature[manacost=5]) cantblock -auto={6}{T}:name(X = 6) lord(creature[manacost=6]) cantattack && lord(creature[manacost=6]) cantblock -auto={7}{T}:name(X = 7) lord(creature[manacost=7]) cantattack && lord(creature[manacost=7]) cantblock -auto={8}{T}:name(X = 8) lord(creature[manacost=8]) cantattack && lord(creature[manacost=8]) cantblock -auto={9}{T}:name(X = 9) lord(creature[manacost=9]) cantattack && lord(creature[manacost=9]) cantblock -auto={10}{T}:name(X = 10) lord(creature[manacost=10]) cantattack && lord(creature[manacost=10]) cantblock -auto={11}{T}:name(X = 11) lord(creature[manacost=11]) cantattack && lord(creature[manacost=11]) cantblock -auto={12}{T}:name(X = 12) lord(creature[manacost=12]) cantattack && lord(creature[manacost=12]) cantblock -auto={13}{T}:name(X = 13) lord(creature[manacost=13]) cantattack && lord(creature[manacost=13]) cantblock -auto={14}{T}:name(X = 14) lord(creature[manacost=14]) cantattack && lord(creature[manacost=14]) cantblock -auto={15}{T}:name(X = 15) lord(creature[manacost=15]) cantattack && lord(creature[manacost=15]) cantblock -auto={16}{T}:name(X = 16) lord(creature[manacost=16]) cantattack && lord(creature[manacost=16]) cantblock +auto={X}{T}:all(creature[manacost=x]) cantattack && all(creature[manacost=x]) cantpwattack && all(creature[manacost=x]) cantblock text={X}, {T}: Each creature with converted mana cost X can't attack or block this turn. mana={3}{W} type=Creature @@ -32695,6 +32699,7 @@ text=Permanents enter the battlefield tapped this turn. Draw a card. [card] name=Dueling Grounds auto=aslongas(creature[attacking]|battlefield) lord(creature[-attacking]|battlefield) cantattack +auto=aslongas(creature[attacking]|battlefield) lord(creature[-attacking]|battlefield) cantpwattack auto=aslongas(creature[blocking]|battlefield) lord(creature[-blocking]|battlefield) cantblock text=No more than one creature can attack each turn. -- No more than one creature can block each turn. mana={1}{G}{W} @@ -35754,7 +35759,7 @@ toughness=5 name=Endbringer auto=@each upkeep:untap auto={t}:damage:1 target(creature,player) -auto={c}{t}:target(creature) transforms((,newability[cantattack],newability[cantblock])) ueot +auto={c}{t}:name(cant attack or block) target(creature) transforms((,cantattack,cantpwattack,cantblock)) ueot auto={c}{c}{t}:draw:1 text=Untap Endbringer during each other player's untap step. -- {T}: Endbringer deals 1 damage to target creature or player. -- {C}, {T}: Target creature can't attack or block this turn. -- {C}{C}, {T}: Draw a card. mana={5}{C} @@ -36238,8 +36243,8 @@ type=Instant [/card] [card] name=Ensnaring Bridge -auto=lord(creature|mybattlefield) transforms((,newability[while(restriction{powermorethancontrollerhand}) cantattack])) -auto=lord(creature|opponentbattlefield) transforms((,newability[while(restriction{powermorethanopponenthand}) cantattack])) +auto=lord(creature|mybattlefield) transforms((,newability[while(restriction{powermorethancontrollerhand}) cantattack],newability[while(restriction{powermorethancontrollerhand}) cantpwattack])) +auto=lord(creature|opponentbattlefield) transforms((,newability[while(restriction{powermorethanopponenthand}) cantattack],newability[while(restriction{powermorethanopponenthand}) cantpwattack])) text=Creatures with power greater than the number of cards in your hand can't attack. mana={3} type=Artifact @@ -37170,6 +37175,7 @@ toughness=3 name=Ethereal Whiskergill abilities=flying auto=aslongas(island|opponentBattlefield) cantattack <1 +auto=aslongas(island|opponentBattlefield) cantpwattack <1 text=Flying -- Ethereal Whiskergill can't attack unless defending player controls an Island. mana={3}{U} type=Creature @@ -37394,6 +37400,7 @@ toughness=1 [card] name=Evil Eye of Orms-by-Gore auto=lord(creature[-eye]|myBattlefield) cantattack +auto=lord(creature[-eye]|myBattlefield) cantpwattack auto=cantbeblockedby(creature[-wall]) text=Non-Eye creatures you control can't attack. -- Evil Eye of Orms-by-Gore can't be blocked except by Walls. mana={4}{B} @@ -37405,6 +37412,7 @@ toughness=6 [card] name=Evil Eye of Urborg auto=lord(creature[-eye]|myBattlefield) cantattack +auto=lord(creature[-eye]|myBattlefield) cantpwattack auto=@combat(blocked) source(this) from(creature):all(trigger[from]) destroy text=Non-Eye creatures you control can't attack. -- Whenever Evil Eye of Urborg becomes blocked by a creature, destroy that creature. mana={4}{B} @@ -37506,8 +37514,8 @@ toughness=5 [/card] [card] name=Exalted Dragon -abilities=flying,cantattack -auto={S(land|myBattlefield)}:-cantattack restriction{myattackersonly} +abilities=flying,cantattack,cantpwattack +auto={S(land|myBattlefield)}:-cantattack && -cantpwattack restriction{myattackersonly} text=Flying -- Exalted Dragon can't attack unless you sacrifice a land. mana={4}{W}{W} type=Creature @@ -38484,6 +38492,7 @@ name=Faith's Fetters target=* auto=life:4 controller auto=teach(creature) cantattack +auto=teach(creature) cantpwattack auto=teach(creature) cantblock auto=onlymanaability text=Enchant permanent -- When Faith's Fetters enters the battlefield, you gain 4 life. -- Enchanted permanent's activated abilities can't be activated unless they're mana abilities. If enchanted permanent is a creature, it can't attack or block. @@ -39962,6 +39971,7 @@ type=Sorcery name=Festival restriction=opponentupkeeponly auto=all(creature|opponentBattlefield) cantattack ueot +auto=all(creature|opponentBattlefield) cantpwattack ueot text=Cast Festival only during an opponent's upkeep. -- Creatures can't attack this turn. mana={W} type=Instant @@ -41857,6 +41867,7 @@ toughness=2 name=Floodchaser auto=counter(1/1,6) auto=aslongas(island|opponentBattlefield) cantattack <1 +auto=aslongas(island|opponentBattlefield) cantpwattack <1 auto={U}{C(1/1,-1)}:ueot name(land becomes an island) loseabilities && losesubtypesof(land) && transforms((island)) target(land) text=Floodchaser enters the battlefield with six +1/+1 counters on it. -- Floodchaser can't attack unless defending player controls an Island. -- {U}, Remove a +1/+1 counter from Floodchaser: Target land becomes an Island until end of turn. mana={5}{U} @@ -41909,8 +41920,8 @@ toughness=5 [/card] [card] name=Floodtide Serpent -abilities=cantattack -auto={H(enchantment|myBattlefield)}:-cantattack restriction{myattackersonly} +abilities=cantattack,cantpwattack +auto={H(enchantment|myBattlefield)}:-cantattack && -cantpwattack restriction{myattackersonly} text=Floodtide Serpent can't attack unless you return an enchantment you control to its owner's hand. (This cost is paid as attackers are declared.) mana={4}{U} type=Creature @@ -42621,6 +42632,7 @@ type=Sorcery name=Forced Worship target=creature auto=cantattack +auto=cantpwattack auto={2}{W}:moveTo(ownerhand) text=Enchant creature -- Enchanted creature can't attack. -- {2}{W}: Return Forced Worship to its owner's hand. mana={1}{W} @@ -46488,6 +46500,7 @@ name=Glacial Chasm auto=sacrifice notatarget(land|myBattlefield) auto=cumulativeupcost[{L}{L}] sacrifice auto=lord(creature|mybattlefield) cantattack +auto=lord(creature|mybattlefield) cantpwattack auto=preventalldamage to(controller) text=Cumulative upkeep - Pay 2 life. (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.) -- When Glacial Chasm enters the battlefield, sacrifice a land. -- Creatures you control can't attack. -- Prevent all damage that would be dealt to you. type=Land @@ -46496,6 +46509,7 @@ type=Land name=Glacial Crasher abilities=trample auto=aslongas(mountain|Battlefield) cantattack <1 +auto=aslongas(mountain|Battlefield) cantpwattack <1 text=Trample (If this creature would assign enough damage to its blockers to destroy them, you may have it assign the rest of its damage to defending player or planeswalker.) -- Glacial Crasher can't attack unless there is a mountain on the battlefield. mana={4}{U}{U} type=Creature @@ -47523,6 +47537,7 @@ toughness=3 [card] name=Goblin Cohort auto=this(variable{countmycrespell}<1) cantattack +auto=this(variable{countmycrespell}<1) cantpwattack text=Goblin Cohort can't attack unless you've cast a creature spell this turn. mana={R} type=Creature @@ -47730,6 +47745,7 @@ toughness=1 [card] name=Goblin Goon auto=while(restriction{lessorequalcreatures}) cantattack +auto=while(restriction{lessorequalcreatures}) cantpwattack auto=while(restriction{lessorequalcreatures}) cantblock text=Goblin Goon can't attack unless you control more creatures than defending player. -- Goblin Goon can't block unless you control more creatures than attacking player. mana={3}{R} @@ -47917,6 +47933,7 @@ toughness=1 name=Goblin Mutant abilities=trample auto=aslongas(creature[power>=3;-tapped]|opponentBattlefield) cantattack +auto=aslongas(creature[power>=3;-tapped]|opponentBattlefield) cantpwattack auto=cantbeblockerof(creature[power>=3]) text=Trample -- Goblin Mutant can't attack if defending player controls an untapped creature with power 3 or greater. -- Goblin Mutant can't block creatures with power 3 or greater. mana={2}{R}{R} @@ -48071,6 +48088,7 @@ name=Goblin Rock Sled abilities=trample auto=@combat(attacking) source(this):frozen auto=aslongas(mountain|opponentbattlefield) cantattack <1 +auto=aslongas(mountain|opponentbattlefield) cantpwattack <1 text=Trample -- Goblin Rock Sled doesn't untap during your untap step if it attacked during your last turn. -- Goblin Rock Sled can't attack unless defending player controls a Mountain. mana={1}{R} type=Creature @@ -48447,6 +48465,7 @@ toughness=4 [card] name=Godhunter Octopus auto=aslongas(*[enchantment;enchanted]|opponentBattlefield) cantattack <1 +auto=aslongas(*[enchantment;enchanted]|opponentBattlefield) cantpwattack <1 text=Godhunter Octopus can't attack unless defending player controls an enchantment or an enchanted permanent. mana={5}{U} type=Creature @@ -51528,15 +51547,16 @@ toughness=1 [/card] [card] name=Gwafa Hazid, Profiteer +auto=lord(creature[counter{0/0.1.Bribe}]) cantattack +auto=lord(creature[counter{0/0.1.Bribe}]) cantpwattack +auto=lord(creature[counter{0/0.1.Bribe}]) cantblock +auto={W}{U}{T}:counter(0/0,1,Bribe) target(creature|opponentbattlefield) && draw:1 targetcontroller +text={W}{U}, {T}: Put a bribery counter on target creature you don't control. Its controller draws a card. -- Creatures with bribery counters on them can't attack or block. mana={1}{W}{U} type=Legendary Creature subtype=Human Rogue -text={W}{U}, {T}: Put a bribery counter on target creature you don't control. Its controller draws a card. -- Creatures with bribery counters on them can't attack or block. power=2 toughness=2 -auto={W}{U}{T}:counter(0/0,1,Bribe) target(creature|opponentbattlefield) && draw:1 -auto=lord(creature[counter{0/0.1.Bribe}]) cantattack -auto=lord(creature[counter{0/0.1.Bribe}]) cantblock [/card] [card] name=Gwendlyn Di Corci @@ -51909,6 +51929,7 @@ subtype=Aura [card] name=Hammerhead Shark auto=aslongas(island|opponentbattlefield) cantattack <1 +auto=aslongas(island|opponentbattlefield) cantpwattack <1 text=Hammerhead Shark can't attack unless defending player controls an Island. mana={1}{U} type=Creature @@ -52197,8 +52218,8 @@ toughness=4 [card] name=Harbor Serpent abilities=islandwalk -auto=aslongas(island|battlefield) cantattack <5 -auto=@movedTo(island|exile,graveyard,hand,library) from(battlefield):aslongas(island|myBattlefield) cantattack <5 +auto=while(restriction{type(island|battlefield)~lessthan~5}) cantattack +auto=while(restriction{type(island|battlefield)~lessthan~5}) cantpwattack text=Islandwalk -- Harbor Serpent can't attack unless there are five or more Islands on the battlefield. mana={4}{U}{U} type=Creature @@ -54708,6 +54729,7 @@ name=Hobble target=creature auto=draw:1 controller auto=cantattack +auto=cantpwattack auto=teach(creature[black]) cantblock text=Enchant creature -- When Hobble enters the battlefield, draw a card. -- Enchanted creature can't attack. -- Enchanted creature can't block if it's black. mana={2}{W} @@ -56595,6 +56617,7 @@ type=Sorcery name=Ice Cage target=creature auto=cantattack +auto=cantpwattack auto=cantblock auto=noactivatedability auto=@targeted(mytgt):sacrifice all(this) @@ -57387,7 +57410,7 @@ type=Enchantment [card] name=Inaction Injunction target=creature|opponentBattlefield -auto=transforms((Detained,newability[cantattack],newability[cantblock],newability[noactivatedability])) uynt +auto=transforms((Detained,cantattack,cantpwattack,cantblock,noactivatedability)) uynt auto=draw:1 controller text=Detain target creature an opponent controls. (Until your next turn, that creature can't attack or block and its activated abilities can't be activated.) -- Draw a card. mana={1}{U} @@ -58493,7 +58516,8 @@ type=Sorcery name=Intimidation Bolt target=creature auto=damage:3 -auto=lord(creature) cantattack +auto=all(other creature) cantattack ueot +auto=all(other creature) cantpwattack ueot text=Intimidation Bolt deals 3 damage to target creature. Other creatures can't attack this turn. mana={1}{R}{W} type=Instant @@ -59180,7 +59204,7 @@ toughness=4 [/card] [card] name=Isperia's Skywatch -auto=name(detain) target(creature|opponentBattlefield) transforms((Detained,newability[cantattack],newability[cantblock],newability[noactivatedability])) uynt +auto=name(detain) target(creature|opponentBattlefield) transforms((Detained,cantattack,cantpwattack,cantblock,noactivatedability)) uynt abilities=flying text=Flying -- When Isperia's Skywatch enters the battlefield, detain target creature an opponent controls. (Until your next turn, that creature can't attack or block and its activated abilities can't be activated.) mana={5}{U} @@ -60221,7 +60245,7 @@ toughness=4 [/card] [card] name=Johan -auto=@each my combatbegins sourcenottap:may all(other creature|myBattlefield) vigilance ueot && all(this) cantattack ueot +auto=@each my combatbegins sourcenottap:may name(johan cant attack) transforms((,newability[all(other creature|myBattlefield) vigilance],cantattack,cantpwattack,newability[phaseactionmulti[combatends sourceinplay] -cantattack && -cantpwattack])) ueot text=At the beginning of your combat phase, you may have Johan gain "Johan can't attack" until end of combat. If you do, attacking doesn't cause creatures you control to tap this combat if Johan is untapped. mana={3}{R}{G}{W} type=Legendary Creature @@ -61666,6 +61690,7 @@ toughness=3 name=Katabatic Winds abilities=phasing auto=lord(creature[flying]) cantattack +auto=lord(creature[flying]) cantpwattack auto=lord(creature[flying]) cantblock auto=lord(creature[flying]) notapability text=Phasing (This phases in or out before you untap during each of your untap steps. While it's phased out, it's treated as though it doesn't exist.) -- Creatures with flying can't attack or block, and their activated abilities with {T} in their costs can't be activated. @@ -62890,6 +62915,7 @@ toughness=2 name=Kirtar's Desire target=creature auto=cantattack +auto=cantpwattack auto=aslongas(*|mygraveyard) cantblock >6 text=Enchant creature -- Enchanted creature can't attack. -- Threshold - Enchanted creature can't block as long as seven or more cards are in your graveyard. mana={W} @@ -64762,6 +64788,7 @@ toughness=4 name=Kulrath Knight abilities=flying,wither auto=lord(creature[counter{any}]|opponentbattlefield) cantattack +auto=lord(creature[counter{any}]|opponentbattlefield) cantpwattack auto=lord(creature[counter{any}]|opponentbattlefield) cantblock text=Flying -- Wither (This deals damage to creatures in the form of -1/-1 counters.) -- Creatures your opponents control with counters on them can't attack or block. mana={3}{BR}{BR} @@ -65174,6 +65201,7 @@ toughness=2 [card] name=Lambholt Pacifist auto=aslongas(creature[power>=4]|mybattlefield) cantattack <1 +auto=aslongas(creature[power>=4]|mybattlefield) cantpwattack <1 auto=@each upkeep restriction{lastturn(*|stack)~lessthan~1}:flip(Lambholt Butcher) text=Lambholt Pacifist can't attack unless you control a creature with power 4 or greater. -- At the beginning of each upkeep, if no spells were cast last turn, transform Lambholt Pacifist. mana={1}{G} @@ -65752,7 +65780,7 @@ toughness=2 [card] name=Lavinia of the Tenth abilities=protection from red -auto=name(detain) transforms((,newability[lord(detained) cantattack],newability[lord(detained) cantblock],newability[lord(detained) noactivatedability],newability[lord(*[-land;manacost<=4]|opponentBattlefield) becomes(detained)])) uynt +auto=name(detain) transforms((,newability[lord(detained) cantattack],newability[lord(detained) cantpwattack],newability[lord(detained) cantblock],newability[lord(detained) noactivatedability],newability[lord(*[-land;manacost<=4]|opponentBattlefield) becomes(detained)])) uynt text=Protection from red. -- When Lavinia of the Tenth enters the battlefield, detain each nonland permanent your opponents control with converted mana cost 4 or less. mana={3}{W}{U} type=Legendary Creature @@ -66309,10 +66337,10 @@ toughness=10 [/card] [card] name=Leviathan -abilities=trample,doesnotuntap,cantattack +abilities=trample,doesnotuntap,cantattack,cantpwattack auto=tap(noevent) -auto={S(island|myBattlefield)}{S(island|myBattlefield)}:untap myUpkeepOnly -auto={S(island|myBattlefield)}{S(island|myBattlefield)}:-cantattack +auto={S(island|myBattlefield)}{S(island|myBattlefield)}:untap restriction{myupkeeponly} +auto={S(island|myBattlefield)}{S(island|myBattlefield)}:-cantattack && -cantpwattack restriction{myattackersonly} text=Trample -- Leviathan enters the battlefield tapped and doesn't untap during your untap step. -- At the beginning of your upkeep, you may sacrifice two Islands. If you do, untap Leviathan. -- Leviathan can't attack unless you sacrifice two Islands. mana={5}{U}{U}{U}{U} type=Creature @@ -66747,6 +66775,7 @@ type=Enchantment [card] name=Light of Day auto=lord(creature[black]) cantattack +auto=lord(creature[black]) cantpwattack auto=lord(creature[black]) cantblock text=Black creatures can't attack or block. mana={3}{W} @@ -68877,11 +68906,7 @@ toughness=4 [/card] [card] name=Lupine Prototype -abilities=cantattack,cantblock -auto=while(restriction{type(*|myhand)~lessthan~1}) -cantblock -auto=while(restriction{type(*|myhand)~lessthan~1}) -cantattack -auto=while(restriction{type(*|opponenthand)~lessthan~1}) -cantblock -auto=while(restriction{type(*|opponenthand)~lessthan~1}) -cantattack +auto=while(restriction{type(*|hand)~morethan~0}) transforms((,cantattack,cantpwattack,cantblock)) text=Lupine Prototype can't attack or block unless a player has no cards in hand. mana={2} type=Artifact Creature @@ -69016,14 +69041,14 @@ type=Artifact [/card] [card] name=Lyev Decree -auto=name(detain) target(creature|opponentBattlefield) transforms((Detained,newability[cantattack],newability[cantblock],newability[noactivatedability])) uynt +auto=name(detain) target(creature|opponentBattlefield) transforms((Detained,cantattack,cantpwattack,cantblock,noactivatedability)) uynt text=Detain up to two target creatures your opponents control. mana={1}{W} type=Sorcery [/card] [card] name=Lyev Skyknight -auto=name(detain) target(*[-land]|opponentBattlefield) transforms((Detained,newability[cantattack],newability[cantblock],newability[noactivatedability])) uynt +auto=name(detain) target(*[-land]|opponentBattlefield) transforms((Detained,cantattack,cantpwattack,cantblock,noactivatedability)) uynt abilities=flying text=Flying -- When Lyev Skyknight enters the battlefield, detain target nonland permanent an opponent controls. (Until your next turn, that permanent can't attack or block and its activated abilities can't be activated.) mana={1}{W}{U} @@ -70264,6 +70289,7 @@ type=Enchantment name=Manacles of Decay target=creature auto=cantattack +auto=cantpwattack auto={B}:-1/-1 auto={R}:cantblock text=Enchant creature -- Enchanted creature can't attack. -- {B}: Enchanted creature gets -1/-1 until end of turn. -- {R}: Enchanted creature can't block this turn. @@ -71288,7 +71314,7 @@ type=Instant [/card] [card] name=Martial Law -auto=@each my upkeep restriction{type(creature|opponentBattlefield)~morethan~0}:name(detain) target(creature|opponentBattlefield) transforms((Detained,newability[cantattack],newability[cantblock],newability[noactivatedability])) uynt +auto=@each my upkeep restriction{type(creature|opponentBattlefield)~morethan~0}:name(detain) target(creature|opponentBattlefield) transforms((Detained,cantattack,cantpwattack,cantblock,noactivatedability)) uynt text=At the beginning of your upkeep, detain target creature an opponent controls. (Until your next turn, that creature can't attack or block and its activated abilities can't be activated.) mana={2}{W}{W} type=Enchantment @@ -71306,7 +71332,7 @@ toughness=1 [/card] [card] name=Martyred Rusalka -auto={W}{S(creature|myBattlefield)}:cantattack target(creature) +auto={W}{S(creature|myBattlefield)}:cantattack && cantpwattack target(creature) text={W}, Sacrifice a creature: Target creature can't attack this turn. mana={W} type=Creature @@ -75101,6 +75127,7 @@ type=Artifact [card] name=Mogg Conscripts auto=this(variable{countmycrespell}<1) cantattack +auto=this(variable{countmycrespell}<1) cantpwattack text=Mogg Conscripts can't attack unless you've cast a creature spell this turn. mana={R} type=Creature @@ -75140,6 +75167,7 @@ type=Land [card] name=Mogg Jailer auto=aslongas(creature[power<=2;-tapped]|opponentBattlefield) cantattack +auto=aslongas(creature[power<=2;-tapped]|opponentBattlefield) cantpwattack text=Mogg Jailer can't attack if defending player controls an untapped creature with power 2 or less. mana={1}{R} type=Creature @@ -75200,6 +75228,7 @@ toughness=3 [card] name=Mogg Toady auto=while(restriction{lessorequalcreatures}) cantattack +auto=while(restriction{lessorequalcreatures}) cantpwattack auto=while(restriction{lessorequalcreatures}) cantblock text=Mogg Toady can't attack unless you control more creatures than defending player. -- Mogg Toady can't block unless you control more creatures than attacking player. mana={1}{R} @@ -75732,6 +75761,7 @@ type=Sorcery [card] name=Monstrous Hound auto=while(restriction{lessorequallands}) cantattack +auto=while(restriction{lessorequallands}) cantpwattack auto=while(restriction{lessorequallands}) cantblock text=Monstrous Hound can't attack unless you control more lands than defending player. -- Monstrous Hound can't block unless you control more lands than attacking player. mana={3}{R} @@ -78971,7 +79001,7 @@ toughness=4 [/card] [card] name=Netter en-Dal -auto={W}{T}{D(*|myhand)}:cantattack target(creature) +auto={W}{T}{D(*|myhand)}:cantattack && cantpwattack target(creature) text={W}, {T}, Discard a card: Target creature can't attack this turn. mana={W} type=Creature @@ -79165,7 +79195,7 @@ type=Land [card] name=New Prahv Guildmage auto={W}{U}:flying target(creature) -auto={3}{W}{U}:name(detain) target(*[-land]|opponentBattlefield) transforms((Detained,newability[cantattack],newability[cantblock],newability[noactivatedability])) uynt +auto={3}{W}{U}:name(detain) target(*[-land]|opponentBattlefield) transforms((Detained,cantattack,cantpwattack,cantblock,noactivatedability)) uynt text={W}{U}: Target creature gains flying until end of turn. -- {3}{W}{U}: Detain target nonland permanent an opponent controls. (Until your next turn, that permanent can't attack or block and its activated abilities can't be activated.) mana={W}{U} type=Creature @@ -81503,6 +81533,7 @@ toughness=2 name=Off Balance target=creature auto=cantattack +auto=cantpwattack auto=cantblock text=Target creature can't attack or block this turn. mana={W} @@ -82023,6 +82054,7 @@ toughness=6 name=One Thousand Lashes target=creature auto=cantattack +auto=cantpwattack auto=cantblock auto=noactivatedability auto=@each targetcontroller upkeep:life:-1 targetController @@ -82916,6 +82948,7 @@ name=Orgg abilities=trample auto=cantbeblockerof(creature[white;power>=3]) auto=aslongas(creature[power>=3;-tapped]|opponentbattlefield) cantattack +auto=aslongas(creature[power>=3;-tapped]|opponentbattlefield) cantpwattack text=Trample -- Orgg can't attack if defending player controls an untapped creature with power 3 or greater. -- Orgg can't block creatures with power 3 or greater. mana={3}{R}{R} type=Creature @@ -82947,6 +82980,7 @@ target=player auto=maxCast(*)0 kicker={W} auto=kicker cantattack all(creature) ueot +auto=kicker cantpwattack all(creature) ueot text=Kicker {W} (You may pay an additional {W} as you cast this spell.) -- Target player can't cast spells this turn. -- If Orim's Chant was kicked, creatures can't attack this turn. mana={W} type=Instant @@ -82991,7 +83025,7 @@ type=Instant [card] name=Oriss, Samite Guardian auto={T}:name(prevent all damage) target(creature) transforms((,newability[preventalldamage to(this)])) ueot -auto={D(*[share!name!]|myhand)}:target(player) maxCast(*)0 ueot && all(creature|targetedpersonsbattlefield) cantattack ueot +auto={D(*[share!name!]|myhand)}:target(player) maxCast(*)0 ueot && all(creature|targetedpersonsbattlefield) cantattack ueot && all(creature|targetedpersonsbattlefield) cantpwattack ueot text={T}: Prevent all damage that would be dealt to target creature this turn. Grandeur -- Discard another card named Oriss, Samite Guardian: Target player can't cast spells this turn, and creatures that player controls can't attack this turn. mana={1}{W}{W} type=Legendary Creature @@ -83607,6 +83641,7 @@ type=Artifact name=Pacifism target=creature auto=cantattack +auto=cantpwattack auto=cantblock text=Enchant creature -- Enchanted creature can't attack or block. mana={1}{W} @@ -84660,7 +84695,7 @@ toughness=3 [card] name=Peacekeeper auto=upcost[{1}{W}] sacrifice -auto=lord(creature) cantattack +auto=lord(creature) transforms((,cantattack,cantpwattack)) text=At the beginning of your upkeep, sacrifice Peacekeeper unless you pay {1}{W}. -- Creatures can't attack. mana={2}{W} type=Creature @@ -86536,6 +86571,7 @@ toughness=4 name=Pillory of the Sleepless target=creature auto=cantattack +auto=cantpwattack auto=cantblock auto=@each targetcontroller upkeep:life:-1 targetController text=Enchant creature -- Enchanted creature can't attack or block. -- Enchanted creature has "At the beginning of your upkeep, you lose 1 life." @@ -88608,6 +88644,7 @@ toughness=3 name=Prison Term target=creature auto=cantattack +auto=cantpwattack auto=cantblock auto=noactivatedability auto=@movedto(creature|opponentbattlefield):may all(trigger[to]) retarget @@ -92920,6 +92957,7 @@ type=Sorcery name=Recumbent Bliss target=creature auto=cantattack +auto=cantpwattack auto=cantblock auto=@each my upkeep:may life:1 controller text=Enchant creature -- Enchanted creature can't attack or block. -- At the beginning of your upkeep, you may gain 1 life. @@ -92954,6 +92992,7 @@ type=Enchantment [card] name=Red Cliffs Armada auto=aslongas(island|opponentBattlefield) cantattack <1 +auto=aslongas(island|opponentBattlefield) cantpwattack <1 text=Red Cliffs Armada can't attack unless defending player controls an Island. mana={4}{U} type=Creature @@ -94606,6 +94645,7 @@ type=Sorcery name=Revoke Privileges target=creature auto=teach(creature) cantattack +auto=teach(creature) cantpwattack auto=teach(creature) cantblock auto=teach(creature) cantcrew text=Enchant creature -- Enchanted creature can't attack, block, or crew Vehicles. @@ -95579,7 +95619,7 @@ type=Sorcery [/card] [card] name=Rite of the Raging Storm -auto=lord(Lightning Rager|opponentbattlefield) cantattack +auto=lord(Lightning Rager|opponentbattlefield) transforms((,cantattack,cantpwattack)) auto=@each opponent upkeep:token(Lightning Rager,Creature Elemental,5/1,trample,haste,treason,red) opponent auto=@each my upkeep:token(Lightning Rager,Creature Elemental,5/1,trample,haste,treason,red) controller text=Creatures named Lightning Rager can't attack you or planeswalkers you control. -- At the beginning of each player's upkeep, that player puts a 5/1 red Elemental creature token named Lightning Rager onto the battlefield. It has trample, haste, and "At the beginning of the end step, sacrifice this creature." @@ -96245,6 +96285,7 @@ toughness=6 [card] name=Ronom Serpent auto=aslongas(land[snow]|opponentBattlefield) cantattack <1 +auto=aslongas(land[snow]|opponentBattlefield) cantpwattack <1 auto=aslongas(land[snow]|myBattlefield) all(this) sacrifice while <1 text=Ronom Serpent can't attack unless defending player controls a snow land. -- When you control no snow lands, sacrifice Ronom Serpent. mana={5}{U} @@ -99517,6 +99558,7 @@ toughness=4 [card] name=Scarred Puma auto=aslongas(other creature[black;green;attacking]|myBattlefield) cantattack <1 +auto=aslongas(other creature[black;green;attacking]|myBattlefield) cantpwattack <1 text=Scarred Puma can't attack unless a black or green creature also attacks. mana={R} type=Creature @@ -100776,6 +100818,7 @@ type=Instant [card] name=Sea Monster auto=aslongas(island|opponentBattlefield) cantattack <1 +auto=aslongas(island|opponentBattlefield) cantpwattack <1 text=Sea Monster can't attack unless defending player controls an Island. mana={4}{U}{U} type=Creature @@ -100950,6 +100993,7 @@ type=Sorcery [card] name=Sealock Monster auto=aslongas(island|opponentBattlefield) cantattack <1 +auto=aslongas(island|opponentBattlefield) cantpwattack <1 auto=this(cantargetcard(*[-monstrous]) {5}{U}{U}:becomes(monstrous) forever && counter(1/1,3) && transforms((,newAbility[target(land|opponentbattlefield) becomes(island) forever])) forever text=Sealock Monster can't attack unless defending player controls an Island. -- {5}{U}{U}: Monstrosity 3. (If this creature isn't monstrous, put three +1/+1 counters on it and it becomes monstrous.) -- When Sealock Monster becomes monstrous, target land becomes an Island in addition to its other types. mana={3}{U}{U} @@ -102267,6 +102311,7 @@ type=Artifact [card] name=Serpent of the Endless Sea auto=aslongas(island|opponentBattlefield) cantattack <1 +auto=aslongas(island|opponentBattlefield) cantpwattack <1 anyzone=type:island:myBattlefield/type:island:myBattlefield cdaactive text=Serpent of the Endless Sea's power and toughness are each equal to the number of Islands you control. -- Serpent of the Endless Sea can't attack unless defending player controls an Island. mana={4}{U} @@ -102393,6 +102438,7 @@ type=World Enchantment name=Serra Bestiary target=creature auto=cantattack +auto=cantpwattack auto=cantblock auto=notapability auto=upcost[{W}{W}] sacrifice @@ -103383,6 +103429,7 @@ name=Shauku, Endbringer abilities=flying auto=@each my upkeep:life:-3 controller auto=aslongas(other creature|battlefield) cantattack +auto=aslongas(other creature|battlefield) cantpwattack auto={T}:counter(1/1,1) all(this) && moveTo(exile) target(creature) text=Flying -- Shauku, Endbringer can't attack if there's another creature on the battlefield. -- At the beginning of your upkeep, you lose 3 life. -- {T}: Exile target creature and put a +1/+1 counter on Shauku. mana={5}{B}{B} @@ -105042,6 +105089,7 @@ toughness=1 [card] name=Silburlind Snapper auto=this(variable{countmynoncrespell}<1) cantattack +auto=this(variable{countmynoncrespell}<1) cantpwattack text=Silburlind Snapper can't attack unless you've cast a noncreature spell this turn. mana={5}{U} type=Creature @@ -107683,6 +107731,7 @@ type=Land [card] name=Slipstream Eel auto=aslongas(island|opponentbattlefield) cantattack <1 +auto=aslongas(island|opponentbattlefield) cantpwattack <1 autohand=__CYCLING__({1}{U}) text=Slipstream Eel can't attack unless defending player controls an Island. -- Cycling {1}{U} ({1}{U}, Discard this card: Draw a card.) mana={5}{U}{U} @@ -107697,6 +107746,7 @@ abilities=islandhome facedown={3} autofacedown={5}{U}:morph auto=aslongas(island|opponentbattlefield) cantattack <1 +auto=aslongas(island|opponentbattlefield) cantpwattack <1 text=Slipstream Serpent can't attack unless defending player controls an Island. -- When you control no Islands, sacrifice Slipstream Serpent. -- Morph {5}{U} (You may cast this face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.) mana={7}{U} type=Creature @@ -107941,6 +107991,7 @@ toughness=2 name=Slumbering Dragon abilities=flying auto=this(counter{1/1.1}<5) cantattack +auto=this(counter{1/1.1}<5) cantpwattack auto=this(counter{1/1.1}<5) cantblock auto=@each blockers:foreach(creature[attacking]|opponentBattlefield) counter(1/1,1) text=Flying -- Slumbering Dragon can't attack or block unless it has five or more +1/+1 counters on it. -- Whenever a creature attacks you or a planeswalker you control, put a +1/+1 counter on Slumbering Dragon. @@ -108936,6 +108987,7 @@ toughness=2 [card] name=Song of Serenity auto=lord(creature[enchanted]) cantattack +auto=lord(creature[enchanted]) cantpwattack auto=lord(creature[enchanted]) cantblock text=Creatures that are enchanted can't attack or block. mana={1}{G} @@ -109747,7 +109799,7 @@ toughness=4 [/card] [card] name=Soulsworn Spirit -auto=name(detain) target(creature|opponentBattlefield) transforms((Detained,newability[cantattack],newability[cantblock],newability[noactivatedability])) uynt +auto=name(detain) target(creature|opponentBattlefield) transforms((Detained,cantattack,cantpwattack,cantblock,noactivatedability)) uynt abilities=unblockable text=Soulsworn Spirit is unblockable. -- When Soulsworn Spirit enters the battlefield, detain target creature an opponent controls. (Until your next turn, that creature can't attack or block and its activated abilities can't be activated.) mana={3}{U} @@ -112588,6 +112640,7 @@ subtype=Aura name=Stasis Cocoon target=artifact auto=teach(creature) cantattack +auto=teach(creature) cantpwattack auto=teach(creature) cantblock auto=noactivatedability text=Enchant artifact -- Enchanted artifact's activated abilities can't be activated. If enchanted artifact is a creature, it can't attack or block. @@ -112754,6 +112807,7 @@ toughness=3 [card] name=Steam Frigate auto=aslongas(island|opponentBattlefield) cantattack <1 +auto=aslongas(island|opponentBattlefield) cantpwattack <1 text=Steam Frigate can't attack unless defending player controls an Island. mana={2}{U} type=Creature @@ -112873,6 +112927,7 @@ toughness=4 [card] name=Steelclad Serpent auto=aslongas(other artifact|myBattlefield) cantattack <1 +auto=aslongas(other artifact|myBattlefield) cantpwattack <1 text=Steelclad Serpent can't attack unless you control another artifact. mana={5}{U} type=Artifact Creature @@ -113974,6 +114029,7 @@ name=Stormtide Leviathan abilities=islandwalk auto=lord(land) transforms((island)) auto=lord(creature[-flying;-islandwalk]) cantattack +auto=lord(creature[-flying;-islandwalk]) cantpwattack text=Islandwalk -- All lands are Islands in addition to their original type. -- Creatures without flying or islandwalk can't attack. mana={5}{U}{U}{U} type=Creature @@ -115601,6 +115657,7 @@ toughness=4 name=Suppression Bonds target=*[-land]|battlefield auto=teach(*) cantattack +auto=teach(*) cantpwattack auto=teach(*) cantblock auto=teach(*) noactivatedability text=Enchant nonland permanent -- Enchanted permanent can't attack or block, and its activated abilities can't be activated. @@ -121008,7 +121065,7 @@ toughness=2 [/card] [card] name=Thundersong Trumpeter -auto={T}:cantattack && cantblock target(creature) +auto={T}:cantattack && cantblock && cantpwattack target(creature) text={T}: Target creature can't attack or block this turn. mana={R}{W} type=Creature @@ -122909,6 +122966,7 @@ toughness=1 [card] name=Training Drone auto=this(gear < 1) cantattack +auto=this(gear < 1) cantpwattack auto=this(gear < 1) cantblock text=Training Drone can't attack or block unless it's equipped. mana={3} @@ -126518,6 +126576,7 @@ toughness=2 name=Utopia Vow target=creature auto=cantattack +auto=cantpwattack auto=cantblock auto=teach(creature) {T}:Add{W} auto=teach(creature) {T}:Add{U} @@ -128005,6 +128064,7 @@ toughness=3 [card] name=Veteran Brawlers auto=aslongas(land[-tapped]|opponentBattlefield) cantattack +auto=aslongas(land[-tapped]|opponentBattlefield) cantpwattack auto=aslongas(land[-tapped]|myBattlefield) cantblock text=Veteran Brawlers can't attack if defending player controls an untapped land. -- Veteran Brawlers can't block if you control an untapped land. mana={1}{R} @@ -128498,7 +128558,7 @@ toughness=0 [/card] [card] name=Vigean Hydropon -abilities=cantattack,cantblock +abilities=cantattack,cantblock,cantpwattack auto=counter(1/1,5) auto=this(counter{1/1.1}>0) transforms((,newability[@movedto(other creature|battlefield):may name(move 1/1 counter) all(trigger) counter(1/1.1) && counter(1/1.-1) all(this)])) text=Graft 5 (This creature enters the battlefield with five +1/+1 counters on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this creature onto it.) -- Vigean Hydropon can't attack or block. @@ -129497,6 +129557,7 @@ name=Vodalian Serpent kicker={2} auto=kicker counter(1/1,4) auto=aslongas(island|opponentBattlefield) cantattack <1 +auto=aslongas(island|opponentBattlefield) cantpwattack <1 text=Kicker {2} (You may pay an additional {2} as you cast this spell.) -- Vodalian Serpent can't attack unless defending player controls an Island. -- If Vodalian Serpent was kicked, it enters the battlefield with four +1/+1 counters on it. mana={3}{U} type=Creature @@ -130157,6 +130218,7 @@ target=creature auto=2/2 auto=vigilance auto=teach(creature|opponentbattlefield) cantattack +auto=teach(creature|opponentbattlefield) cantpwattack text=Enchant creature -- Enchanted creature gets +2/+2, has vigilance, and can't attack you or a planeswalker you control. mana={2}{W} type=Enchantment @@ -130168,6 +130230,7 @@ target=creature auto=2/2 auto=flying auto=teach(creature|opponentbattlefield) cantattack +auto=teach(creature|opponentbattlefield) cantpwattack text=Enchant creature -- Enchanted creature gets +2/+2, has flying, and can't attack you or a planeswalker you control. mana={2}{U} type=Enchantment @@ -130179,6 +130242,7 @@ target=creature auto=2/2 auto=first strike auto=teach(creature|opponentbattlefield) cantattack +auto=teach(creature|opponentbattlefield) cantpwattack text=Enchant creature -- Enchanted creature gets +2/+2, has first strike, and can't attack you or a planeswalker you control. mana={2}{R} type=Enchantment @@ -130190,6 +130254,7 @@ target=creature auto=2/2 auto=intimidate auto=teach(creature|opponentbattlefield) cantattack +auto=teach(creature|opponentbattlefield) cantpwattack text=Enchant creature -- Enchanted creature gets +2/+2, has intimidate, and can't attack you or a planeswalker you control. mana={2}{B} type=Enchantment @@ -130201,6 +130266,7 @@ target=creature auto=3/3 auto=trample auto=teach(creature|opponentbattlefield) cantattack +auto=teach(creature|opponentbattlefield) cantpwattack text=Enchant creature -- Enchanted creature gets +3/+3, has trample, and can't attack you or a planeswalker you control. mana={2}{G} type=Enchantment @@ -130736,7 +130802,7 @@ toughness=3 [card] name=Wall of Dust abilities=defender -auto=@combat(blocking) source(this) from(creature):all(trigger[from] phaseaction[untap once] cantattack +auto=@combat(blocking) source(this) from(creature):all(trigger[from]) phaseactionmulti[untap once] cantattack && cantpwattack text=Defender (This creature can't attack.) -- Whenever Wall of Dust blocks a creature, that creature can't attack during its controller's next turn. mana={2}{R} type=Creature @@ -131383,6 +131449,7 @@ toughness=1 name=War Falcon abilities=flying auto=aslongas(*[knight;soldier]|mybattlefield) cantattack <1 +auto=aslongas(*[knight;soldier]|mybattlefield) cantpwattack <1 text=Flying -- War Falcon can't attack unless you control a Knight or a Soldier. mana={W} type=Creature @@ -132395,8 +132462,7 @@ toughness=4 [/card] [card] name=Web of Inertia -auto=@each opponent combatbegins restriction{type(*|opponentgraveyard)~morethan~0}:ability$!choice name(exile card) target(*|mygraveyard) moveTo(exile) _ choice name(cantattack) all(creature|mybattlefield) cantattack ueot !$ opponent -auto=@each opponent combatbegins:all(creature|opponentbattlefield) cantattack ueot +auto=@each opponent combatbegins:ability$!if type(*|mygraveyard)~morethan~0 then choice name(exile card) target(*|mygraveyard) moveTo(exile) _ choice all(creature|mybattlefield) cantattack ueot !$ opponent text=At the beginning of each opponent's combat phase, that player may exile a card from his or her graveyard. If the player doesn't, creatures he or she controls can't attack you this turn. mana={2}{U} type=Enchantment @@ -132873,6 +132939,7 @@ type=Artifact [card] name=Whimwader auto=aslongas(*[blue]|opponentBattlefield) cantattack <1 +auto=aslongas(*[blue]|opponentBattlefield) cantpwattack <1 text=Whimwader can't attack unless defending player controls a blue permanent. mana={4}{U} type=Creature @@ -134289,6 +134356,7 @@ type=Instant [card] name=Wirecat auto=aslongas(enchantment|battlefield) cantattack +auto=aslongas(enchantment|battlefield) cantpwattack auto=aslongas(enchantment|battlefield) cantblock text=Wirecat can't attack or block if an enchantment is on the battlefield. mana={4} @@ -135652,6 +135720,7 @@ toughness=1 [card] name=Wu Warship auto=aslongas(island|opponentBattlefield) cantattack <1 +auto=aslongas(island|opponentBattlefield) cantpwattack <1 text=Wu Warship can't attack unless defending player controls an Island. mana={2}{U} type=Creature @@ -136675,6 +136744,7 @@ toughness=3 [card] name=Zhou Yu, Chief Commander auto=aslongas(island|opponentBattlefield) cantattack <1 +auto=aslongas(island|opponentBattlefield) cantpwattack <1 text=Zhou Yu, Chief Commander can't attack unless defending player controls an Island. mana={5}{U}{U} type=Legendary Creature diff --git a/projects/mtg/src/MTGCardInstance.cpp b/projects/mtg/src/MTGCardInstance.cpp index 0d54374f9..38dec1f10 100644 --- a/projects/mtg/src/MTGCardInstance.cpp +++ b/projects/mtg/src/MTGCardInstance.cpp @@ -694,8 +694,6 @@ int MTGCardInstance::canPWAttack() { if (has(Constants::CANTATTACKPW)) return 0; - if (has(Constants::FLYERSONLY) && !has(Constants::FLYING)) - return 0; if (tapped) return 0; if (hasSummoningSickness()) diff --git a/projects/mtg/src/MTGGameZones.cpp b/projects/mtg/src/MTGGameZones.cpp index 277f92371..ac34d5a7c 100644 --- a/projects/mtg/src/MTGGameZones.cpp +++ b/projects/mtg/src/MTGGameZones.cpp @@ -1142,6 +1142,8 @@ MTGGameZone * MTGGameZone::intToZone(GameObserver *g, int zoneId, MTGCardInstanc else p2 = target->controller(); + if(p2 != p && p2 != p->opponent())//should match at least one + p2 = p; MTGGameZone * result = intToZone(zoneId, p, p2); if (result) return result;