diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f4c7991c..81e2f3420 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,11 @@ ## [master] (https://github.com/WagicProject/wagic/tree/master) +### 01/10/21 +- *Committed:* Added/fixed primitives, updated the "missing_cards_by_sets" folder. ([Vitty85](https://github.com/Vitty85)) + ### 28/09/21 -- *Committed:* Added/fixed primitives, updated the "missing_cards_by_sets" folder, added missing Conspicacy cards and tokens in CNS set, added Conspicacy cards management, added new ability "isconspiracy" to identify the Conspicacy cards into the Sideboard, added "Conspiracy" type in "Subtypes.h" enum definition, added a fix in "GameObserver::Affinity()" method in order to avoid a crash when the card is a Conspiracy in the commandzone. ([Vitty85](https://github.com/Vitty85)) +- *Committed:* Added/fixed primitives, updated the "missing_cards_by_sets" folder, added missing Conspicacy cards and tokens in CNS set, added Conspicacy cards management, added new ability "isconspiracy" to identify the Conspicacy cards into the Sideboard, added "Conspiracy" type in "Subtypes.h" enum definition, added a fix in "GameObserver::Affinity()" method in order to avoid a crash when the card is a Conspiracy in the commandzone. https://github.com/WagicProject/wagic/commit/c60ffba70d75469ae22d74b06e9fd66fa67c1abe ([Vitty85](https://github.com/Vitty85)) ### 27/09/21 - *Committed:* Fixed typos on "Teferi, Who Slows the Sunset" primitive. https://github.com/WagicProject/wagic/commit/d3fad48367996118f30d4adfed60f6a5fb94955f ([Vitty85](https://github.com/Vitty85)) diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/4ED.txt b/projects/mtg/bin/Res/missing_cards_by_sets/4ED.txt index d7b34d213..6aa05c308 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/4ED.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/4ED.txt @@ -181,15 +181,6 @@ power=5 toughness=5 [/card] [card] -name=Urza's Avenger -text={0}: Urza's Avenger gets -1/-1 and gains your choice of banding, flying, first strike, or trample until end of turn. (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) -mana={6} -type=Artifact Creature -subtype=Shapeshifter -power=4 -toughness=4 -[/card] -[card] name=Shapeshifter text=As Shapeshifter enters the battlefield, choose a number between 0 and 7. -- At the beginning of your upkeep, you may choose a number between 0 and 7. -- Shapeshifter's power is equal to the last chosen number and its toughness is equal to 7 minus that number. mana={6} diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/5ED.txt b/projects/mtg/bin/Res/missing_cards_by_sets/5ED.txt index 5ad3105d6..7a6f5ca32 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/5ED.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/5ED.txt @@ -219,15 +219,6 @@ mana={U} type=Instant [/card] [card] -name=Urza's Avenger -text={0}: Urza's Avenger gets -1/-1 and gains your choice of banding, flying, first strike, or trample until end of turn. (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) -mana={6} -type=Artifact Creature -subtype=Shapeshifter -power=4 -toughness=4 -[/card] -[card] name=Shapeshifter text=As Shapeshifter enters the battlefield, choose a number between 0 and 7. -- At the beginning of your upkeep, you may choose a number between 0 and 7. -- Shapeshifter's power is equal to the last chosen number and its toughness is equal to 7 minus that number. mana={6} diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/ATQ.txt b/projects/mtg/bin/Res/missing_cards_by_sets/ATQ.txt index 5234e017b..cbdc86215 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/ATQ.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/ATQ.txt @@ -63,15 +63,6 @@ power=5 toughness=5 [/card] [card] -name=Urza's Avenger -text={0}: Urza's Avenger gets -1/-1 and gains your choice of banding, flying, first strike, or trample until end of turn. (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) -mana={6} -type=Artifact Creature -subtype=Shapeshifter -power=4 -toughness=4 -[/card] -[card] name=Tawnos's Coffin text=You may choose not to untap Tawnos's Coffin during your untap step. -- {3}, {T}: Exile target creature and all Auras attached to it. Note the number and kind of counters that were on that creature. When Tawnos's Coffin leaves the battlefield or becomes untapped, return the exiled card to the battlefield under its owner's control tapped with the noted number and kind of counters on it, and if you do, return the exiled Aura cards to the battlefield under their owner's control attached to that permanent. mana={4} diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/BFZ.txt b/projects/mtg/bin/Res/missing_cards_by_sets/BFZ.txt index 58b0d206a..8a12d1891 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/BFZ.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/BFZ.txt @@ -1,22 +1,4 @@ [card] -name=Brutal Expulsion -text=Devoid (This card has no color.) -- Choose one or both -- Return target spell or creature to its owner's hand. -- Brutal Expulsion deals 2 damage to target creature or planeswalker. If that permanent would be put into a graveyard this turn, exile it instead. -mana={2}{U}{R} -type=Instant -[/card] -[card] -name=Serpentine Spike -text=Devoid (This card has no color.) -- Serpentine Spike deals 2 damage to target creature, 3 damage to another target creature, and 4 damage to a third target creature. If a creature dealt damage this way would die this turn, exile it instead. -mana={5}{R}{R} -type=Sorcery -[/card] -[card] -name=Titan's Presence -text=As an additional cost to cast Titan's Presence, reveal a colorless creature card from your hand. -- Exile target creature if its power is less than or equal to the revealed card's power. -mana={3} -type=Instant -[/card] -[card] name=Zada, Hedron Grinder text=Whenever you cast an instant or sorcery spell that targets only Zada, Hedron Grinder, copy that spell for each other creature you control that the spell could target. Each copy targets a different one of those creatures. mana={3}{R} diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/CMR.txt b/projects/mtg/bin/Res/missing_cards_by_sets/CMR.txt index 6dd020d61..d1f3e3172 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/CMR.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/CMR.txt @@ -8,15 +8,6 @@ power=2 toughness=4 [/card] [card] -name=Rakdos, Lord of Riots -text=You can't cast Rakdos, Lord of Riots unless an opponent lost life this turn. -- Flying, trample -- Creature spells you cast cost {1} less to cast for each 1 life your opponents have lost this turn. -mana={B}{B}{R}{R} -type=Legendary Creature -subtype=Demon -power=6 -toughness=6 -[/card] -[card] name=Marath, Will of the Wild text=Marath, Will of the Wild enters the battlefield with a number of +1/+1 counters on it equal to the amount of mana spent to cast it. -- {X}, Remove X +1/+1 counters from Marath: Choose one -- Put X +1/+1 counters on target creature. X can't be 0. -- Marath deals X damage to target creature or player. X can't be 0. -- Put an X/X green Elemental creature token onto the battlefield. X can't be 0. mana={R}{G}{W} diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/DIS.txt b/projects/mtg/bin/Res/missing_cards_by_sets/DIS.txt index f822839ba..b43430c6c 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/DIS.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/DIS.txt @@ -1,11 +1,4 @@ [card] -name=Rakdos Riteknife -text=Equipped creature gets +1/+0 for each blood counter on Rakdos Riteknife and has "{T}, Sacrifice a creature: Put a blood counter on Rakdos Riteknife." -- {B}{R}, Sacrifice Rakdos Riteknife: Target player sacrifices a permanent for each blood counter on Rakdos Riteknife. -- Equip {2} -mana={2} -type=Artifact -subtype=Equipment -[/card] -[card] name=Kill-Suit Cultist text=Kill-Suit Cultist attacks each turn if able. -- {B}, Sacrifice Kill-Suit Cultist: The next time damage would be dealt to target creature this turn, destroy that creature instead. mana={R} diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/DTK.txt b/projects/mtg/bin/Res/missing_cards_by_sets/DTK.txt index 0ca060601..c8eba3719 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/DTK.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/DTK.txt @@ -24,15 +24,6 @@ power=3 toughness=3 [/card] [card] -name=Profaner of the Dead -text=Exploit (When this creature enters the battlefield, you may sacrifice a creature.) -- When Profaner of the Dead exploits a creature, return to their owners' hands all creatures your opponents control with toughness less than the exploited creature's toughness. -mana={3}{U} -type=Creature -subtype=Naga Wizard -power=3 -toughness=3 -[/card] -[card] name=Revealing Wind text=Prevent all combat damage that would be dealt this turn. You may look at each face-down creature that's attacking or blocking. mana={2}{G} diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/FUT.txt b/projects/mtg/bin/Res/missing_cards_by_sets/FUT.txt index f2341ba95..5c8770a69 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/FUT.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/FUT.txt @@ -61,15 +61,6 @@ mana={4}{U}{U} type=Sorcery [/card] [card] -name=Unblinking Bleb -text=Morph {2}{U} (You may cast this face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.) -- Whenever Unblinking Bleb or another permanent is turned face up, you may scry 2. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) -mana={3}{U} -type=Creature -subtype=Illusion -power=1 -toughness=3 -[/card] -[card] name=Bitter Ordeal text=Search target player's library for a card and exile it. Then that player shuffles his or her library. -- Gravestorm (When you cast this spell, copy it for each permanent put into a graveyard this turn. You may choose new targets for the copies.) mana={2}{B} diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/GK2.txt b/projects/mtg/bin/Res/missing_cards_by_sets/GK2.txt index 8d1492cec..9ed71f9fb 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/GK2.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/GK2.txt @@ -35,12 +35,3 @@ subtype=Ooze Mutant power=4 toughness=6 [/card] -[card] -name=Rakdos, Lord of Riots -text=You can't cast Rakdos, Lord of Riots unless an opponent lost life this turn. -- Flying, trample -- Creature spells you cast cost {1} less to cast for each 1 life your opponents have lost this turn. -mana={B}{B}{R}{R} -type=Legendary Creature -subtype=Demon -power=6 -toughness=6 -[/card] diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/PCY.txt b/projects/mtg/bin/Res/missing_cards_by_sets/PCY.txt index 906a0cf9b..7bad3996f 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/PCY.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/PCY.txt @@ -14,12 +14,6 @@ mana={R} type=Enchantment [/card] [card] -name=Psychic Theft -text=Target player reveals his or her hand. You choose an instant or sorcery card from it and exile that card. You may cast that card for as long as it remains exiled. At the beginning of the next end step, if you haven't cast the card, return it to its owner's hand. -mana={1}{U} -type=Sorcery -[/card] -[card] name=Search for Survivors text=Reorder your graveyard at random. An opponent chooses a card at random in your graveyard. If it's a creature card, put it onto the battlefield. Otherwise, exile it. mana={2}{R} diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/RTR.txt b/projects/mtg/bin/Res/missing_cards_by_sets/RTR.txt index f4da240dc..8cdfc189d 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/RTR.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/RTR.txt @@ -23,15 +23,6 @@ mana={5}{R} type=Enchantment [/card] [card] -name=Rakdos, Lord of Riots -text=You can't cast Rakdos, Lord of Riots unless an opponent lost life this turn. -- Flying, trample -- Creature spells you cast cost {1} less to cast for each 1 life your opponents have lost this turn. -mana={B}{B}{R}{R} -type=Legendary Creature -subtype=Demon -power=6 -toughness=6 -[/card] -[card] name=Tablet of the Guilds text=As Tablet of the Guilds enters the battlefield, choose two colors. -- Whenever you cast a spell, if it's at least one of the chosen colors, you gain 1 life for each of the chosen colors it is. mana={2} diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/SOK.txt b/projects/mtg/bin/Res/missing_cards_by_sets/SOK.txt index 28773d407..992ba093c 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/SOK.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/SOK.txt @@ -13,15 +13,6 @@ type=Sorcery subtype=Arcane [/card] [card] -name=Rushing-Tide Zubera -text=When Rushing-Tide Zubera dies, if 4 or more damage was dealt to it this turn, draw three cards. -mana={2}{U}{U} -type=Creature -subtype=Zubera Spirit -power=3 -toughness=3 -[/card] -[card] name=Sakashima the Impostor text=You may have Sakashima the Impostor enter the battlefield as a copy of any creature on the battlefield, except its name is still Sakashima the Impostor, it's legendary in addition to its other types, and it gains "{2}{U}{U}: Return Sakashima the Impostor to its owner's hand at the beginning of the next end step." mana={2}{U}{U} diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index 062887280..8fb5e8c27 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -8689,6 +8689,15 @@ power=2 toughness=2 [/card] [card] +name=Brutal Expulsion +abilities=devoid +auto=ability$!name(Choose one) choice name(Return creature) target(creature) moveto(ownerhand) _ choice name(Return spell) target(*|stack) fizzleto(hand) _ choice name(Don't return anything) donothing!$ controller +auto=ability$!may name(Deal 2 damage) target(creature,planeswalker) transforms((,newability[exiledeath],newability[damage:2])) ueot!$ controller +text=Devoid (This card has no color.) -- Choose one or both -- Return target spell or creature to its owner's hand. -- Brutal Expulsion deals 2 damage to target creature or planeswalker. If that permanent would be put into a graveyard this turn, exile it instead. +mana={2}{U}{R} +type=Instant +[/card] +[card] name=Brutal Hordechief auto=@combat(attacking) source(creature|myBattlefield):life:-1 opponent && life:1 controller auto={3}{RW}{RW}:target(creature|opponentbattlefield) mustblock ueot all(other creature) cantblock ueot @@ -51542,6 +51551,16 @@ type=Sorcery color=black [/card] [card] +name=Profaner of the Dead +auto=may name(Exploit) target(creature|mybattlefield) sacrifice and!( transforms((,newability[name(Return creatures) all(creature[toughness<=tminus1minusend]|opponentbattlefield) moveto(ownerhand)])) oneshot )! +text=Exploit (When this creature enters the battlefield, you may sacrifice a creature.) -- When Profaner of the Dead exploits a creature, return to their owners' hands all creatures your opponents control with toughness less than the exploited creature's toughness. +mana={3}{U} +type=Creature +subtype=Naga Wizard +power=3 +toughness=3 +[/card] +[card] name=Professor of Symbology auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot text=When Professor of Symbology enters the battlefield, learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) @@ -51931,6 +51950,15 @@ power=3 toughness=3 [/card] [card] +name=Psychic Theft +target=player +auto=if type(*[instant;sorcery]|targetedpersonshand)~morethan~0 then name(Exile a card) name(Exile a card) target(*[instant;sorcery]|targetedpersonshand) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[phaseaction[endofturn once checkex] moveto(ownerhand)])) ueot )! +auto=if type(*[instant;sorcery]|targetedpersonshand)~equalto~0 then name(Reveal hand) name(Reveal hand) target(*|targetedpersonshand) moveto(myreveal) and!( moveto(targetedpersonshand) )! +text=Target player reveals his or her hand. You choose an instant or sorcery card from it and exile that card. You may cast that card for as long as it remains exiled. At the beginning of the next end step, if you haven't cast the card, return it to its owner's hand. +mana={1}{U} +type=Sorcery +[/card] +[card] name=Psychic Transfer auto=if compare(lifetotalminusopponentlifetotalminusend)~morethan~4 then exchangelife opponent else if compare(opponentlifetotalminuslifetotalminusend)~morethan~4 then exchangelife opponent text=If the difference between your life total and target player's life total is 5 or less, exchange life totals with that player. @@ -52965,6 +52993,49 @@ mana={3} type=Artifact [/card] [card] +name=Rakdos, Lord of Riots +abilities=flying,trample +restriction=compare(oplifelost)~morethan~0 +auto=lord(creature|myhand,myCommandzone,mygraveyard,myexile) transforms((,newability[thisforeach(variable{oplifelost}>0) changecost(colorless:-1)])) +text=You can't cast Rakdos, Lord of Riots unless an opponent lost life this turn. -- Flying, trample -- Creature spells you cast cost {1} less to cast for each 1 life your opponents have lost this turn. +mana={B}{B}{R}{R} +type=Legendary Creature +subtype=Demon +power=6 +toughness=6 +[/card] +[card] +name=Rakdos Riteknife +auto={2}:equip +auto=teach(creature) transforms((,newability[{T}{S(creature|myBattlefield)}:name(Put a blood counter) target(Rakdos Riteknife[attached]|mybattlefield) counter(0/0.1.Blood)])) +auto=thisforeach(variable{hascntblood}>0) teach(creature) 1/0 +auto=thisforeach(variable{halfdownhascntblood}>0) teach(creature) -1/0 +auto=this(variable{hascntblood}=1) {B}{R}{S}:name(Player sacrifices permanents) target(player) ability$!name(Sacrifice 1 permanent) name(Sacrifice 1 permanent) target(*|mybattlefield) sacrifice!$ targetedplayer +auto=this(variable{hascntblood}=2) {B}{R}{S}:name(Player sacrifices permanents) target(player) ability$!name(Sacrifice 2 permanents) name(Sacrifice 2 permanents) target(<2>*|mybattlefield) sacrifice!$ targetedplayer +auto=this(variable{hascntblood}=3) {B}{R}{S}:name(Player sacrifices permanents) target(player) ability$!name(Sacrifice 3 permanents) name(Sacrifice 3 permanents) target(<3>*|mybattlefield) sacrifice!$ targetedplayer +auto=this(variable{hascntblood}=4) {B}{R}{S}:name(Player sacrifices permanents) target(player) ability$!name(Sacrifice 4 permanents) name(Sacrifice 4 permanents) target(<4>*|mybattlefield) sacrifice!$ targetedplayer +auto=this(variable{hascntblood}=5) {B}{R}{S}:name(Player sacrifices permanents) target(player) ability$!name(Sacrifice 5 permanents) name(Sacrifice 5 permanents) target(<5>*|mybattlefield) sacrifice!$ targetedplayer +auto=this(variable{hascntblood}=6) {B}{R}{S}:name(Player sacrifices permanents) target(player) ability$!name(Sacrifice 6 permanents) name(Sacrifice 6 permanents) target(<6>*|mybattlefield) sacrifice!$ targetedplayer +auto=this(variable{hascntblood}=7) {B}{R}{S}:name(Player sacrifices permanents) target(player) ability$!name(Sacrifice 7 permanents) name(Sacrifice 7 permanents) target(<7>*|mybattlefield) sacrifice!$ targetedplayer +auto=this(variable{hascntblood}=8) {B}{R}{S}:name(Player sacrifices permanents) target(player) ability$!name(Sacrifice 8 permanents) name(Sacrifice 8 permanents) target(<8>*|mybattlefield) sacrifice!$ targetedplayer +auto=this(variable{hascntblood}=9) {B}{R}{S}:name(Player sacrifices permanents) target(player) ability$!name(Sacrifice 9 permanents) name(Sacrifice 9 permanents) target(<9>*|mybattlefield) sacrifice!$ targetedplayer +auto=this(variable{hascntblood}=10) {B}{R}{S}:name(Player sacrifices permanents) target(player) ability$!name(Sacrifice 10 permanents) name(Sacrifice 10 permanents) target(<10>*|mybattlefield) sacrifice!$ targetedplayer +auto=this(variable{hascntblood}=11) {B}{R}{S}:name(Player sacrifices permanents) target(player) ability$!name(Sacrifice 11 permanents) name(Sacrifice 11 permanents) target(<11>*|mybattlefield) sacrifice!$ targetedplayer +auto=this(variable{hascntblood}=12) {B}{R}{S}:name(Player sacrifices permanents) target(player) ability$!name(Sacrifice 12 permanents) name(Sacrifice 12 permanents) target(<12>*|mybattlefield) sacrifice!$ targetedplayer +auto=this(variable{hascntblood}=13) {B}{R}{S}:name(Player sacrifices permanents) target(player) ability$!name(Sacrifice 13 permanents) name(Sacrifice 13 permanents) target(<13>*|mybattlefield) sacrifice!$ targetedplayer +auto=this(variable{hascntblood}=14) {B}{R}{S}:name(Player sacrifices permanents) target(player) ability$!name(Sacrifice 14 permanents) name(Sacrifice 14 permanents) target(<14>*|mybattlefield) sacrifice!$ targetedplayer +auto=this(variable{hascntblood}=15) {B}{R}{S}:name(Player sacrifices permanents) target(player) ability$!name(Sacrifice 15 permanents) name(Sacrifice 15 permanents) target(<15>*|mybattlefield) sacrifice!$ targetedplayer +auto=this(variable{hascntblood}=16) {B}{R}{S}:name(Player sacrifices permanents) target(player) ability$!name(Sacrifice 16 permanents) name(Sacrifice 16 permanents) target(<16>*|mybattlefield) sacrifice!$ targetedplayer +auto=this(variable{hascntblood}=17) {B}{R}{S}:name(Player sacrifices permanents) target(player) ability$!name(Sacrifice 17 permanents) name(Sacrifice 17 permanents) target(<17>*|mybattlefield) sacrifice!$ targetedplayer +auto=this(variable{hascntblood}=18) {B}{R}{S}:name(Player sacrifices permanents) target(player) ability$!name(Sacrifice 18 permanents) name(Sacrifice 18 permanents) target(<18>*|mybattlefield) sacrifice!$ targetedplayer +auto=this(variable{hascntblood}=19) {B}{R}{S}:name(Player sacrifices permanents) target(player) ability$!name(Sacrifice 19 permanents) name(Sacrifice 19 permanents) target(<19>*|mybattlefield) sacrifice!$ targetedplayer +auto=this(variable{hascntblood}>=20) {B}{R}{S}:name(Player sacrifices permanents) target(player) ability$!name(Sacrifice 20 permanents) name(Sacrifice 20 permanents) target(<20>*|mybattlefield) sacrifice!$ targetedplayer +text=Equipped creature gets +1/+0 for each blood counter on Rakdos Riteknife and has "{T}, Sacrifice a creature: Put a blood counter on Rakdos Riteknife." -- {B}{R}, Sacrifice Rakdos Riteknife: Target player sacrifices a permanent for each blood counter on Rakdos Riteknife. -- Equip {2} +mana={2} +type=Artifact +subtype=Equipment +[/card] +[card] name=Rakdos Roustabout auto=_BLOCKED_damage:1 opponent text=Whenever Rakdos Roustabout becomes blocked, it deals 1 damage to the player or planeswalker it's attacking. @@ -57028,6 +57099,16 @@ mana={B}{G} type=Instant [/card] [card] +name=Rushing-Tide Zubera +auto=@damaged(this) restriction{compare(excessdamage)~morethan~0}:name(Draw 3 card) draw:3 controller +text=When Rushing-Tide Zubera dies, if 4 or more damage was dealt to it this turn, draw three cards. +mana={2}{U}{U} +type=Creature +subtype=Zubera Spirit +power=3 +toughness=3 +[/card] +[card] name=Rust Monster abilities=first strike auto={S(artifact|mybattlefield)}:name(Gets 2/0) 2/0 ueot @@ -59711,6 +59792,18 @@ mana={3}{U} type=Sorcery [/card] [card] +name=Serpentine Spike +target=creature +abilities=devoid +auto=exiledeath +auto=damage:2 +auto=ability$!name(Deal 3 damage) name(Deal 3 damage) target(creature) transforms((,newability[exiledeath],newability[damage:3])) ueot!$ controller +auto=ability$!name(Deal 4 damage) name(Deal 4 damage) target(creature) transforms((,newability[exiledeath],newability[damage:4])) ueot!$ controller +text=Devoid (This card has no color.) -- Serpentine Spike deals 2 damage to target creature, 3 damage to another target creature, and 4 damage to a third target creature. If a creature dealt damage this way would die this turn, exile it instead. +mana={5}{R}{R} +type=Sorcery +[/card] +[card] name=Serra Disciple abilities=flying, first strike auto=@movedTo(*[artifact;legendary;saga]|mystack):+1/+1 ueot @@ -71210,6 +71303,33 @@ power=4 toughness=5 [/card] [card] +name=Titan's Presence +auto=if type(*[colorless&power=0]|myhand)~morethan~0 then choice name(Reveal creature with power 0) name(Reveal creature with power 0) target(creature[power<=0]) moveto(exile) +auto=if type(*[colorless&power=1]|myhand)~morethan~0 then choice name(Reveal creature with power 1) name(Reveal creature with power 1) target(creature[power<=1]) moveto(exile) +auto=if type(*[colorless&power=2]|myhand)~morethan~0 then choice name(Reveal creature with power 2) name(Reveal creature with power 2) target(creature[power<=2]) moveto(exile) +auto=if type(*[colorless&power=3]|myhand)~morethan~0 then choice name(Reveal creature with power 3) name(Reveal creature with power 3) target(creature[power<=3]) moveto(exile) +auto=if type(*[colorless&power=4]|myhand)~morethan~0 then choice name(Reveal creature with power 4) name(Reveal creature with power 4) target(creature[power<=4]) moveto(exile) +auto=if type(*[colorless&power=5]|myhand)~morethan~0 then choice name(Reveal creature with power 5) name(Reveal creature with power 5) target(creature[power<=5]) moveto(exile) +auto=if type(*[colorless&power=6]|myhand)~morethan~0 then choice name(Reveal creature with power 6) name(Reveal creature with power 6) target(creature[power<=6]) moveto(exile) +auto=if type(*[colorless&power=7]|myhand)~morethan~0 then choice name(Reveal creature with power 7) name(Reveal creature with power 7) target(creature[power<=7]) moveto(exile) +auto=if type(*[colorless&power=8]|myhand)~morethan~0 then choice name(Reveal creature with power 8) name(Reveal creature with power 8) target(creature[power<=8]) moveto(exile) +auto=if type(*[colorless&power=9]|myhand)~morethan~0 then choice name(Reveal creature with power 9) name(Reveal creature with power 9) target(creature[power<=9]) moveto(exile) +auto=if type(*[colorless&power=10]|myhand)~morethan~0 then choice name(Reveal creature with power 10) name(Reveal creature with power 10) target(creature[power<=10]) moveto(exile) +auto=if type(*[colorless&power=11]|myhand)~morethan~0 then choice name(Reveal creature with power 11) name(Reveal creature with power 11) target(creature[power<=11]) moveto(exile) +auto=if type(*[colorless&power=12]|myhand)~morethan~0 then choice name(Reveal creature with power 12) name(Reveal creature with power 12) target(creature[power<=12]) moveto(exile) +auto=if type(*[colorless&power=13]|myhand)~morethan~0 then choice name(Reveal creature with power 13) name(Reveal creature with power 13) target(creature[power<=13]) moveto(exile) +auto=if type(*[colorless&power=14]|myhand)~morethan~0 then choice name(Reveal creature with power 14) name(Reveal creature with power 14) target(creature[power<=14]) moveto(exile) +auto=if type(*[colorless&power=15]|myhand)~morethan~0 then choice name(Reveal creature with power 15) name(Reveal creature with power 15) target(creature[power<=15]) moveto(exile) +auto=if type(*[colorless&power=16]|myhand)~morethan~0 then choice name(Reveal creature with power 16) name(Reveal creature with power 16) target(creature[power<=16]) moveto(exile) +auto=if type(*[colorless&power=17]|myhand)~morethan~0 then choice name(Reveal creature with power 17) name(Reveal creature with power 17) target(creature[power<=17]) moveto(exile) +auto=if type(*[colorless&power=18]|myhand)~morethan~0 then choice name(Reveal creature with power 18) name(Reveal creature with power 18) target(creature[power<=18]) moveto(exile) +auto=if type(*[colorless&power=19]|myhand)~morethan~0 then choice name(Reveal creature with power 19) name(Reveal creature with power 19) target(creature[power<=19]) moveto(exile) +auto=if type(*[colorless&power>=20]|myhand)~morethan~0 then choice name(Reveal creature with power 20) name(Reveal creature with power 20) target(creature[power<=20]) moveto(exile) +text=As an additional cost to cast Titan's Presence, reveal a colorless creature card from your hand. -- Exile target creature if its power is less than or equal to the revealed card's power. +mana={3} +type=Instant +[/card] +[card] name=Titania's Song auto=lord(artifact[-creature]) transforms((creature,noactivatedability,newability[manacost/manacost])) auto=_DIES_all(artifact[-creature]|myBattlefield) transforms((creature,noactivatedability,newability[manacost/manacost])) ueot @@ -73169,6 +73289,19 @@ mana={1}{B} type=Instant [/card] [card] +name=Unblinking Bleb +facedown={3} +autofacedown={2}{U}:morph +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot +autofaceup=may name(Scry 2) scry:2 scrycore delayed dontshow donothing scrycoreend scryend +text=Morph {2}{U} (You may cast this face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.) -- Whenever Unblinking Bleb or another permanent is turned face up, you may scry 2. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) +mana={3}{U} +type=Creature +subtype=Illusion +power=1 +toughness=3 +[/card] +[card] name=Unblinking Observer auto=this(variable{type:*[hasdisturb]:mygraveyard}>0) {T}:add{U} auto=this(variable{type:*[instant;sorcery]:myhand}>0) {T}:add{R} @@ -73821,6 +73954,19 @@ mana={6} type=Artifact [/card] [card] +name=Urza's Avenger +#Banding ability not available ATM. +auto={0}:name(Gain flying) transforms(,newability[flying],newability[-1/-1])) ueot +auto={0}:name(Gain first strike) transforms(,newability[first strike],newability[-1/-1])) ueot +auto={0}:name(Gain trample) transforms(,newability[trample],newability[-1/-1])) ueot +text={0}: Urza's Avenger gets -1/-1 and gains your choice of banding, flying, first strike, or trample until end of turn. (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) +mana={6} +type=Artifact Creature +subtype=Shapeshifter +power=4 +toughness=4 +[/card] +[card] name=Urza's Bauble aicode=name(look) activate name(look) phaseaction[upkeep once] draw:1 controller auto={T}{S}:target(player) reveal:1 revealzone(opponenthand) optionone name(Look a card) target(<1>*|reveal) moveto(ownerhand) optiononeend afterrevealed transforms((,newability[phaseaction[upkeep once] draw:1 controller])) oneshot afterrevealedend revealend diff --git a/projects/mtg/bin/Res/sets/primitives/unsupported.txt b/projects/mtg/bin/Res/sets/primitives/unsupported.txt index 3d2a71d2f..3e52b152a 100644 --- a/projects/mtg/bin/Res/sets/primitives/unsupported.txt +++ b/projects/mtg/bin/Res/sets/primitives/unsupported.txt @@ -1136,12 +1136,6 @@ power=2 toughness=3 [/card] [card] -name=Brutal Expulsion -text=Devoid (This card has no color.) -- Choose one or both -- Return target spell or creature to its owner's hand. -- Brutal Expulsion deals 2 damage to target creature or planeswalker. If that permanent would be put into a graveyard this turn, exile it instead. -mana={2}{U}{R} -type=Instant -[/card] -[card] name=Brutal Suppression text=Activated abilities of nontoken Rebels cost an additional "Sacrifice a land" to activate. mana={R} @@ -7815,15 +7809,6 @@ mana={W} type=Sorcery [/card] [card] -name=Profaner of the Dead -text=Exploit (When this creature enters the battlefield, you may sacrifice a creature.) -- When Profaner of the Dead exploits a creature, return to their owners' hands all creatures your opponents control with toughness less than the exploited creature's toughness. -mana={3}{U} -type=Creature -subtype=Naga Wizard -power=3 -toughness=3 -[/card] -[card] name=Proper Laboratory Attire text=Equipped creature gets +2/+1 and has protection from die rolls. (Nothing that lets a player roll a die can block, target, deal damage to, or attach to equipped creature.) -- Equip {2} mana={1} @@ -7877,12 +7862,6 @@ mana={1}{U} type=Instant [/card] [card] -name=Psychic Theft -text=Target player reveals his or her hand. You choose an instant or sorcery card from it and exile that card. You may cast that card for as long as it remains exiled. At the beginning of the next end step, if you haven't cast the card, return it to its owner's hand. -mana={1}{U} -type=Sorcery -[/card] -[card] name=Puca's Mischief text=At the beginning of your upkeep, you may exchange control of target nonland permanent you control and target nonland permanent an opponent controls with an equal or lesser converted mana cost. mana={3}{U} @@ -8052,22 +8031,6 @@ mana={2}{R} type=Enchantment [/card] [card] -name=Rakdos Riteknife -text=Equipped creature gets +1/+0 for each blood counter on Rakdos Riteknife and has "{T}, Sacrifice a creature: Put a blood counter on Rakdos Riteknife." -- {B}{R}, Sacrifice Rakdos Riteknife: Target player sacrifices a permanent for each blood counter on Rakdos Riteknife. -- Equip {2} -mana={2} -type=Artifact -subtype=Equipment -[/card] -[card] -name=Rakdos, Lord of Riots -text=You can't cast Rakdos, Lord of Riots unless an opponent lost life this turn. -- Flying, trample -- Creature spells you cast cost {1} less to cast for each 1 life your opponents have lost this turn. -mana={B}{B}{R}{R} -type=Legendary Creature -subtype=Demon -power=6 -toughness=6 -[/card] -[card] name=Rally the Horde text=Exile the top card of your library. Exile the top card of your library. Exile the top card of your library. If the last card exiled isn't a land, repeat this process. Put a 1/1 red Warrior creature token onto the battlefield for each nonland card exiled this way. mana={5}{R} @@ -8511,15 +8474,6 @@ power=2 toughness=5 [/card] [card] -name=Rushing-Tide Zubera -text=When Rushing-Tide Zubera dies, if 4 or more damage was dealt to it this turn, draw three cards. -mana={2}{U}{U} -type=Creature -subtype=Zubera Spirit -power=3 -toughness=3 -[/card] -[card] name=Rust text=Counter target activated ability from an artifact source. (Mana abilities can't be targeted.) mana={G} @@ -8816,12 +8770,6 @@ power=+3 toughness=+3 [/card] [card] -name=Serpentine Spike -text=Devoid (This card has no color.) -- Serpentine Spike deals 2 damage to target creature, 3 damage to another target creature, and 4 damage to a third target creature. If a creature dealt damage this way would die this turn, exile it instead. -mana={5}{R}{R} -type=Sorcery -[/card] -[card] name=Serra's Hymn text=At the beginning of your upkeep, you may put a verse counter on Serra's Hymn. -- Sacrifice Serra's Hymn: Prevent the next X damage that would be dealt this turn to any number of target creatures and/or players, divided as you choose, where X is the number of verse counters on Serra's Hymn. mana={W} @@ -10739,12 +10687,6 @@ power=1 toughness=1 [/card] [card] -name=Titan's Presence -text=As an additional cost to cast Titan's Presence, reveal a colorless creature card from your hand. -- Exile target creature if its power is less than or equal to the revealed card's power. -mana={3} -type=Instant -[/card] -[card] name=Titan's Revenge text=Titan's Revenge deals X damage to target creature or player. Clash with an opponent. If you win, return Titan's Revenge to its owner's hand. (Each clashing player reveals the top card of his or her library, then puts that card on the top or bottom. A player wins if his or her card had a higher converted mana cost.) mana={X}{R}{R} @@ -11009,15 +10951,6 @@ power=4 toughness=5 [/card] [card] -name=Unblinking Bleb -text=Morph {2}{U} (You may cast this face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.) -- Whenever Unblinking Bleb or another permanent is turned face up, you may scry 2. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) -mana={3}{U} -type=Creature -subtype=Illusion -power=1 -toughness=3 -[/card] -[card] name=Unbound Flourishing text=Whenever you cast a permanent spell with a mana cost that contains {X}, double the value of X. -- Whenever you cast an instant or sorcery spell or activate an ability, if that spell's mana cost or that ability's activation cost contains {X}, copy that spell or ability. You may choose new targets for the copy. mana={2}{G} @@ -11052,15 +10985,6 @@ mana={3}{R}{R} type=Enchantment [/card] [card] -name=Urza's Avenger -text={0}: Urza's Avenger gets -1/-1 and gains your choice of banding, flying, first strike, or trample until end of turn. (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) -mana={6} -type=Artifact Creature -subtype=Shapeshifter -power=4 -toughness=4 -[/card] -[card] name=Urza's Contact Lenses text=Urza's Contact Lenses comes into play tapped and does not untap during its controller's untap phase. -- All players play with their hands face up. -- Clap your hands twice: Tap or untap Urza's Contact Lenses. mana={0}