mirror of
https://github.com/correl/mage.git
synced 2024-12-25 11:11:16 +00:00
Merge branch 'master' into pyre
This commit is contained in:
commit
2f04b28a3d
15 changed files with 970 additions and 2 deletions
|
@ -0,0 +1,91 @@
|
|||
1 [C20:114] Jace, Architect of Thought
|
||||
1 [C20:18] Xyris, the Writhing Storm
|
||||
1 [C20:2] Haldan, Avid Arcanist
|
||||
1 [C20:13] Pako, Arcane Retriever
|
||||
1 [C20:33] Eon Frolicker
|
||||
1 [C20:36] Nascent Metamorph
|
||||
1 [C20:60] Glademuse
|
||||
1 [C20:63] Ravenous Gigantotherium
|
||||
1 [C20:115] Lunar Mystic
|
||||
1 [C20:120] Niblis of Frost
|
||||
1 [C20:125] Talrand, Sky Summoner
|
||||
1 [C20:147] Charmbreaker Devils
|
||||
1 [C20:150] Dualcaster Mage
|
||||
1 [C20:151] Etali, Primal Storm
|
||||
1 [C20:153] Goblin Dark-Dwellers
|
||||
1 [C20:210] Djinn Illuminatus
|
||||
1 [C20:220] Melek, Izzet Paragon
|
||||
1 [C20:229] Rashmi, Eternities Crafter
|
||||
1 [C20:234] Wort, the Raidmother
|
||||
1 [C20:253] Solemn Simulacrum
|
||||
1 [C20:118] Murmuring Mystic
|
||||
1 [C20:206] Crackling Drake
|
||||
1 [C20:161] Surreal Memoir
|
||||
1 [C20:32] Decoy Gambit
|
||||
1 [C20:50] Deflecting Swat
|
||||
1 [C20:59] Curious Herd
|
||||
1 [C20:146] Chaos Warp
|
||||
1 [C20:148] Comet Storm
|
||||
1 [C20:149] Commune with Lava
|
||||
1 [C20:160] Starstorm
|
||||
1 [C20:192] Strength of the Tajuru
|
||||
1 [C20:203] Artifact Mutation
|
||||
1 [C20:227] Prophetic Bolt
|
||||
1 [IKO:111] Clash of Titans
|
||||
1 [IKO:180] Channeled Force
|
||||
1 [C20:108] Chemister's Insight
|
||||
1 [C20:111] Frantic Search
|
||||
1 [C20:127] Whiplash Trap
|
||||
1 [C20:169] Crop Rotation
|
||||
1 [C20:171] Evolution Charm
|
||||
1 [C20:174] Harrow
|
||||
1 [C20:178] Hunter's Insight
|
||||
1 [C20:179] Hunting Pack
|
||||
1 [C20:184] Natural Connection
|
||||
1 [C20:190] Slice in Twain
|
||||
1 [C20:193] Tribute to the Wild
|
||||
1 [C20:216] Growth Spiral
|
||||
1 [C20:230] Temur Charm
|
||||
1 [C20:53] Lavabrink Floodgates
|
||||
1 [C20:70] Twinning Staff
|
||||
1 [C20:67] Bonder's Ornament
|
||||
1 [C20:237] Arcane Signet
|
||||
1 [C20:240] Commander's Sphere
|
||||
1 [C20:245] Lightning Greaves
|
||||
1 [C20:252] Sol Ring
|
||||
1 [C20:124] Swarm Intelligence
|
||||
1 [IKO:200] Primal Empathy
|
||||
1 [C20:62] Predatory Impetus
|
||||
1 [C20:37] Psychic Impetus
|
||||
1 [C20:55] Shiny Impetus
|
||||
1 [C20:196] Wilderness Reclamation
|
||||
1 [C20:263] Cinder Glade
|
||||
1 [C20:269] Desolate Lighthouse
|
||||
1 [C20:273] Exotic Orchard
|
||||
1 [C20:284] Kessig Wolf Run
|
||||
1 [C20:290] Mossfire Valley
|
||||
1 [C20:291] Mosswort Bridge
|
||||
1 [C20:296] Oran-Rief, the Vastwood
|
||||
1 [C20:306] Scavenger Grounds
|
||||
1 [C20:322] Yavimaya Coast
|
||||
1 [C20:264] Command Tower
|
||||
1 [C20:275] Frontier Bivouac
|
||||
1 [C20:279] Gruul Turf
|
||||
1 [C20:280] Halimar Depths
|
||||
1 [C20:283] Izzet Boilerworks
|
||||
1 [C20:292] Myriad Landscape
|
||||
1 [C20:304] Rupture Spire
|
||||
1 [C20:311] Simic Growth Chamber
|
||||
1 [IKO:252] Rugged Highlands
|
||||
1 [IKO:255] Swiftwater Cliffs
|
||||
1 [IKO:256] Thornwood Falls
|
||||
5 [IKO:274] Forest
|
||||
2 [IKO:273] Forest
|
||||
1 [IKO:272] Forest
|
||||
3 [IKO:265] Island
|
||||
1 [IKO:263] Island
|
||||
1 [IKO:264] Island
|
||||
2 [IKO:269] Mountain
|
||||
2 [IKO:270] Mountain
|
||||
1 [IKO:271] Mountain
|
||||
SB: 1 [C20:9] Kalamax, the Stormsire
|
|
@ -0,0 +1,93 @@
|
|||
1 [C20:223] Nahiri, the Harbinger
|
||||
1 [C20:11] Kelsien, the Plague
|
||||
1 [C20:15] Silvar, Devourer of the Free
|
||||
1 [C20:1] Trynn, Champion of Freedom
|
||||
1 [C20:29] Verge Rangers
|
||||
1 [C20:47] Species Specialist
|
||||
1 [C20:48] Titan Hunter
|
||||
1 [C20:51] Fireflux Squad
|
||||
1 [C20:52] Frontier Warmonger
|
||||
1 [C20:78] Bounty Agent
|
||||
1 [C20:84] Dearly Departed
|
||||
1 [C20:89] Frontline Medic
|
||||
1 [C20:93] Knight of the White Orchid
|
||||
1 [C20:94] Magus of the Disk
|
||||
1 [C20:96] Odric, Master Tactician
|
||||
1 [C20:98] Riders of Gavony
|
||||
1 [C20:103] Thalia's Lieutenant
|
||||
1 [C20:104] Thraben Doomsayer
|
||||
1 [C20:132] Disciple of Bolas
|
||||
1 [C20:141] Xathrid Necromancer
|
||||
1 [C20:143] Alesha, Who Smiles at Death
|
||||
1 [C20:144] Captivating Crew
|
||||
1 [C20:152] Fumiko the Lowblood
|
||||
1 [C20:156] Magus of the Wheel
|
||||
1 [C20:163] Titan of Eternal Fire
|
||||
1 [C20:200] Adriana, Captain of the Guard
|
||||
1 [IKO:188] General's Enforcer
|
||||
1 [C20:77] Banisher Priest
|
||||
1 [C20:81] Cavalry Pegasus
|
||||
1 [C20:87] Devout Chaplain
|
||||
1 [C20:142] Zulaport Cutthroat
|
||||
1 [C20:154] Humble Defector
|
||||
1 [C20:213] Garna, the Bloodflame
|
||||
1 [C20:82] Citywide Bust
|
||||
1 [C20:83] Cleansing Nova
|
||||
1 [C20:91] Increasing Devotion
|
||||
1 [C20:134] Painful Truths
|
||||
1 [C20:129] Ambition's Cost
|
||||
1 [C20:23] Call the Coppercoats
|
||||
1 [C20:26] Flawless Maneuver
|
||||
1 [C20:106] Unexpectedly Absent
|
||||
1 [C20:205] Crackling Doom
|
||||
1 [IKO:183] Dire Tactics
|
||||
1 [C20:231] Terminate
|
||||
1 [C20:69] Sanctuary Blade
|
||||
1 [C20:67] Bonder's Ornament
|
||||
1 [C20:237] Arcane Signet
|
||||
1 [C20:239] Boros Signet
|
||||
1 [C20:247] Orzhov Signet
|
||||
1 [C20:249] Rakdos Signet
|
||||
1 [C20:240] Commander's Sphere
|
||||
1 [C20:242] Heirloom Blade
|
||||
1 [C20:251] Skullclamp
|
||||
1 [C20:252] Sol Ring
|
||||
1 [C20:54] Molten Echoes
|
||||
1 [C20:157] Outpost Siege
|
||||
1 [C20:158] Shared Animosity
|
||||
1 [IKO:28] Sanctuary Lockdown
|
||||
1 [IKO:73] Bastion of Remembrance
|
||||
1 [C20:28] Martial Impetus
|
||||
1 [C20:46] Parasitic Impetus
|
||||
1 [C20:55] Shiny Impetus
|
||||
1 [C20:164] Vigilante Justice
|
||||
1 [C20:257] Battlefield Forge
|
||||
1 [C20:273] Exotic Orchard
|
||||
1 [C20:309] Shadowblood Ridge
|
||||
1 [C20:314] Smoldering Marsh
|
||||
1 [C20:316] Spinerock Knoll
|
||||
1 [C20:321] Windbrisk Heights
|
||||
1 [C20:259] Bojuka Bog
|
||||
1 [C20:260] Boros Garrison
|
||||
1 [C20:264] Command Tower
|
||||
1 [C20:292] Myriad Landscape
|
||||
1 [C20:294] Nomad Outpost
|
||||
1 [C20:297] Orzhov Basilica
|
||||
1 [C20:298] Path of Ancestry
|
||||
1 [C20:300] Rakdos Carnarium
|
||||
1 [C20:319] Temple of the False God
|
||||
1 [C20:320] Unclaimed Territory
|
||||
1 [IKO:243] Bloodfell Caves
|
||||
1 [IKO:247] Evolving Wilds
|
||||
1 [IKO:254] Scoured Barrens
|
||||
1 [IKO:258] Wind-Scarred Crag
|
||||
2 [IKO:271] Mountain
|
||||
1 [IKO:269] Mountain
|
||||
1 [IKO:270] Mountain
|
||||
6 [IKO:261] Plains
|
||||
1 [IKO:260] Plains
|
||||
1 [IKO:262] Plains
|
||||
2 [IKO:267] Swamp
|
||||
1 [IKO:268] Swamp
|
||||
1 [IKO:266] Swamp
|
||||
SB: 1 [C20:8] Jirina Kudro
|
|
@ -0,0 +1,89 @@
|
|||
1 [C20:201] Ajani Unyielding
|
||||
1 [C20:16] Tayam, Luminous Enigma
|
||||
1 [C20:3] Nikara, Lair Scavenger
|
||||
1 [C20:19] Yannik, Scavenging Sentinel
|
||||
1 [C20:22] Avenging Huntbonder
|
||||
1 [C20:24] Cartographer's Hawk
|
||||
1 [C20:30] Vitality Hunter
|
||||
1 [C20:41] Daring Fiendbonder
|
||||
1 [C20:66] Slippery Bogbonder
|
||||
1 [C20:73] Akroma, Angel of Wrath
|
||||
1 [C20:75] Angel of Finality
|
||||
1 [C20:80] Cataclysmic Gearhulk
|
||||
1 [C20:92] Kalemne's Captain
|
||||
1 [C20:95] Odric, Lunarch Marshal
|
||||
1 [C20:97] Reveillark
|
||||
1 [C20:99] Solemn Recruit
|
||||
1 [C20:102] Sunblast Angel
|
||||
1 [C20:107] Zetalpa, Primal Dawn
|
||||
1 [C20:130] Cairn Wanderer
|
||||
1 [C20:137] Soul of Innistrad
|
||||
1 [C20:138] Soulflayer
|
||||
1 [C20:176] Hornet Queen
|
||||
1 [C20:182] Majestic Myriarch
|
||||
1 [C20:191] Splinterfright
|
||||
1 [C20:202] Archon of Valor's Reach
|
||||
1 [C20:218] Karametra, God of Harvests
|
||||
1 [IKO:104] Void Beckoner
|
||||
1 [IKO:174] Titanoth Rex
|
||||
1 [C20:72] Aerial Responder
|
||||
1 [C20:140] Vampire Nighthawk
|
||||
1 [C20:165] Acidic Slime
|
||||
1 [C20:187] Sakura-Tribe Elder
|
||||
1 [C20:188] Satyr Wayfinder
|
||||
1 [C20:189] Skullwinder
|
||||
1 [C20:226] Nyx Weaver
|
||||
1 [C20:65] Selective Adaptation
|
||||
1 [C20:133] Ever After
|
||||
1 [C20:211] Duneblast
|
||||
1 [IKO:101] Unbreakable Bond
|
||||
1 [C20:139] Unburial Rites
|
||||
1 [C20:170] Cultivate
|
||||
1 [C20:173] Harmonize
|
||||
1 [C20:61] Obscuring Haze
|
||||
1 [IKO:75] Blood Curdle
|
||||
1 [C20:199] Abzan Charm
|
||||
1 [C20:208] Deathsprout
|
||||
1 [C20:209] Despark
|
||||
1 [C20:215] Grisly Salvage
|
||||
1 [C20:45] Netherborn Altar
|
||||
1 [C20:246] Mimic Vat
|
||||
1 [C20:67] Bonder's Ornament
|
||||
1 [C20:237] Arcane Signet
|
||||
1 [C20:240] Commander's Sphere
|
||||
1 [C20:252] Sol Ring
|
||||
1 [C20:254] Swiftfoot Boots
|
||||
1 [C20:105] Together Forever
|
||||
1 [C20:198] Abzan Ascendancy
|
||||
1 [C20:207] Deadbridge Chant
|
||||
1 [C20:28] Martial Impetus
|
||||
1 [C20:46] Parasitic Impetus
|
||||
1 [C20:62] Predatory Impetus
|
||||
1 [C20:71] Nesting Grounds
|
||||
1 [C20:261] Canopy Vista
|
||||
1 [C20:262] Caves of Koilos
|
||||
1 [C20:273] Exotic Orchard
|
||||
1 [C20:276] Gavony Township
|
||||
1 [C20:278] Grim Backwoods
|
||||
1 [C20:317] Sungrass Prairie
|
||||
1 [C20:258] Blighted Woodland
|
||||
1 [C20:264] Command Tower
|
||||
1 [C20:277] Golgari Rot Farm
|
||||
1 [C20:285] Krosan Verge
|
||||
1 [C20:288] Memorial to Folly
|
||||
1 [C20:292] Myriad Landscape
|
||||
1 [C20:297] Orzhov Basilica
|
||||
1 [C20:305] Sandsteppe Citadel
|
||||
1 [C20:308] Selesnya Sanctuary
|
||||
1 [IKO:244] Blossoming Sands
|
||||
1 [IKO:247] Evolving Wilds
|
||||
1 [IKO:249] Jungle Hollow
|
||||
1 [IKO:254] Scoured Barrens
|
||||
2 [IKO:274] Forest
|
||||
2 [IKO:273] Forest
|
||||
4 [IKO:262] Plains
|
||||
3 [IKO:260] Plains
|
||||
3 [IKO:268] Swamp
|
||||
2 [IKO:267] Swamp
|
||||
2 [IKO:266] Swamp
|
||||
SB: 1 [C20:10] Kathril, Aspect Warper
|
|
@ -0,0 +1,92 @@
|
|||
1 [C20:145] Chandra, Flamecaller
|
||||
1 [C20:6] Akim, the Soaring Wind
|
||||
1 [C20:4] Brallin, Skyshark Rider
|
||||
1 [C20:14] Shabraz, the Skyshark
|
||||
1 [C20:21] Cryptic Trilobite
|
||||
1 [C20:27] Herald of the Forgotten
|
||||
1 [C20:34] Ethereal Forager
|
||||
1 [C20:49] Agitator Ant
|
||||
1 [C20:56] Spellpyre Phoenix
|
||||
1 [C20:57] Surly Badgersaur
|
||||
1 [C20:88] Eternal Dragon
|
||||
1 [C20:101] Sun Titan
|
||||
1 [C20:109] Curator of Mysteries
|
||||
1 [C20:121] Nimble Obstructionist
|
||||
1 [C20:122] Portal Mage
|
||||
1 [C20:217] Isperia, Supreme Judge
|
||||
1 [C20:221] Mercurial Chemister
|
||||
1 [C20:225] Niv-Mizzet, the Firemind
|
||||
1 [C20:219] The Locust God
|
||||
1 [C20:248] Psychosis Crawler
|
||||
1 [IKO:36] Valiant Rescuer
|
||||
1 [IKO:133] Rooting Moloch
|
||||
1 [IKO:205] Savai Thundermane
|
||||
1 [C20:126] Vizier of Tumbling Sands
|
||||
1 [C20:25] Dismantling Wave
|
||||
1 [C20:74] Akroma's Vengeance
|
||||
1 [C20:85] Decree of Justice
|
||||
1 [C20:86] Descend upon the Sinful
|
||||
1 [IKO:43] Boon of the Wish-Giver
|
||||
1 [C20:128] Windfall
|
||||
1 [C20:159] Slice and Dice
|
||||
1 [C20:222] Migratory Route
|
||||
1 [C20:35] Fierce Guardianship
|
||||
1 [IKO:59] Neutralize
|
||||
1 [IKO:217] Zenith Flare
|
||||
1 [C20:112] Hieroglyphic Illumination
|
||||
1 [C20:236] Abandoned Sarcophagus
|
||||
1 [C20:241] Fluctuator
|
||||
1 [C20:67] Bonder's Ornament
|
||||
1 [C20:237] Arcane Signet
|
||||
1 [C20:238] Azorius Signet
|
||||
1 [C20:239] Boros Signet
|
||||
1 [C20:243] Izzet Signet
|
||||
1 [C20:240] Commander's Sphere
|
||||
1 [C20:252] Sol Ring
|
||||
1 [IKO:238] Raugrin Crystal
|
||||
1 [C20:31] Crystalline Resonance
|
||||
1 [C20:76] Astral Drift
|
||||
1 [C20:90] Hoofprints of the Stag
|
||||
1 [C20:110] Drake Haven
|
||||
1 [C20:119] New Perspectives
|
||||
1 [C20:162] Tectonic Reformation
|
||||
1 [IKO:61] Ominous Seas
|
||||
1 [IKO:65] Reconnaissance Mission
|
||||
1 [C20:28] Martial Impetus
|
||||
1 [C20:37] Psychic Impetus
|
||||
1 [C20:55] Shiny Impetus
|
||||
1 [C20:79] Cast Out
|
||||
1 [C20:100] Spirit Cairn
|
||||
1 [C20:155] Lightning Rift
|
||||
1 [C20:273] Exotic Orchard
|
||||
1 [C20:281] Hostile Desert
|
||||
1 [C20:282] Irrigated Farmland
|
||||
1 [C20:299] Prairie Stream
|
||||
1 [C20:310] Shivan Reef
|
||||
1 [C20:312] Skycloud Expanse
|
||||
1 [C20:255] Ash Barrens
|
||||
1 [C20:256] Azorius Chancery
|
||||
1 [C20:260] Boros Garrison
|
||||
1 [C20:264] Command Tower
|
||||
1 [C20:266] Desert of the Fervent
|
||||
1 [C20:267] Desert of the Mindful
|
||||
1 [C20:268] Desert of the True
|
||||
1 [C20:271] Drifting Meadow
|
||||
1 [C20:274] Forgotten Cave
|
||||
1 [C20:283] Izzet Boilerworks
|
||||
1 [C20:287] Lonely Sandbar
|
||||
1 [C20:292] Myriad Landscape
|
||||
1 [C20:301] Reliquary Tower
|
||||
1 [C20:302] Remote Isle
|
||||
1 [C20:307] Secluded Steppe
|
||||
1 [C20:313] Smoldering Crater
|
||||
1 [C20:319] Temple of the False God
|
||||
3 [IKO:265] Island
|
||||
1 [IKO:263] Island
|
||||
1 [IKO:264] Island
|
||||
1 [IKO:270] Mountain
|
||||
2 [IKO:269] Mountain
|
||||
3 [IKO:271] Mountain
|
||||
4 [IKO:262] Plains
|
||||
1 [C20:293] Mystic Monastery
|
||||
SB: 1 [C20:7] Gavi, Nest Warden
|
|
@ -0,0 +1,82 @@
|
|||
1 [CMR:379] Odric, Lunarch Marshal
|
||||
1 [CMR:382] Relic Seeker
|
||||
1 [CMR:386] Sram, Senior Edificer
|
||||
1 [CMR:412] Dualcaster Mage
|
||||
1 [CMR:370] Danitha Capashen, Paragon
|
||||
1 [CMR:374] Flickerwisp
|
||||
1 [CMR:376] Ironclad Slayer
|
||||
1 [CMR:377] Kor Cartographer
|
||||
1 [CMR:381] Oreskos Explorer
|
||||
1 [CMR:454] Tiana, Ship's Caretaker
|
||||
1 [CMR:460] Brass Squire
|
||||
1 [CMR:378] Martial Coup
|
||||
1 [CMR:392] Winds of Rath
|
||||
1 [CMR:415] Jaya's Immolating Inferno
|
||||
1 [CMR:416] Relentless Assault
|
||||
1 [CMR:411] Comet Storm
|
||||
1 [CMR:388] Unbreakable Formation
|
||||
1 [CMR:391] White Sun's Zenith
|
||||
1 [CMR:419] Wild Ricochet
|
||||
1 [CMR:420] Word of Seizing
|
||||
1 [CMR:444] Deflecting Palm
|
||||
1 [CMR:447] Master Warcraft
|
||||
1 [CMR:449] Response // Resurgence
|
||||
1 [CMR:369] Condemn
|
||||
1 [CMR:371] Dawn Charm
|
||||
1 [CMR:372] Disenchant
|
||||
1 [CMR:375] Generous Gift
|
||||
1 [CMR:383] Return to Dust
|
||||
1 [CMR:387] Swords to Plowshares
|
||||
1 [CMR:390] Valorous Stance
|
||||
1 [CMR:410] Abrade
|
||||
1 [CMR:413] Expedite
|
||||
1 [CMR:414] Fists of Flame
|
||||
1 [CMR:417] Temur Battle Rage
|
||||
1 [CMR:418] Volcanic Fallout
|
||||
1 [CMR:442] Boros Charm
|
||||
1 [CMR:456] Wear // Tear
|
||||
1 [CMR:364] Blazing Sunsteel
|
||||
1 [CMR:457] Blackblade Reforged
|
||||
1 [CMR:465] Loxodon Warhammer
|
||||
1 [CMR:473] Sunforger
|
||||
1 [CMR:475] Sword of Vengeance
|
||||
1 [CMR:458] Bonesplitter
|
||||
1 [CMR:459] Boros Signet
|
||||
1 [CMR:461] Explorer's Scope
|
||||
1 [CMR:462] Fireshrieker
|
||||
1 [CMR:463] Haunted Cloak
|
||||
1 [CMR:464] Hero's Blade
|
||||
1 [CMR:466] Mask of Avacyn
|
||||
1 [CMR:468] Ring of Thune
|
||||
1 [CMR:469] Ring of Valkas
|
||||
1 [CMR:472] Sol Ring
|
||||
1 [CMR:474] Swiftfoot Boots
|
||||
1 [CMR:363] Timely Ward
|
||||
1 [CMR:384] Sigarda's Aid
|
||||
1 [CMR:373] Faith Unbroken
|
||||
1 [CMR:380] On Serra's Wings
|
||||
1 [CMR:385] Spirit Mantle
|
||||
1 [CMR:389] Unquestioned Authority
|
||||
1 [CMR:494] Slayers' Stronghold
|
||||
1 [CMR:477] Boros Garrison
|
||||
1 [CMR:478] Boros Guildgate
|
||||
1 [CMR:479] Command Tower
|
||||
1 [CMR:481] Encroaching Wastes
|
||||
1 [CMR:482] Evolving Wilds
|
||||
1 [CMR:483] Forgotten Cave
|
||||
1 [CMR:486] Memorial to War
|
||||
1 [CMR:487] Myriad Landscape
|
||||
1 [CMR:489] Rogue's Passage
|
||||
1 [CMR:490] Rupture Spire
|
||||
1 [CMR:495] Stone Quarry
|
||||
1 [CMR:496] Sunhome, Fortress of the Legion
|
||||
1 [CMR:497] Terramorphic Expanse
|
||||
1 [CMR:499] Transguild Promenade
|
||||
1 [CMR:502] Wind-Scarred Crag
|
||||
4 [CMR:509] Mountain
|
||||
5 [CMR:508] Mountain
|
||||
9 [CMR:505] Plains
|
||||
5 [CMR:504] Plains
|
||||
1 [CMR:491] Secluded Steppe
|
||||
SB: 1 [CMR:362] Wyleth, Soul of Steel
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
1 [CMR:422] Avenger of Zendikar
|
||||
1 [CMR:366] Trench Behemoth
|
||||
1 [CMR:367] Stumpsquall Hydra
|
||||
1 [CMR:368] Elder Deep-Fiend
|
||||
1 [CMR:399] Meloku the Clouded Mirror
|
||||
1 [CMR:401] Nezahal, Primal Tide
|
||||
1 [CMR:403] Scourge of Fleets
|
||||
1 [CMR:404] Shipbreaker Kraken
|
||||
1 [CMR:406] Sphinx of Uthuun
|
||||
1 [CMR:407] Stormtide Leviathan
|
||||
1 [CMR:408] Tromokratis
|
||||
1 [CMR:430] Molimo, Maro-Sorcerer
|
||||
1 [CMR:431] Rampaging Baloths
|
||||
1 [CMR:433] Ramunap Excavator
|
||||
1 [CMR:438] Terastodon
|
||||
1 [CMR:439] Verdant Sun's Avatar
|
||||
1 [CMR:445] Fathom Mage
|
||||
1 [CMR:448] Murkfiend Liege
|
||||
1 [CMR:452] Simic Sky Swallower
|
||||
1 [CMR:400] Mulldrifter
|
||||
1 [CMR:405] Slinn Voda, the Rising Deep
|
||||
1 [CMR:421] Acidic Slime
|
||||
1 [CMR:425] Eternal Witness
|
||||
1 [CMR:434] Reclamation Sage
|
||||
1 [CMR:437] Sporemound
|
||||
1 [CMR:440] Wickerbough Elder
|
||||
1 [CMR:441] Yavimaya Elder
|
||||
1 [CMR:443] Coiling Oracle
|
||||
1 [CMR:450] Sharktocrab
|
||||
1 [CMR:467] Meteor Golem
|
||||
1 [CMR:409] Whelming Wave
|
||||
1 [CMR:453] Spitting Image
|
||||
1 [CMR:394] Compulsive Research
|
||||
1 [CMR:424] Cultivate
|
||||
1 [CMR:426] Explore
|
||||
1 [CMR:427] Harmonize
|
||||
1 [CMR:429] Kodama's Reach
|
||||
1 [CMR:432] Rampant Growth
|
||||
1 [CMR:436] Search for Tomorrow
|
||||
1 [CMR:455] Urban Evolution
|
||||
1 [CMR:393] Arcane Denial
|
||||
1 [CMR:395] Counterspell
|
||||
1 [CMR:396] Fact or Fiction
|
||||
1 [CMR:397] Into the Roil
|
||||
1 [CMR:402] Peel from Reality
|
||||
1 [CMR:423] Beast Within
|
||||
1 [CMR:446] Growth Spiral
|
||||
1 [CMR:451] Simic Charm
|
||||
1 [CMR:470] Seer's Sundial
|
||||
1 [CMR:471] Simic Signet
|
||||
1 [CMR:472] Sol Ring
|
||||
1 [CMR:474] Swiftfoot Boots
|
||||
1 [CMR:398] Ior Ruin Expedition
|
||||
1 [CMR:428] Khalni Heart Expedition
|
||||
1 [CMR:435] Retreat to Kazandu
|
||||
1 [CMR:476] Blighted Woodland
|
||||
1 [CMR:479] Command Tower
|
||||
1 [CMR:480] Coral Atoll
|
||||
1 [CMR:482] Evolving Wilds
|
||||
1 [CMR:484] Jungle Basin
|
||||
1 [CMR:485] Memorial to Genius
|
||||
1 [CMR:488] Reliquary Tower
|
||||
1 [CMR:492] Simic Growth Chamber
|
||||
1 [CMR:493] Simic Guildgate
|
||||
1 [CMR:497] Terramorphic Expanse
|
||||
1 [CMR:498] Thornwood Falls
|
||||
1 [CMR:500] Vivid Creek
|
||||
1 [CMR:501] Vivid Grove
|
||||
1 [CMR:503] Woodland Stream
|
||||
5 [CMR:511] Forest
|
||||
10 [CMR:510] Forest
|
||||
5 [CMR:506] Island
|
||||
10 [CMR:507] Island
|
||||
SB: 1 [CMR:365] Aesi, Tyrant of Gyre Strait
|
||||
|
|
@ -0,0 +1,89 @@
|
|||
1 [ZNC:10] Admonition Angel
|
||||
1 [ZNC:3] Trove Warden
|
||||
1 [ZNC:6] Geode Rager
|
||||
1 [ZNC:15] Emeria Angel
|
||||
1 [ZNC:16] Emeria Shepherd
|
||||
1 [ZNC:21] Sun Titan
|
||||
1 [ZNC:75] Multani, Yavimaya's Avatar
|
||||
1 [ZNC:77] Rampaging Baloths
|
||||
1 [ZNC:84] Sylvan Advocate
|
||||
1 [ZNC:86] Waker of the Wilds
|
||||
1 [ZNC:93] Living Twister
|
||||
1 [ZNC:94] Mina and Denn, Wildborn
|
||||
1 [ZNC:97] Omnath, Locus of Rage
|
||||
1 [ZNC:9] Abzan Falconer
|
||||
1 [ZNC:14] Elite Scaleguard
|
||||
1 [ZNC:18] Kor Cartographer
|
||||
1 [ZNC:59] Acidic Slime
|
||||
1 [ZNC:60] Armorcraft Judge
|
||||
1 [ZNC:63] Elvish Rejuvenator
|
||||
1 [ZNC:64] Embodiment of Insight
|
||||
1 [ZNC:65] Evolution Sage
|
||||
1 [ZNC:67] Fertilid
|
||||
1 [ZNC:71] Keeper of Fables
|
||||
1 [ZNC:81] Satyr Wayfinder
|
||||
1 [ZNC:82] Sporemound
|
||||
1 [ZNC:83] Springbloom Druid
|
||||
1 [ZNC:85] Tuskguard Captain
|
||||
1 [ZNC:87] Yavimaya Elder
|
||||
1 [ZNC:116] Sandstone Oracle
|
||||
1 [ZNC:117] Scaretiller
|
||||
1 [ZNR:229] Murasa Rootgrazer
|
||||
1 [ZNC:17] Hour of Revelation
|
||||
1 [ZNC:19] Planar Outburst
|
||||
1 [ZNC:76] Nissa's Renewal
|
||||
1 [ZNC:61] Beanstalk Giant
|
||||
1 [ZNC:62] Circuitous Route
|
||||
1 [ZNC:66] Far Wanderings
|
||||
1 [ZNC:68] Harmonize
|
||||
1 [ZNC:73] Kodama's Reach
|
||||
1 [ZNC:91] Ground Assault
|
||||
1 [ZNC:105] Treacherous Terrain
|
||||
1 [ZNC:79] Return of the Wildspeaker
|
||||
1 [ZNC:12] Condemn
|
||||
1 [ZNC:13] Crush Contraband
|
||||
1 [ZNC:69] Harrow
|
||||
1 [ZNC:70] Inspiring Call
|
||||
1 [ZNC:95] Naya Charm
|
||||
1 [ZNC:104] Sylvan Reclamation
|
||||
1 [ZNR:201] Roiling Regrowth
|
||||
1 [ZNC:119] Seer's Sundial
|
||||
1 [ZNC:106] Arcane Signet
|
||||
1 [ZNC:120] Sol Ring
|
||||
1 [ZNC:22] Together Forever
|
||||
1 [ZNC:58] Abundance
|
||||
1 [ZNC:74] The Mending of Dominaria
|
||||
1 [ZNC:80] Rites of Flourishing
|
||||
1 [ZNC:11] Banishing Light
|
||||
1 [ZNC:20] Retreat to Emeria
|
||||
1 [ZNC:72] Khalni Heart Expedition
|
||||
1 [ZNC:78] Retreat to Kazandu
|
||||
1 [ZNC:88] Zendikar's Roil
|
||||
1 [ZNC:137] Needle Spires
|
||||
1 [HOU:151] Struggle // Survive
|
||||
1 [ZNC:121] Blighted Woodland
|
||||
1 [ZNC:122] Boros Garrison
|
||||
1 [ZNC:123] Boros Guildgate
|
||||
1 [ZNC:124] Command Tower
|
||||
1 [ZNC:125] Cryptic Caves
|
||||
1 [ZNC:129] Evolving Wilds
|
||||
1 [ZNC:131] Gruul Turf
|
||||
1 [ZNC:130] Gruul Guildgate
|
||||
1 [ZNC:132] Jungle Shrine
|
||||
1 [ZNC:134] Krosan Verge
|
||||
1 [ZNC:135] Myriad Landscape
|
||||
1 [ZNC:136] Naya Panorama
|
||||
1 [ZNC:139] Selesnya Guildgate
|
||||
1 [ZNC:140] Selesnya Sanctuary
|
||||
1 [ZNC:142] Terramorphic Expanse
|
||||
2 [ZNR:384] Forest
|
||||
5 [ZNR:279] Forest
|
||||
3 [ZNR:278] Forest
|
||||
2 [ZNR:275] Mountain
|
||||
2 [ZNR:276] Mountain
|
||||
2 [ZNR:268] Plains
|
||||
2 [ZNR:380] Plains
|
||||
2 [ZNR:267] Plains
|
||||
1 [ZNR:266] Plains
|
||||
SB: 1 [ZNC:2] Obuun, Mul Daya Ancestor
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
1 [ZNC:92] Lazav, Dimir Mastermind
|
||||
1 [ZNC:4] Enigma Thief
|
||||
1 [ZNC:35] Scourge of Fleets
|
||||
1 [ZNC:44] Gonti, Lord of Luxury
|
||||
1 [ZNC:49] Nighthowler
|
||||
1 [ZNC:50] Ogre Slumlord
|
||||
1 [ZNC:54] Sepulchral Primordial
|
||||
1 [ZNC:89] Consuming Aberration
|
||||
1 [ZNC:96] Notion Thief
|
||||
1 [ZNC:98] Oona, Queen of the Fae
|
||||
1 [ZNC:103] Sygg, River Cutthroat
|
||||
1 [ZNC:26] Faerie Vandal
|
||||
1 [ZNC:27] Invisible Stalker
|
||||
1 [ZNC:28] Latchkey Faerie
|
||||
1 [ZNC:29] Marang River Prowler
|
||||
1 [ZNC:30] Master Thief
|
||||
1 [ZNC:32] Nightveil Sprite
|
||||
1 [ZNC:36] Slither Blade
|
||||
1 [ZNC:38] Triton Shorestalker
|
||||
1 [ZNC:39] Whirler Rogue
|
||||
1 [ZNC:40] Changeling Outcast
|
||||
1 [ZNC:43] Frogtosser Banneret
|
||||
1 [ZNC:46] Marsh Flitter
|
||||
1 [ZNC:51] Oona's Blackguard
|
||||
1 [ZNC:55] Stinkdrinker Bandit
|
||||
1 [ZNC:56] Syr Konrad, the Grim
|
||||
1 [ZNC:57] Zulaport Cutthroat
|
||||
1 [ZNR:70] Merfolk Windrobber
|
||||
1 [ZNR:83] Sure-Footed Infiltrator
|
||||
1 [ZNR:236] Soaring Thought-Thief
|
||||
1 [ZNC:33] Notorious Throng
|
||||
1 [ZNC:37] Stolen Identity
|
||||
1 [ZNC:45] In Garruk's Wake
|
||||
1 [ZNC:48] Necromantic Selection
|
||||
1 [ZNC:24] Distant Melody
|
||||
1 [ZNC:34] Open into Wonder
|
||||
1 [ZNC:41] Endless Obedience
|
||||
1 [ZNC:53] Rise from the Grave
|
||||
1 [ZNC:90] Extract from Darkness
|
||||
1 [ZNC:42] Fated Return
|
||||
1 [ZNC:99] Silumgar's Command
|
||||
1 [ZNC:101] Spinal Embrace
|
||||
1 [ZNC:23] Aetherize
|
||||
1 [ZNC:25] Fact or Fiction
|
||||
1 [ZNC:47] Murder
|
||||
1 [ZNC:52] Price of Fame
|
||||
1 [ZNC:100] Soul Manipulation
|
||||
1 [ZNC:5] Whispersteel Dagger
|
||||
1 [ZNC:107] Blackblade Reforged
|
||||
1 [ZNC:108] Bonehoard
|
||||
1 [ZNC:115] Obelisk of Urd
|
||||
1 [ZNC:118] Scytheclaw
|
||||
1 [ZNC:106] Arcane Signet
|
||||
1 [ZNC:109] Commander's Sphere
|
||||
1 [ZNC:126] Dimir Aqueduct
|
||||
1 [ZNC:127] Dimir Guildgate
|
||||
1 [ZNC:110] Dimir Keyrune
|
||||
1 [ZNC:111] Dimir Locket
|
||||
1 [ZNC:112] Dimir Signet
|
||||
1 [ZNC:113] Heirloom Blade
|
||||
1 [ZNC:114] Mind Stone
|
||||
1 [ZNC:120] Sol Ring
|
||||
1 [ZNC:31] Military Intelligence
|
||||
1 [ZNC:124] Command Tower
|
||||
1 [ZNC:128] Dismal Backwater
|
||||
1 [ZNC:133] Jwar Isle Refuge
|
||||
1 [ZNC:135] Myriad Landscape
|
||||
1 [ZNC:138] Rogue's Passage
|
||||
1 [ZNC:141] Submerged Boneyard
|
||||
4 [ZNR:269] Island
|
||||
4 [ZNR:270] Island
|
||||
5 [ZNR:271] Island
|
||||
2 [ZNR:381] Island
|
||||
5 [ZNR:273] Swamp
|
||||
3 [ZNR:382] Swamp
|
||||
4 [ZNR:272] Swamp
|
||||
3 [ZNR:274] Swamp
|
||||
SB: 1 [ZNC:1] Anowon, the Ruin Thief
|
||||
|
170
Mage.Sets/src/mage/cards/k/KayaTheInexorable.java
Normal file
170
Mage.Sets/src/mage/cards/k/KayaTheInexorable.java
Normal file
|
@ -0,0 +1,170 @@
|
|||
package mage.cards.k;
|
||||
|
||||
import mage.MageObject;
|
||||
import mage.MageObjectReference;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.LoyaltyAbility;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.ExileTargetEffect;
|
||||
import mage.abilities.effects.common.GetEmblemEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.permanent.TokenPredicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.command.emblems.KayaTheInexorableEmblem;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.ZoneChangeEvent;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.SpiritWhiteToken;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import mage.target.common.TargetNonlandPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author weirddan455
|
||||
*/
|
||||
public final class KayaTheInexorable extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("nontoken creature");
|
||||
static {
|
||||
filter.add(Predicates.not(TokenPredicate.instance));
|
||||
}
|
||||
|
||||
public KayaTheInexorable(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{3}{W}{B}");
|
||||
|
||||
this.addSuperType(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.KAYA);
|
||||
this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(5));
|
||||
|
||||
// +1: Put a ghostform counter on up to one target nontoken creature. It gains "When this creature dies or is put into exile, return it to its owner's hand and create a 1/1 white Spirit creature token with flying."
|
||||
LoyaltyAbility ability = new LoyaltyAbility(new AddCountersTargetEffect(CounterType.GHOSTFORM.createInstance()), 1);
|
||||
ability.addEffect(new GainAbilityTargetEffect(new KayaTheInexorableTriggeredAbility(), Duration.WhileOnBattlefield,
|
||||
"It gains \"When this creature dies or is put into exile, return it to its owner's hand and create a 1/1 white Spirit creature token with flying.\""));
|
||||
ability.addTarget(new TargetCreaturePermanent(0, 1, filter, false));
|
||||
this.addAbility(ability);
|
||||
|
||||
// −3: Exile target nonland permanent.
|
||||
ability = new LoyaltyAbility(new ExileTargetEffect(), -3);
|
||||
ability.addTarget(new TargetNonlandPermanent());
|
||||
this.addAbility(ability);
|
||||
|
||||
// −7: You get an emblem with "At the beginning of your upkeep, you may cast a legendary spell from your hand, from your graveyard, or from among cards you own in exile without paying its mana cost."
|
||||
this.addAbility(new LoyaltyAbility(new GetEmblemEffect(new KayaTheInexorableEmblem()), -7));
|
||||
}
|
||||
|
||||
private KayaTheInexorable(final KayaTheInexorable card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public KayaTheInexorable copy() {
|
||||
return new KayaTheInexorable(this);
|
||||
}
|
||||
}
|
||||
|
||||
class KayaTheInexorableTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
public KayaTheInexorableTriggeredAbility() {
|
||||
super(Zone.ALL, null, false);
|
||||
}
|
||||
|
||||
private KayaTheInexorableTriggeredAbility(KayaTheInexorableTriggeredAbility ability) {
|
||||
super(ability);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkEventType(GameEvent event, Game game) {
|
||||
if (event.getType() == GameEvent.EventType.ZONE_CHANGE) {
|
||||
ZoneChangeEvent zEvent = (ZoneChangeEvent) event;
|
||||
return zEvent.getFromZone() == Zone.BATTLEFIELD
|
||||
&& (zEvent.getToZone() == Zone.GRAVEYARD
|
||||
|| zEvent.getToZone() == Zone.EXILED);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
ZoneChangeEvent zEvent = (ZoneChangeEvent) event;
|
||||
if (zEvent.getTargetId().equals(this.getSourceId())) {
|
||||
this.getEffects().clear();
|
||||
this.addEffect(new KayaTheInexorableEffect(new MageObjectReference(zEvent.getTarget(), game)));
|
||||
this.addEffect(new CreateTokenEffect(new SpiritWhiteToken()));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInUseableZone(Game game, MageObject source, GameEvent event) {
|
||||
Permanent sourcePermanent = null;
|
||||
if (game.getState().getZone(getSourceId()) == Zone.BATTLEFIELD) {
|
||||
sourcePermanent = game.getPermanent(getSourceId());
|
||||
} else {
|
||||
if (game.getShortLivingLKI(getSourceId(), Zone.BATTLEFIELD)) {
|
||||
sourcePermanent = (Permanent) game.getLastKnownInformation(getSourceId(), Zone.BATTLEFIELD);
|
||||
}
|
||||
}
|
||||
if (sourcePermanent == null) {
|
||||
return false;
|
||||
}
|
||||
return hasSourceObjectAbility(game, sourcePermanent, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public KayaTheInexorableTriggeredAbility copy() {
|
||||
return new KayaTheInexorableTriggeredAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When {this} dies or is put into exile, return it to its owner's hand and create a 1/1 white Spirit creature token with flying.";
|
||||
}
|
||||
}
|
||||
|
||||
class KayaTheInexorableEffect extends OneShotEffect {
|
||||
|
||||
private final MageObjectReference mor;
|
||||
|
||||
KayaTheInexorableEffect(MageObjectReference mor) {
|
||||
super(Outcome.Benefit);
|
||||
this.mor = mor;
|
||||
}
|
||||
|
||||
private KayaTheInexorableEffect(KayaTheInexorableEffect effect) {
|
||||
super(effect);
|
||||
this.mor = effect.mor;
|
||||
}
|
||||
|
||||
@Override
|
||||
public KayaTheInexorableEffect copy() {
|
||||
return new KayaTheInexorableEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player player = game.getPlayer(source.getControllerId());
|
||||
if (player == null) {
|
||||
return false;
|
||||
}
|
||||
Card card = game.getCard(mor.getSourceId());
|
||||
if (card == null || card.getZoneChangeCounter(game) - 1 != mor.getZoneChangeCounter()) {
|
||||
return false;
|
||||
}
|
||||
return player.moveCards(card, Zone.HAND, source, game);
|
||||
}
|
||||
}
|
|
@ -38,7 +38,7 @@ public final class WhisperBloodLiturgist extends CardImpl {
|
|||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToBattlefieldTargetEffect()
|
||||
.setText("Return target creature card from your graveyard to the battlefield"),
|
||||
new TapSourceCost());
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(2, 2, new FilterControlledCreaturePermanent("two creature"), true)));
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(2, 2, new FilterControlledCreaturePermanent("creatures"), true)));
|
||||
ability.addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -47,6 +47,7 @@ public final class Commander2017Edition extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Bloodforged Battle-Axe", 50, Rarity.RARE, mage.cards.b.BloodforgedBattleAxe.class));
|
||||
cards.add(new SetCardInfo("Bloodhusk Ritualist", 101, Rarity.UNCOMMON, mage.cards.b.BloodhuskRitualist.class));
|
||||
cards.add(new SetCardInfo("Bloodline Necromancer", 14, Rarity.UNCOMMON, mage.cards.b.BloodlineNecromancer.class));
|
||||
cards.add(new SetCardInfo("Bloodlord of Vaasgoth", 102, Rarity.MYTHIC, mage.cards.b.BloodlordOfVaasgoth.class));
|
||||
cards.add(new SetCardInfo("Bloodsworn Steward", 22, Rarity.RARE, mage.cards.b.BloodswornSteward.class));
|
||||
cards.add(new SetCardInfo("Blossoming Sands", 237, Rarity.COMMON, mage.cards.b.BlossomingSands.class));
|
||||
cards.add(new SetCardInfo("Body Double", 83, Rarity.RARE, mage.cards.b.BodyDouble.class));
|
||||
|
@ -84,6 +85,7 @@ public final class Commander2017Edition extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Curse of Verbosity", 9, Rarity.UNCOMMON, mage.cards.c.CurseOfVerbosity.class));
|
||||
cards.add(new SetCardInfo("Curse of Vitality", 3, Rarity.UNCOMMON, mage.cards.c.CurseOfVitality.class));
|
||||
cards.add(new SetCardInfo("Damnable Pact", 108, Rarity.RARE, mage.cards.d.DamnablePact.class));
|
||||
cards.add(new SetCardInfo("Dark Impostor", 109, Rarity.RARE, mage.cards.d.DarkImpostor.class));
|
||||
cards.add(new SetCardInfo("Darksteel Ingot", 207, Rarity.UNCOMMON, mage.cards.d.DarksteelIngot.class));
|
||||
cards.add(new SetCardInfo("Deathbringer Regent", 110, Rarity.RARE, mage.cards.d.DeathbringerRegent.class));
|
||||
cards.add(new SetCardInfo("Decree of Pain", 111, Rarity.RARE, mage.cards.d.DecreeOfPain.class));
|
||||
|
|
|
@ -44,6 +44,7 @@ public final class Kaldheim extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Gladewalker Ritualist", 392, Rarity.UNCOMMON, mage.cards.g.GladewalkerRitualist.class));
|
||||
cards.add(new SetCardInfo("Hengegate Pathway", 260, Rarity.RARE, mage.cards.h.HengegatePathway.class));
|
||||
cards.add(new SetCardInfo("Pyre of Heroes", 241, Rarity.RARE, mage.cards.p.PyreOfHeroes.class));
|
||||
cards.add(new SetCardInfo("Kaya the Inexorable", 218, Rarity.MYTHIC, mage.cards.k.KayaTheInexorable.class));
|
||||
cards.add(new SetCardInfo("Rampage of the Valkyries", 393, Rarity.UNCOMMON, mage.cards.r.RampageOfTheValkyries.class));
|
||||
cards.add(new SetCardInfo("Realmwalker", 188, Rarity.RARE, mage.cards.r.Realmwalker.class));
|
||||
cards.add(new SetCardInfo("Renegade Reaper", 386, Rarity.UNCOMMON, mage.cards.r.RenegadeReaper.class));
|
||||
|
|
|
@ -436,7 +436,7 @@ public abstract class ExpansionSet implements Serializable {
|
|||
addToBooster(booster, commons);
|
||||
}
|
||||
|
||||
if (numSpecialCommons > 0) { // e.g. used to conditionaly replace common cards in the booster
|
||||
if (numSpecialCommons > 0) { // e.g. used to conditionally replace common cards in the booster
|
||||
addSpecialCommon(booster, numSpecialCommons);
|
||||
}
|
||||
|
||||
|
|
|
@ -64,6 +64,7 @@ public enum CounterType {
|
|||
FUNGUS("fungus"),
|
||||
FUSE("fuse"),
|
||||
GEM("gem"),
|
||||
GHOSTFORM("ghostform"),
|
||||
GLOBE("globe"),
|
||||
GLYPH("glyph"),
|
||||
GOLD("gold"),
|
||||
|
|
|
@ -0,0 +1,104 @@
|
|||
package mage.game.command.emblems;
|
||||
|
||||
import mage.ApprovingObject;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.cards.Card;
|
||||
import mage.choices.Choice;
|
||||
import mage.choices.ChoiceImpl;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterOwnedCard;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.game.Game;
|
||||
import mage.game.command.Emblem;
|
||||
import mage.players.Player;
|
||||
import mage.target.TargetCard;
|
||||
import mage.target.common.TargetCardInExile;
|
||||
import mage.target.common.TargetCardInHand;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author weirddan455
|
||||
*/
|
||||
public class KayaTheInexorableEmblem extends Emblem {
|
||||
|
||||
// −7: You get an emblem with "At the beginning of your upkeep, you may cast a legendary spell from your hand, from your graveyard, or from among cards you own in exile without paying its mana cost."
|
||||
public KayaTheInexorableEmblem() {
|
||||
|
||||
this.setName("Emblem Kaya");
|
||||
this.setExpansionSetCodeForImage("KHM");
|
||||
this.getAbilities().add(new BeginningOfUpkeepTriggeredAbility(Zone.COMMAND, new KayaTheInexorableEmblemEffect(), TargetController.YOU, true, false));
|
||||
}
|
||||
}
|
||||
|
||||
class KayaTheInexorableEmblemEffect extends OneShotEffect {
|
||||
|
||||
private static final FilterOwnedCard filter = new FilterOwnedCard();
|
||||
private static final Set<String> choices = new LinkedHashSet<>();
|
||||
static {
|
||||
filter.add(SuperType.LEGENDARY.getPredicate());
|
||||
filter.add(Predicates.not(CardType.LAND.getPredicate()));
|
||||
choices.add("Hand");
|
||||
choices.add("Graveyard");
|
||||
choices.add("Exile");
|
||||
}
|
||||
|
||||
public KayaTheInexorableEmblemEffect() {
|
||||
super(Outcome.PlayForFree);
|
||||
this.staticText = "cast a legendary spell from your hand, from your graveyard, or from among cards you own in exile without paying its mana cost";
|
||||
}
|
||||
|
||||
private KayaTheInexorableEmblemEffect(final KayaTheInexorableEmblemEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public KayaTheInexorableEmblemEffect copy() {
|
||||
return new KayaTheInexorableEmblemEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player player = game.getPlayer(source.getControllerId());
|
||||
if (player != null) {
|
||||
Choice zoneChoice = new ChoiceImpl(true);
|
||||
zoneChoice.setMessage("Cast a legendary spell from hand, graveyard, or exile");
|
||||
zoneChoice.setChoices(choices);
|
||||
zoneChoice.clearChoice();
|
||||
if (player.choose(Outcome.PlayForFree, zoneChoice, game)) {
|
||||
TargetCard target = null;
|
||||
switch (zoneChoice.getChoice()) {
|
||||
case "Hand":
|
||||
target = new TargetCardInHand(0, 1, filter);
|
||||
target.setTargetName("legendary spell from your hand");
|
||||
break;
|
||||
case "Graveyard":
|
||||
target = new TargetCardInYourGraveyard(0, 1, filter, true);
|
||||
target.setTargetName("legendary spell from your graveyard");
|
||||
break;
|
||||
case "Exile":
|
||||
target = new TargetCardInExile(0, 1, filter, null, true);
|
||||
target.setNotTarget(true);
|
||||
target.setTargetName("legendary spell you own in exile");
|
||||
break;
|
||||
}
|
||||
if (target != null && player.chooseTarget(Outcome.PlayForFree, target, source, game)) {
|
||||
Card card = game.getCard(target.getFirstTarget());
|
||||
if (card != null) {
|
||||
game.getState().setValue("PlayFromNotOwnHandZone" + card.getId(), Boolean.TRUE);
|
||||
boolean cardWasCast = player.cast(player.chooseAbilityForCast(card, game, true),
|
||||
game, true, new ApprovingObject(source, game));
|
||||
game.getState().setValue("PlayFromNotOwnHandZone" + card.getId(), null);
|
||||
return cardWasCast;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue