diff --git a/.gitattributes b/.gitattributes index fbef06e730d..8f9815c182d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10,54 +10,6 @@ res/booster-decks -text svneol=unset#unset res/card-pictures.txt -text svneol=native#text/plain res/cards.txt -text svneol=native#text/plain res/common.txt -text svneol=native#text/plain -res/decks/draft-1.bdk/0.dck -text -res/decks/draft-1.bdk/1.dck -text -res/decks/draft-1.bdk/2.dck -text -res/decks/draft-1.bdk/3.dck -text -res/decks/draft-1.bdk/4.dck -text -res/decks/draft-1.bdk/5.dck -text -res/decks/draft-1.bdk/6.dck -text -res/decks/draft-1.bdk/7.dck -text -res/decks/draft-2.bdk/0.dck -text -res/decks/draft-2.bdk/1.dck -text -res/decks/draft-2.bdk/2.dck -text -res/decks/draft-2.bdk/3.dck -text -res/decks/draft-2.bdk/4.dck -text -res/decks/draft-2.bdk/5.dck -text -res/decks/draft-2.bdk/6.dck -text -res/decks/draft-2.bdk/7.dck -text -res/decks/llll.bdk/0.dck -text -res/decks/llll.bdk/1.dck -text -res/decks/llll.bdk/2.dck -text -res/decks/llll.bdk/3.dck -text -res/decks/llll.bdk/4.dck -text -res/decks/llll.bdk/5.dck -text -res/decks/llll.bdk/6.dck -text -res/decks/llll.bdk/7.dck -text -res/decks/now.bdk/0.dck -text -res/decks/now.bdk/1.dck -text -res/decks/now.bdk/2.dck -text -res/decks/now.bdk/3.dck -text -res/decks/now.bdk/4.dck -text -res/decks/now.bdk/5.dck -text -res/decks/now.bdk/6.dck -text -res/decks/now.bdk/7.dck -text -res/decks/now3.bdk/0.dck -text -res/decks/now3.bdk/1.dck -text -res/decks/now3.bdk/2.dck -text -res/decks/now3.bdk/3.dck -text -res/decks/now3.bdk/4.dck -text -res/decks/now3.bdk/5.dck -text -res/decks/now3.bdk/6.dck -text -res/decks/now3.bdk/7.dck -text -res/decks/now99.bdk/0.dck -text -res/decks/now99.bdk/1.dck -text -res/decks/now99.bdk/2.dck -text -res/decks/now99.bdk/3.dck -text -res/decks/now99.bdk/4.dck -text -res/decks/now99.bdk/5.dck -text -res/decks/now99.bdk/6.dck -text -res/decks/now99.bdk/7.dck -text res/gui/display_layout.xml svneol=native#text/xml res/gui/gui.properties svneol=native#text/plain res/lang/de.properties svneol=native#text/plain diff --git a/res/card-pictures.txt b/res/card-pictures.txt index d4950fd2477..8f28ebe73fd 100644 --- a/res/card-pictures.txt +++ b/res/card-pictures.txt @@ -18,18 +18,34 @@ forest.jpg http://resources.wizards.com/magic/cards/unh/en-us/card73946.jpg forest1.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=2748 forest2.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=587 forest3.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=586 +haunting_echoes.jpg http://www.wizards.com/global/images/magic/general/haunting_echoes.jpg +hedron_crab.jpg http://www.wizards.com/global/images/magic/general/hedron_crab.jpg +daru_encampment.jpg http://www.wizards.com/global/images/magic/general/Daru_Encampment.jpg +skarrg_the_rage_pits.jpg http://www.wizards.com/global/images/magic/general/skarrg_the_rage_pits.jpg +goblin_burrows.jpg http://www.wizards.com/global/images/magic/general/goblin_burrows.jpg +urzas_factory.jpg http://www.wizards.com/global/images/magic/general/urzas_factory.jpg +mind_funeral.jpg http://www.wizards.com/global/images/magic/general/mind_funeral.jpg +traumatize.jpg http://www.wizards.com/global/images/magic/general/traumatize.jpg +path_to_exile.jpg http://www.wizards.com/global/images/magic/general/path_to_exile.jpg +millstone.jpg http://www.wizards.com/global/images/magic/general/millstone.jpg +wood_elves.jpg http://www.wizards.com/global/images/magic/general/wood_elves.jpg +assembly_worker.jpg http://www.wizards.com/global/images/magic/general/assembly_worker.jpg +shizo_deaths_storehouse.jpg http://www.wizards.com/global/images/magic/general/Shizo_Deaths_Storehouse.jpg +novijen_heart_of_progress.jpg http://www.wizards.com/global/images/magic/general/novijen_heart_of_progress.jpg +lhurgoyf.jpg http://www.wizards.com/global/images/magic/general/Lhurgoyf.jpg +spawning_pool.jpg http://www.wizards.com/global/images/magic/general/spawning_pool.jpg boggart_birth_rite.jpg http://www.wizards.com/global/images/magic/general/boggart_birth_rite.jpg -deaths_duet.jpg http://www.wizards.com/global/images/magic/general/deaths_duet.jpg -urborg_uprising.jpg http://www.wizards.com/global/images/magic/general/urborg_uprising.jpg -sarkhan_vol.jpg http://www.wizards.com/global/images/magic/general/sarkhan_vol.jpg +deaths_duet.jpg http://www.wizards.com/global/images/magic/general/deaths_duet.jpg +urborg_uprising.jpg http://www.wizards.com/global/images/magic/general/urborg_uprising.jpg +sarkhan_vol.jpg http://www.wizards.com/global/images/magic/general/sarkhan_vol.jpg tezzeret_the_seeker.jpg http://www.wizards.com/global/images/magic/general/tezzeret_the_seeker.jpg -archivist.jpg http://www.wizards.com/global/images/magic/general/archivist.jpg -fire_bowman.jpg http://www.wizards.com/global/images/magic/general/fire_bowman.jpg +archivist.jpg http://www.wizards.com/global/images/magic/general/archivist.jpg +fire_bowman.jpg http://www.wizards.com/global/images/magic/general/fire_bowman.jpg riding_the_dilu_horse.jpg http://www.wizards.com/global/images/magic/general/riding_the_dilu_horse.jpg magus_of_the_coffers.jpg http://www.wizards.com/global/images/magic/general/magus_of_the_coffers.jpg -cabal_coffers.jpg http://www.wizards.com/global/images/magic/general/cabal_coffers.jpg +cabal_coffers.jpg http://www.wizards.com/global/images/magic/general/cabal_coffers.jpg xiahou_dun_the_one_eyed.jpg http://www.wizards.com/global/images/magic/general/xiahou_dun_the_one_eyed.jpg -loyal_retainers.jpg http://www.wizards.com/global/images/magic/general/loyal_retainers.jpg +loyal_retainers.jpg http://www.wizards.com/global/images/magic/general/loyal_retainers.jpg kor_cartographer.jpg http://www.wizards.com/global/images/magic/general/kor_cartographer.jpg celestial_purge.jpg http://www.wizards.com/global/images/magic/general/celestial_purge.jpg door_to_nothingness.jpg http://www.wizards.com/global/images/magic/general/door_to_nothingness.jpg diff --git a/res/cards.txt b/res/cards.txt index 97d59994f5b..2126c7c3c7f 100644 --- a/res/cards.txt +++ b/res/cards.txt @@ -1,3 +1,96 @@ +Haunting Echoes +3 B B +Sorcery +Remove all cards in target player's graveyard other than basic land cards from the game. Search that player's library for all cards with the same name as cards removed this way, and remove them from the game. Then that player shuffles his or her library. + +Daru Encampment +no cost +Land +no text +tap: add 1 + +Skarrg, the Rage Pits +no cost +Land +no text +tap: add 1 + +Goblin Burrows +no cost +Land +no text +tap: add 1 + +Urza's Factory +no cost +Land Urza's +no text +tap: add 1 + +Hedron Crab +U +Creature Crab +Landfall - Whenever a land enters the battlefield under your control, target player puts the top three cards of his or her library into his or her graveyard. +0/2 +Landfall + +Mind Funeral +1 U B +Sorcery +Target opponent reveals cards from the top of his or her library until four land cards are revealed. That player puts all cards revealed this way into his or her graveyard. + +Traumatize +3 U U +Sorcery +Target player puts the top half of his or her library, rounded down, into his or her graveyard. + +Path to Exile +W +Instant +Exile target creature. Its controller may search his or her library for a basic land card, put that card onto the battlefield tapped, then shuffle his or her library. + +Millstone +2 +Artifact +no text + +Wood Elves +2 G +Creature Elf Scout +When Wood Elves comes into play, search your library for a Forest card and put that card into play. Then shuffle your library. +1/1 + +Assembly-Worker +3 +Artifact Creature Assembly-Worker +no text +2/2 + +Lhurgoyf +2 G G +Creature Lhurgoyf +Lhurgoyf's power is equal to the number of creature cards in all graveyards and its toughness is equal to that number plus 1. +0/1 + +Novijen, Heart of Progress +no cost +Land +no text +tap: add 1 + +Shizo, Death's Storehouse +no cost +Legendary Land +no text +tap: add B + +Spawning Pool +no cost +Land +no text +Comes into play tapped. +tap: add B + Laquatus's Champion 4 B B Creature Nightmare Horror diff --git a/res/decks/draft-1.bdk/0.dck b/res/decks/draft-1.bdk/0.dck deleted file mode 100644 index 12791a351fc..00000000000 --- a/res/decks/draft-1.bdk/0.dck +++ /dev/null @@ -1,54 +0,0 @@ -draft-1 -[general] -draft -[main] -1 Phantom Warrior -1 Keiga, the Tide Star -1 Remove Soul -1 Ghost Ship -1 Primal Clay -1 Mox Emerald -1 Blind Phantasm -1 Opt -1 Concentrate -1 Air Elemental -1 Nevinyrral's Disk -1 Killer Whale -1 Phantom Monster -15 Island -1 Fighting Drake -3 Serendib Efreet -1 Allied Strategies -1 Peel from Reality -1 Cloud of Faeries -1 Coastal Hornclaw -1 Wayward Soul -1 Mox Jet -1 Psionic Blast -1 Whiptongue Frog -[sideboard] -1 Armageddon -25 Island -1 Kabuto Moth -1 Godless Shrine -1 Gaea's Anthem -1 Fomori Nomad -1 Darksteel Gargoyle -1 Ashes to Ashes -1 Royal Assassin -40 Swamp -1 Wall of Kelp -1 Kokusho, the Evening Star -40 Plains -1 That Which Was Taken -1 Hammerfist Giant -1 Bottle Gnomes -1 Blinkmoth Nexus -1 Caller of the Claw -1 Wit's End -40 Forest -1 Cloudseeker -1 Phyrexian Hulk -1 Take Possession -1 Might of Oaks -40 Mountain diff --git a/res/decks/draft-1.bdk/1.dck b/res/decks/draft-1.bdk/1.dck deleted file mode 100644 index 3f40699f86b..00000000000 --- a/res/decks/draft-1.bdk/1.dck +++ /dev/null @@ -1,25 +0,0 @@ - -[general] -draft -[main] -1 Pongify -1 Peregrine Drake -1 Snapping Drake -1 Air Elemental -1 Wall of Kelp -1 Balduvian Barbarians -2 Spark Spray -3 Goblin Sky Raider -1 Tarox Bladewing -2 Wonder -9 Island -1 Kiki-Jiki, Mirror Breaker -1 Threaten -1 Feral Lightning -1 Storm Crow -1 Frostling -1 Brute Force -9 Mountain -1 Man-o'-War -1 Horned Turtle -[sideboard] diff --git a/res/decks/draft-1.bdk/2.dck b/res/decks/draft-1.bdk/2.dck deleted file mode 100644 index cd3a3625ccb..00000000000 --- a/res/decks/draft-1.bdk/2.dck +++ /dev/null @@ -1,27 +0,0 @@ - -[general] -draft -[main] -1 Whirlpool Rider -1 Vedalken Mastermind -1 Goldmeadow Lookout -1 Ghost Ship -1 Lightning Angel -9 Plains -2 Raise the Alarm -1 Killer Whale -1 Leonin Skyhunter -1 Phantom Monster -1 Wonder -1 Spotted Griffin -9 Island -1 Floating-Dream Zubera -1 Wrath of God -1 Angel of Mercy -1 Ghost-Lit Redeemer -1 Saltblast -1 Foot Soldiers -2 Breath of Life -1 Sky Swallower -1 Azure Drake -[sideboard] diff --git a/res/decks/draft-1.bdk/3.dck b/res/decks/draft-1.bdk/3.dck deleted file mode 100644 index b428db4c8c7..00000000000 --- a/res/decks/draft-1.bdk/3.dck +++ /dev/null @@ -1,28 +0,0 @@ - -[general] -draft -[main] -1 Spitting Spider -1 Ember-Fist Zubera -1 Llanowar Mentor -1 Commune with Nature -1 Jugan, the Rising Star -1 Wildsize -1 Hill Giant -1 Giant Growth -1 Kiki-Jiki, Mirror Breaker -1 Arashi, the Sky Asunder -1 Penumbra Kavu -9 Forest -1 Prodigal Pyromancer -2 Spined Wurm -1 Needle Storm -1 Pulse of the Tangle -1 Ryusei, the Falling Star -1 Fomori Nomad -1 Wrap in Vigor -1 Transluminant -1 Llanowar Behemoth -1 Sakura-Tribe Elder -9 Mountain -[sideboard] diff --git a/res/decks/draft-1.bdk/4.dck b/res/decks/draft-1.bdk/4.dck deleted file mode 100644 index 4c55a1d6c5a..00000000000 --- a/res/decks/draft-1.bdk/4.dck +++ /dev/null @@ -1,28 +0,0 @@ - -[general] -draft -[main] -1 Angelic Blessing -9 Plains -1 Worldly Tutor -1 Veteran Armorer -1 Ashcoat Bear -1 Groundbreaker -9 Forest -1 Wrath of God -1 Torii Watchward -1 Gift of Estates -1 Primal Boost -1 Lantern Kami -1 Giant Dustwasp -2 Redwood Treefolk -1 Weathered Wayfarer -1 Eager Cadet -1 Serra Avenger -1 Ghost Warden -1 Wrap in Vigor -1 Troll Ascetic -1 Kami of Old Stone -1 Sakura-Tribe Elder -1 Elvish Piper -[sideboard] diff --git a/res/decks/draft-1.bdk/5.dck b/res/decks/draft-1.bdk/5.dck deleted file mode 100644 index a3a3eb496c0..00000000000 --- a/res/decks/draft-1.bdk/5.dck +++ /dev/null @@ -1,28 +0,0 @@ - -[general] -draft -[main] -1 Needlespeak Spider -1 Jackal Pup -9 Plains -1 Silent-Chant Zubera -1 Char -1 Goretusk Firebeast -2 Tremor -1 Kabuto Moth -1 Torii Watchward -1 Gift of Estates -1 Lay Waste -1 Weathered Wayfarer -1 Disciple of Kangee -1 Eager Cadet -1 Courier Hawk -1 Fomori Nomad -1 Pyroclasm -1 Shinka Gatekeeper -1 Diving Griffin -1 Kami of Old Stone -1 Skyknight Legionnaire -9 Mountain -1 Wojek Embermage -[sideboard] diff --git a/res/decks/draft-1.bdk/6.dck b/res/decks/draft-1.bdk/6.dck deleted file mode 100644 index ce7fefae2f4..00000000000 --- a/res/decks/draft-1.bdk/6.dck +++ /dev/null @@ -1,25 +0,0 @@ - -[general] -draft -[main] -1 Royal Assassin -9 Swamp -2 Helldozer -1 Giant Cockroach -1 Terror -1 Villainous Ogre -9 Island -2 Daggerclaw Imp -1 Foul Imp -1 Hand of Cruelty -1 Visara the Dreadful -1 Peel from Reality -2 Cackling Imp -2 Phyrexian Rager -1 Regress -1 Kemuri-Onna -1 Amnesia -1 Drudge Skeletons -1 Ashes to Ashes -1 Infest -[sideboard] diff --git a/res/decks/draft-1.bdk/7.dck b/res/decks/draft-1.bdk/7.dck deleted file mode 100644 index e37fc6dfdc5..00000000000 --- a/res/decks/draft-1.bdk/7.dck +++ /dev/null @@ -1,26 +0,0 @@ - -[general] -draft -[main] -9 Swamp -1 Gluttonous Zombie -1 Serpent Warrior -1 Commune with Nature -1 Utopia Tree -2 Juzam Djinn -1 Caller of the Claw -1 Giant Growth -1 Watchwolf -1 Groundbreaker -9 Forest -1 Kodama's Reach -1 Wild Mongrel -2 Hand of Cruelty -1 Visara the Dreadful -1 Slaughterhouse Bouncer -1 Cackling Imp -1 Fledgling Djinn -1 Cao Cao, Lord of Wei -1 Elvish Fury -2 Wandering Stream -[sideboard] diff --git a/res/decks/draft-2.bdk/0.dck b/res/decks/draft-2.bdk/0.dck deleted file mode 100644 index ffae49b7cc6..00000000000 --- a/res/decks/draft-2.bdk/0.dck +++ /dev/null @@ -1,51 +0,0 @@ -draft-2 -[general] -draft -[main] -1 Needlespeak Spider -1 Tortuga -1 Shivan Dragon -1 Steel Wall -1 Char -2 Flamebreak -1 Dragon Roost -2 Kiki-Jiki, Mirror Breaker -2 Orcish Artillery -2 Feral Lightning -1 Mox Ruby -1 Goblin Piker -1 Frost Ogre -1 Mox Pearl -1 Shock -1 Raging Minotaur -1 Rorix Bladewing -1 Greater Forgeling -1 Brute Force -1 Dancing Scimitar -1 Skirk Shaman -15 Mountain -[sideboard] -1 Royal Assassin -1 Lava Spike -40 Swamp -40 Plains -1 Remand -1 Kavu Climber -1 Tribal Flames -40 Island -1 Groundbreaker -1 Molten Rain -1 Path of Anger's Flame -40 Forest -1 Archangel -1 Erratic Explosion -1 Lay Waste -1 Take Possession -2 Firebolt -1 Malach of the Dawn -1 Undying Beast -1 Pestilence -1 Dusk Imp -1 Darksteel Gargoyle -1 Infernal Kirin -25 Mountain diff --git a/res/decks/draft-2.bdk/1.dck b/res/decks/draft-2.bdk/1.dck deleted file mode 100644 index 38109765766..00000000000 --- a/res/decks/draft-2.bdk/1.dck +++ /dev/null @@ -1,29 +0,0 @@ - -[general] -draft -[main] -1 Mogg Fanatic -1 Strangling Soot -1 Lightning Elemental -1 Ember-Fist Zubera -9 Swamp -1 Funeral Charm -1 Scathe Zombies -1 Will-o'-the-Wisp -1 Hand of Cruelty -1 Raging Goblin -1 Sengir Vampire -1 Ashen-Skin Zubera -1 Cao Cao, Lord of Wei -1 Fire Imp -1 Fomori Nomad -1 Firebolt -1 Undying Beast -1 Beacon of Destruction -1 Vulshok Sorcerer -1 Kemuri-Onna -1 Ashes to Ashes -9 Mountain -1 Infest -1 Skirk Shaman -[sideboard] diff --git a/res/decks/draft-2.bdk/2.dck b/res/decks/draft-2.bdk/2.dck deleted file mode 100644 index 75425258270..00000000000 --- a/res/decks/draft-2.bdk/2.dck +++ /dev/null @@ -1,26 +0,0 @@ - -[general] -draft -[main] -1 Do or Die -2 Goldmeadow Lookout -1 Armageddon -9 Swamp -1 Helldozer -9 Plains -1 Raise the Alarm -1 Revered Dead -1 Douse in Gloom -2 Stern Judge -1 Foul Imp -1 Kabuto Moth -1 Archangel -1 Visara the Dreadful -1 March of Souls -1 Cao Cao, Lord of Wei -2 Foot Soldiers -1 Courier Hawk -1 Mistral Charger -1 Raise Dead -1 Phyrexian Rager -[sideboard] diff --git a/res/decks/draft-2.bdk/3.dck b/res/decks/draft-2.bdk/3.dck deleted file mode 100644 index 50d0d6d49c5..00000000000 --- a/res/decks/draft-2.bdk/3.dck +++ /dev/null @@ -1,29 +0,0 @@ - -[general] -draft -[main] -1 Evacuation -1 Vedalken Mastermind -1 Primal Plasma -1 Ghost Ship -1 Opt -1 Mawcor -1 Impulse -1 Wall of Kelp -1 Caller of the Claw -1 Frostweb Spider -1 Symbiotic Elf -1 Giant Growth -1 Wonder -9 Island -9 Forest -1 Giant Dustwasp -1 Aven Fisher -1 Trained Armodon -1 Nessian Courser -1 Regrowth -1 Wrap in Vigor -1 Sky Swallower -1 Azure Drake -1 Man-o'-War -[sideboard] diff --git a/res/decks/draft-2.bdk/4.dck b/res/decks/draft-2.bdk/4.dck deleted file mode 100644 index 2f2ce9b6660..00000000000 --- a/res/decks/draft-2.bdk/4.dck +++ /dev/null @@ -1,27 +0,0 @@ - -[general] -draft -[main] -1 Phantom Warrior -1 Keiga, the Tide Star -1 Lava Spike -1 Vodalian Merchant -1 Impulse -1 Bonded Fetch -1 Sarcomite Myr -2 Goblin Sky Raider -1 Hidetsugu's Second Rite -9 Island -1 Anarchist -1 Erratic Explosion -1 Furnace Spirit -1 Raging Minotaur -1 Fomori Nomad -1 Mahamoti Djinn -1 Firebolt -1 Pyroclasm -1 Vulshok Sorcerer -9 Mountain -1 Wojek Embermage -2 Horned Turtle -[sideboard] diff --git a/res/decks/draft-2.bdk/5.dck b/res/decks/draft-2.bdk/5.dck deleted file mode 100644 index 6305fc7baca..00000000000 --- a/res/decks/draft-2.bdk/5.dck +++ /dev/null @@ -1,24 +0,0 @@ - -[general] -draft -[main] -1 Isamaru, Hound of Konda -1 White Shield Crusader -1 Ghost Ship -1 Armageddon -9 Plains -1 Impulse -1 Wall of Kelp -2 Savannah Lions -2 Sarcomite Myr -1 Bonded Fetch -1 Thought Courier -9 Island -2 Angel of Mercy -1 Repulse -1 Renewed Faith -1 Take Possession -1 Life Burst -2 Coastal Hornclaw -2 Skyknight Legionnaire -[sideboard] diff --git a/res/decks/draft-2.bdk/6.dck b/res/decks/draft-2.bdk/6.dck deleted file mode 100644 index 2b56849bf2f..00000000000 --- a/res/decks/draft-2.bdk/6.dck +++ /dev/null @@ -1,28 +0,0 @@ - -[general] -draft -[main] -1 Aggressive Urge -1 Birds of Paradise -1 Imperiosaur -1 Tromp the Domains -1 Elvish Warrior -1 Jokulhaups -1 Penumbra Bobcat -1 Hammerfist Giant -1 Hunted Troll -1 Anger -9 Forest -1 Sprout Swarm -1 Primal Boost -1 Frost Ogre -1 Ancient Silverback -2 Trained Armodon -1 Timberwatch Elf -1 Grizzly Bears -1 Llanowar Behemoth -1 Cackling Flames -1 Elvish Piper -9 Mountain -1 Wojek Embermage -[sideboard] diff --git a/res/decks/draft-2.bdk/7.dck b/res/decks/draft-2.bdk/7.dck deleted file mode 100644 index 1878494b138..00000000000 --- a/res/decks/draft-2.bdk/7.dck +++ /dev/null @@ -1,27 +0,0 @@ - -[general] -draft -[main] -1 Ifh-Biff Efreet -9 Plains -1 Jugan, the Rising Star -1 Penumbra Bobcat -1 Wildsize -2 Veteran Armorer -9 Forest -1 Saltblast -1 Primal Boost -1 Spined Wurm -1 Order of the Sacred Bell -1 Needle Storm -1 Redwood Treefolk -2 Nessian Courser -1 Regrowth -1 Foot Soldiers -1 Serra Avenger -1 Dripping-Tongue Zubera -1 Glory Seeker -1 Malach of the Dawn -1 Squall Drifter -1 Might of Oaks -[sideboard] diff --git a/res/decks/llll.bdk/0.dck b/res/decks/llll.bdk/0.dck deleted file mode 100644 index 25200f901ba..00000000000 --- a/res/decks/llll.bdk/0.dck +++ /dev/null @@ -1,46 +0,0 @@ -llll -[general] -draft -[main] -[sideboard] -1 Lava Spike -2 Dark Banishing -1 Counsel of the Soratami -1 Terramorphic Expanse -1 Blind Phantasm -1 Bonded Fetch -40 Island -1 Avian Changeling -1 Castle Raptors -1 Goblin Skycutter -1 Crazed Skirge -1 Erratic Explosion -2 Feudkiller's Verdict -1 Courier Hawk -1 Fomori Nomad -1 Life Burst -2 Changeling Sentinel -1 Defiant Elf -1 Essence Warden -1 Assault Zeppelid -40 Swamp -40 Plains -1 Goretusk Firebeast -1 Bottle Gnomes -2 Leaf Glider -1 Anger -2 Dross Prowler -1 Foul Imp -1 Echoing Truth -40 Forest -1 Kodama's Reach -1 Cackling Imp -1 Repulse -1 Lignify -3 Ambassador Oak -1 Cloudcrown Oak -1 Coastal Hornclaw -3 Bitterblossom -1 Lucent Liminid -1 Azure Drake -40 Mountain diff --git a/res/decks/llll.bdk/1.dck b/res/decks/llll.bdk/1.dck deleted file mode 100644 index 84a27f0adc3..00000000000 --- a/res/decks/llll.bdk/1.dck +++ /dev/null @@ -1,28 +0,0 @@ - -[general] -draft -[main] -1 Indomitable Ancients -9 Plains -1 Balduvian Barbarians -1 Veteran Armorer -1 Tremor -1 Castle Raptors -1 Anarchist -1 Anger -1 Goblin Ringleader -1 Spark Elemental -1 Lightning Bolt -1 Orcish Artillery -2 Feudkiller's Verdict -1 Raging Minotaur -1 Marble Titan -1 Firebolt -1 Malach of the Dawn -1 Squall Drifter -1 Changeling Sentinel -1 Shinka Gatekeeper -1 Brute Force -9 Mountain -1 Wojek Embermage -[sideboard] diff --git a/res/decks/llll.bdk/2.dck b/res/decks/llll.bdk/2.dck deleted file mode 100644 index 79a5fb80d69..00000000000 --- a/res/decks/llll.bdk/2.dck +++ /dev/null @@ -1,25 +0,0 @@ - -[general] -draft -[main] -1 Whirlpool Rider -1 Remove Soul -1 Ghost Ship -1 Mad Auntie -1 Korlash, Heir to Blackblade -1 Nightmare -9 Swamp -1 Shriekmaw -1 Killer Whale -1 Scathe Zombies -1 Villainous Ogre -9 Island -1 Floating-Dream Zubera -2 Echoing Truth -1 Highway Robber -2 Hand of Cruelty -2 Mulldrifter -2 Coercion -1 Raise Dead -1 Azure Drake -[sideboard] diff --git a/res/decks/llll.bdk/3.dck b/res/decks/llll.bdk/3.dck deleted file mode 100644 index 177d13eb52f..00000000000 --- a/res/decks/llll.bdk/3.dck +++ /dev/null @@ -1,27 +0,0 @@ - -[general] -draft -[main] -2 Reach of Branches -1 Assault Zeppelid -1 Gnarled Mass -2 Giant Warthog -9 Swamp -1 Keening Banshee -1 Immaculate Magistrate -1 Oakgnarl Warrior -1 Funeral Charm -1 Dross Prowler -1 Night's Whisper -9 Forest -1 Wild Mongrel -1 Spined Wurm -1 Dripping-Tongue Zubera -1 Transluminant -1 Vine Trellis -1 Elvish Fury -1 Llanowar Elves -1 Imperious Perfect -1 Defiant Elf -1 Wandering Stream -[sideboard] diff --git a/res/decks/llll.bdk/4.dck b/res/decks/llll.bdk/4.dck deleted file mode 100644 index b663aec40b0..00000000000 --- a/res/decks/llll.bdk/4.dck +++ /dev/null @@ -1,29 +0,0 @@ - -[general] -draft -[main] -1 Lightning Elemental -1 Mad Auntie -1 Nameless Inversion -9 Swamp -1 Gluttonous Zombie -1 Spark Spray -1 Drekavac -1 Scathe Zombies -1 Will-o'-the-Wisp -1 Anarchist -1 Dross Prowler -1 Spark Elemental -1 Visara the Dreadful -1 Goblin Piker -1 Axegrinder Giant -1 Fledgling Djinn -1 Sparkspitter -1 Fomori Nomad -1 Raise Dead -1 Dusk Imp -1 Cackling Flames -1 Ashes to Ashes -9 Mountain -1 Infest -[sideboard] diff --git a/res/decks/llll.bdk/5.dck b/res/decks/llll.bdk/5.dck deleted file mode 100644 index 8a2eca36cc6..00000000000 --- a/res/decks/llll.bdk/5.dck +++ /dev/null @@ -1,26 +0,0 @@ - -[general] -draft -[main] -1 Cranial Extraction -1 Veteran Cavalier -1 Mad Auntie -1 Korlash, Heir to Blackblade -1 Kjeldoran War Cry -9 Swamp -1 Devour in Shadow -9 Plains -1 Revered Dead -2 Prickly Boggart -1 Villainous Ogre -1 Castle Raptors -1 Ghost-Lit Redeemer -2 Hand of Cruelty -1 Raise Dead -1 Sunlance -1 Changeling Sentinel -1 Magus of the Disk -1 Lucent Liminid -2 Meadowboon -1 Inspirit -[sideboard] diff --git a/res/decks/llll.bdk/6.dck b/res/decks/llll.bdk/6.dck deleted file mode 100644 index 9ae7904a7e5..00000000000 --- a/res/decks/llll.bdk/6.dck +++ /dev/null @@ -1,28 +0,0 @@ - -[general] -draft -[main] -1 Reach of Branches -1 Eternal Witness -1 Tromp the Domains -1 Vodalian Merchant -2 Immaculate Magistrate -1 Worldly Tutor -1 Oakgnarl Warrior -1 Caller of the Claw -1 Lumengrid Warden -1 Leaf Glider -1 Rootbreaker Wurm -9 Island -1 Floating-Dream Zubera -9 Forest -1 Words of Wisdom -1 Mulldrifter -1 Needle Storm -1 Bribery -1 Prodigal Sorcerer -1 Coastal Hornclaw -1 Imperious Perfect -1 Llanowar Elves -1 Horned Turtle -[sideboard] diff --git a/res/decks/llll.bdk/7.dck b/res/decks/llll.bdk/7.dck deleted file mode 100644 index 1bad8895ca2..00000000000 --- a/res/decks/llll.bdk/7.dck +++ /dev/null @@ -1,27 +0,0 @@ - -[general] -draft -[main] -1 Mogg Fanatic -1 Pongify -1 Vedalken Mastermind -1 Blind Phantasm -1 Balduvian Barbarians -1 Wall of Kelp -1 Spark Spray -2 Hill Giant -1 Phantom Monster -9 Island -1 Goblin Ringleader -1 Raging Goblin -1 Axegrinder Giant -1 Furnace Spirit -1 Puppeteer -1 Counterspell -1 Coastal Hornclaw -1 Firebolt -1 Wayward Soul -2 Regress -1 Manta Riders -9 Mountain -[sideboard] diff --git a/res/decks/now.bdk/0.dck b/res/decks/now.bdk/0.dck deleted file mode 100644 index a33286b29c6..00000000000 --- a/res/decks/now.bdk/0.dck +++ /dev/null @@ -1,46 +0,0 @@ -now -[general] -draft -[main] -1 Blade of the Sixth Pride -1 Briarhorn -9 Plains -1 Veteran Armorer -1 Bottle Gnomes -2 Garruk Wildspeaker -1 Angel of Mercy -1 Wrath of God -8 Forest -2 Swords to Plowshares -2 Scryb Sprites -1 Disciple of Kangee -2 Serra Angel -1 Lignify -1 Malach of the Dawn -1 Mistral Charger -1 Kodama of the North Tree -1 Troll Ascetic -1 Epic Proportions -2 Crib Swap -[sideboard] -1 Aggressive Urge -1 Phantom Warrior -3 Chandra Nalaar -40 Swamp -1 Sliversmith -31 Plains -1 Shriekmaw -1 Damnation -1 Timetwister -2 Sower of Temptation -40 Island -1 Fighting Drake -32 Forest -1 Visara the Dreadful -1 Spined Wurm -1 Howling Mine -1 Take Possession -3 Lignify -2 The Hive -1 Amnesia -40 Mountain diff --git a/res/decks/now.bdk/1.dck b/res/decks/now.bdk/1.dck deleted file mode 100644 index b423fa81061..00000000000 --- a/res/decks/now.bdk/1.dck +++ /dev/null @@ -1,28 +0,0 @@ - -[general] -draft -[main] -1 White Shield Crusader -1 Serra Sphinx -9 Plains -1 Wall of Kelp -1 Silent-Chant Zubera -1 Savannah Lions -1 Blinding Light -1 Control Magic -1 Thought Courier -1 Wings of Velis Vel -1 Turtleshell Changeling -1 Stern Judge -9 Island -2 Resurrection -1 Torii Watchward -1 Gift of Estates -1 Horseshoe Crab -1 Mulldrifter -1 Disciple of Kangee -1 Marble Titan -1 Kami of Old Stone -1 Horned Turtle -1 Man-o'-War -[sideboard] diff --git a/res/decks/now.bdk/2.dck b/res/decks/now.bdk/2.dck deleted file mode 100644 index a8d0b3866e1..00000000000 --- a/res/decks/now.bdk/2.dck +++ /dev/null @@ -1,27 +0,0 @@ - -[general] -draft -[main] -1 Carnassid -1 Briarhorn -1 Goblin Chariot -1 Enormous Baloth -1 Utopia Tree -2 Char -1 Penumbra Bobcat -1 Goretusk Firebeast -2 Tarox Bladewing -1 Tribal Flames -1 Kiki-Jiki, Mirror Breaker -1 Molten Rain -9 Forest -1 Frost Ogre -1 Scryb Sprites -1 Animate Land -1 Troll Ascetic -1 Brute Force -1 Reckless Wurm -1 Goblin Balloon Brigade -9 Mountain -1 Essence Warden -[sideboard] diff --git a/res/decks/now.bdk/3.dck b/res/decks/now.bdk/3.dck deleted file mode 100644 index a30988d9744..00000000000 --- a/res/decks/now.bdk/3.dck +++ /dev/null @@ -1,27 +0,0 @@ - -[general] -draft -[main] -1 Blade of the Sixth Pride -2 White Shield Crusader -1 Briarhorn -1 Eternal Witness -1 Llanowar Mentor -9 Plains -1 Ice Storm -1 Stern Judge -1 Castle Raptors -9 Forest -1 Resurrection -1 Timberwatch Elf -1 Giant Dustwasp -1 March of Souls -1 Regrowth -1 Malach of the Dawn -1 Transluminant -1 Sunlance -1 Magus of the Disk -1 Wirewood Elf -2 Llanowar Behemoth -1 Elvish Fury -[sideboard] diff --git a/res/decks/now.bdk/4.dck b/res/decks/now.bdk/4.dck deleted file mode 100644 index 1873c4ef27b..00000000000 --- a/res/decks/now.bdk/4.dck +++ /dev/null @@ -1,25 +0,0 @@ - -[general] -draft -[main] -1 Angelfire Crusader -1 Needlespeak Spider -9 Plains -1 Balduvian Barbarians -1 Goretusk Firebeast -1 Molten Rain -1 Goblin Ringleader -1 Archangel -2 Inner-Flame Acolyte -1 Spark Elemental -1 Lay Waste -2 Axegrinder Giant -2 Mudbutton Torchrunner -1 Ryusei, the Falling Star -2 Stone Rain -1 Serra Avenger -1 Beacon of Destruction -1 Cackling Flames -1 Lucent Liminid -9 Mountain -[sideboard] diff --git a/res/decks/now.bdk/5.dck b/res/decks/now.bdk/5.dck deleted file mode 100644 index 8b5ce00e053..00000000000 --- a/res/decks/now.bdk/5.dck +++ /dev/null @@ -1,28 +0,0 @@ - -[general] -draft -[main] -1 Blind Phantasm -9 Swamp -1 Devour in Shadow -2 Kokusho, the Evening Star -1 Damnation -1 Nantuko Shade -1 Expunge -1 Chittering Rats -1 Lumengrid Warden -9 Island -1 Echoing Truth -1 Night's Whisper -1 Foul Imp -1 Highway Robber -1 Hex -1 Hand of Cruelty -1 Slaughterhouse Bouncer -1 Coral Eel -1 Gravedigger -1 Prodigal Sorcerer -1 Kemuri-Onna -1 Infernal Kirin -1 Drudge Skeletons -[sideboard] diff --git a/res/decks/now.bdk/6.dck b/res/decks/now.bdk/6.dck deleted file mode 100644 index cacf3deb0a5..00000000000 --- a/res/decks/now.bdk/6.dck +++ /dev/null @@ -1,28 +0,0 @@ - -[general] -draft -[main] -1 Plague Wind -1 Nameless Inversion -1 Briarhorn -1 Nightmare -9 Swamp -1 Llanowar Mentor -1 Kokusho, the Evening Star -1 Sinkhole -2 Scathe Zombies -1 Watchwolf -1 Dross Prowler -9 Forest -1 Highway Robber -1 Animate Dead -1 Scryb Sprites -1 Ashen-Skin Zubera -1 Demonic Tutor -1 Gravedigger -1 Lignify -1 Llanowar Behemoth -1 Drudge Skeletons -1 Mass of Ghouls -1 Essence Warden -[sideboard] diff --git a/res/decks/now.bdk/7.dck b/res/decks/now.bdk/7.dck deleted file mode 100644 index 89fac90b63b..00000000000 --- a/res/decks/now.bdk/7.dck +++ /dev/null @@ -1,29 +0,0 @@ - -[general] -draft -[main] -1 Minions' Murmurs -1 Lightning Elemental -1 Ember-Fist Zubera -1 Blistering Firecat -1 Strangling Soot -1 Needlespeak Spider -1 Flametongue Kavu -9 Swamp -1 Gluttonous Zombie -1 Ball Lightning -1 Tribal Flames -1 Goblin Ringleader -1 Inner-Flame Acolyte -1 Tendrils of Corruption -1 Goblin Piker -1 Mudbutton Torchrunner -1 Cackling Imp -1 Minotaur Explorer -1 Coercion -1 Bog Imp -1 Dusk Imp -1 Cackling Flames -9 Mountain -1 Wojek Embermage -[sideboard] diff --git a/res/decks/now3.bdk/0.dck b/res/decks/now3.bdk/0.dck deleted file mode 100644 index fc28a91db3b..00000000000 --- a/res/decks/now3.bdk/0.dck +++ /dev/null @@ -1,53 +0,0 @@ -now3 -[general] -draft -[main] -1 Blade of the Sixth Pride -1 Needlespeak Spider -1 Kjeldoran War Cry -1 Haunted Angel -10 Plains -1 Tarox Bladewing -1 Leonin Skyhunter -1 Spotted Griffin -1 Tribal Flames -1 Kabuto Moth -1 Angel of Mercy -1 Wrath of God -2 Skyhunter Prowler -1 Goblin Skycutter -1 Swords to Plowshares -1 Saltblast -1 Lantern Kami -1 Sparksmith -2 Fire Imp -1 Sunlance -1 Cackling Flames -1 Diving Griffin -7 Mountain -[sideboard] -1 Nightmare -40 Island -1 Lightning Bolt -1 Orcish Artillery -1 Venerable Monk -1 Dripping-Tongue Zubera -1 Glory Seeker -1 Darksteel Gargoyle -1 Ashes to Ashes -1 Spitting Spider -1 Wind Drake -1 Angelic Blessing -40 Swamp -30 Plains -1 Ichor Slick -40 Forest -2 Wild Mongrel -1 Goblin Piker -2 Animate Dead -1 Vine Trellis -1 Karplusan Strider -1 Kemuri-Onna -1 Vulshok Sorcerer -1 Azure Drake -33 Mountain diff --git a/res/decks/now3.bdk/1.dck b/res/decks/now3.bdk/1.dck deleted file mode 100644 index 7506b07a761..00000000000 --- a/res/decks/now3.bdk/1.dck +++ /dev/null @@ -1,28 +0,0 @@ - -[general] -draft -[main] -1 Isamaru, Hound of Konda -1 Peregrine Drake -1 Snapping Drake -1 Goldmeadow Lookout -1 Primal Plasma -1 Blind Phantasm -9 Plains -1 Thought Courier -9 Island -1 Ancestral Recall -1 Floating-Dream Zubera -1 Angel of Mercy -1 Skyhunter Prowler -1 Saltblast -2 Peel from Reality -1 Cloudseeker -1 Tithe -1 Coral Eel -1 Repulse -1 Serra Avenger -1 Puppeteer -1 Mistral Charger -1 Diving Griffin -[sideboard] diff --git a/res/decks/now3.bdk/2.dck b/res/decks/now3.bdk/2.dck deleted file mode 100644 index 42e7248289f..00000000000 --- a/res/decks/now3.bdk/2.dck +++ /dev/null @@ -1,27 +0,0 @@ - -[general] -draft -[main] -1 Ember-Fist Zubera -1 Worldly Tutor -1 Goblin Chariot -1 Tarox Bladewing -1 Frostweb Spider -1 Boil -1 Harmonize -1 Baru, Fist of Krosa -1 Path of Anger's Flame -1 Goblin Ringleader -9 Forest -1 Goblin Skycutter -1 Lay Waste -1 Sparksmith -1 Magus of the Library -1 Vine Trellis -1 Karplusan Strider -2 Wirewood Elf -1 Elvish Fury -1 Goblin Balloon Brigade -9 Mountain -2 Essence Warden -[sideboard] diff --git a/res/decks/now3.bdk/3.dck b/res/decks/now3.bdk/3.dck deleted file mode 100644 index 100222d6401..00000000000 --- a/res/decks/now3.bdk/3.dck +++ /dev/null @@ -1,26 +0,0 @@ - -[general] -draft -[main] -1 Spitting Spider -1 Goldmeadow Lookout -1 Craw Wurm -1 Kjeldoran War Cry -9 Plains -1 Commune with Nature -1 Savannah Lions -1 Veteran Armorer -2 Giant Growth -1 Arashi, the Sky Asunder -1 Baru, Fist of Krosa -9 Forest -1 Archangel -1 Order of the Sacred Bell -2 Tithe -2 Nessian Courser -1 Mistral Charger -1 Transluminant -1 Wirewood Elf -1 Magus of the Disk -1 Essence Warden -[sideboard] diff --git a/res/decks/now3.bdk/4.dck b/res/decks/now3.bdk/4.dck deleted file mode 100644 index 84f66510d59..00000000000 --- a/res/decks/now3.bdk/4.dck +++ /dev/null @@ -1,25 +0,0 @@ - -[general] -draft -[main] -1 Blade of the Sixth Pride -1 Mogg Fanatic -9 Plains -1 Balduvian Barbarians -1 Spark Spray -1 Goblin Chariot -1 Leonin Skyhunter -1 Kiki-Jiki, Mirror Breaker -1 Boil -2 Goblin Skycutter -1 Prodigal Pyromancer -1 Torii Watchward -1 Goblin Piker -2 Erratic Explosion -2 Fomori Nomad -2 Beacon of Destruction -1 Magus of the Disk -1 Goblin Balloon Brigade -1 Lucent Liminid -9 Mountain -[sideboard] diff --git a/res/decks/now3.bdk/5.dck b/res/decks/now3.bdk/5.dck deleted file mode 100644 index 132c70e75c2..00000000000 --- a/res/decks/now3.bdk/5.dck +++ /dev/null @@ -1,27 +0,0 @@ - -[general] -draft -[main] -1 Minions' Murmurs -1 Counsel of the Soratami -1 Strangling Soot -1 Faceless Butcher -1 Korlash, Heir to Blackblade -2 Nightmare -9 Swamp -1 Devour in Shadow -1 Keening Banshee -1 Concentrate -2 Chittering Rats -1 Wonder -1 Villainous Ogre -9 Island -1 Echoing Truth -1 Giant Octopus -1 Foul Imp -1 Visara the Dreadful -1 Fledgling Djinn -1 Aven Fisher -1 Coastal Hornclaw -1 Mass of Ghouls -[sideboard] diff --git a/res/decks/now3.bdk/6.dck b/res/decks/now3.bdk/6.dck deleted file mode 100644 index 079b900d862..00000000000 --- a/res/decks/now3.bdk/6.dck +++ /dev/null @@ -1,24 +0,0 @@ - -[general] -draft -[main] -1 Sengir Autocrat -3 Nightmare -1 Zombify -9 Swamp -1 Keening Banshee -1 Kavu Climber -1 Arashi, the Sky Asunder -1 Daggerclaw Imp -2 Night's Whisper -9 Forest -1 Sorceress Queen -2 Highway Robber -1 Tendrils of Corruption -1 Animate Dead -1 Cackling Imp -1 Ashen-Skin Zubera -2 Transluminant -1 Raise Dead -1 Sakura-Tribe Elder -[sideboard] diff --git a/res/decks/now3.bdk/7.dck b/res/decks/now3.bdk/7.dck deleted file mode 100644 index 20d681a2a71..00000000000 --- a/res/decks/now3.bdk/7.dck +++ /dev/null @@ -1,22 +0,0 @@ - -[general] -draft -[main] -1 Sengir Autocrat -1 Needlespeak Spider -1 Korlash, Heir to Blackblade -1 Nightmare -9 Swamp -1 Hammerfist Giant -3 Hill Giant -1 Chittering Rats -2 Funeral Charm -3 Path of Anger's Flame -3 Highway Robber -1 Sorceress Queen -1 Ashen-Skin Zubera -1 Fire Imp -1 Cackling Flames -9 Mountain -1 Skirk Shaman -[sideboard] diff --git a/res/decks/now99.bdk/0.dck b/res/decks/now99.bdk/0.dck deleted file mode 100644 index c0e5f930106..00000000000 --- a/res/decks/now99.bdk/0.dck +++ /dev/null @@ -1,51 +0,0 @@ -now99 -[general] -draft -[main] -1 Royal Assassin -2 Dark Banishing -1 Mox Emerald -1 Steel Wall -1 Keening Banshee -16 Swamp -1 Damnation -1 Douse in Gloom -1 Dross Prowler -2 Daggerclaw Imp -2 Tendrils of Corruption -1 Sengir Vampire -1 Urborg Syphon-Mage -2 Animate Dead -1 Mox Pearl -1 Liliana Vess -1 Ashen-Skin Zubera -1 Seizan, Perverter of Truth -1 Pestilence -1 Phyrexian Rager -1 Dusk Imp -[sideboard] -1 Snapping Drake -1 Ghost Ship -1 The Unspeakable -1 Air Elemental -1 Tanglebloom -1 Tarox Bladewing -40 Island -1 Garruk Wildspeaker -1 Ancestral Recall -1 Goblin Skycutter -1 Liliana Vess -1 Darksteel Gargoyle -1 Dancing Scimitar -2 Primal Clay -24 Swamp -40 Plains -1 That Which Was Taken -1 Char -1 Lumengrid Warden -1 Blinkmoth Nexus -1 Serendib Efreet -40 Forest -1 Raise Dead -1 Whiptongue Frog -40 Mountain diff --git a/res/decks/now99.bdk/1.dck b/res/decks/now99.bdk/1.dck deleted file mode 100644 index 3e4c59e888e..00000000000 --- a/res/decks/now99.bdk/1.dck +++ /dev/null @@ -1,28 +0,0 @@ - -[general] -draft -[main] -1 Assault Zeppelid -1 Lightning Elemental -1 Giant Warthog -1 Flametongue Kavu -1 Worldly Tutor -1 Akki Drillmaster -1 Spark Spray -1 Goblin Sky Raider -1 Goretusk Firebeast -1 Sliver Legion -1 Hill Giant -2 Hidetsugu's Second Rite -9 Forest -1 Barkhide Mauler -1 Wild Mongrel -1 Feral Lightning -1 Wild Elephant -1 Frost Ogre -1 Magus of the Library -1 Brute Force -1 Llanowar Behemoth -1 Elvish Piper -9 Mountain -[sideboard] diff --git a/res/decks/now99.bdk/2.dck b/res/decks/now99.bdk/2.dck deleted file mode 100644 index f8a77e65753..00000000000 --- a/res/decks/now99.bdk/2.dck +++ /dev/null @@ -1,27 +0,0 @@ - -[general] -draft -[main] -1 Goldmeadow Lookout -1 Angelfire Crusader -2 Carnassid -1 Reviving Dose -9 Plains -1 Suntail Hawk -1 Caller of the Claw -1 Hunted Troll -1 Stern Judge -1 Harmonize -9 Forest -1 Swords to Plowshares -1 Lantern Kami -1 Wild Elephant -1 Courier Hawk -1 Animate Land -1 Wrap in Vigor -1 Squall Drifter -1 Mistral Charger -2 Karplusan Strider -1 Kami of Old Stone -1 Inspirit -[sideboard] diff --git a/res/decks/now99.bdk/3.dck b/res/decks/now99.bdk/3.dck deleted file mode 100644 index ef5644e2ed6..00000000000 --- a/res/decks/now99.bdk/3.dck +++ /dev/null @@ -1,26 +0,0 @@ - -[general] -draft -[main] -1 Goldmeadow Lookout -2 Lightning Elemental -9 Plains -1 Savannah Lions -1 Hammerfist Giant -1 Leonin Skyhunter -1 Hidetsugu's Second Rite -1 Tribal Flames -1 Tremor -1 Boil -2 Intrepid Hero -2 Goblin Ringleader -1 Feral Lightning -1 Soul Warden -1 Frost Ogre -1 Ryusei, the Falling Star -1 Serra Angel -1 Minotaur Explorer -1 Pyroclasm -1 Kami of Old Stone -9 Mountain -[sideboard] diff --git a/res/decks/now99.bdk/4.dck b/res/decks/now99.bdk/4.dck deleted file mode 100644 index bffa06f1ed1..00000000000 --- a/res/decks/now99.bdk/4.dck +++ /dev/null @@ -1,28 +0,0 @@ - -[general] -draft -[main] -1 Ghost Ship -1 Primal Plasma -1 Blind Phantasm -1 Zombify -9 Swamp -1 Mawcor -1 Hymn to Tourach -1 Giant Cockroach -1 Drekavac -1 Killer Whale -1 Thought Courier -9 Island -1 Will-o'-the-Wisp -1 Night's Whisper -1 Sengir Vampire -1 Peel from Reality -1 Coral Eel -2 Cackling Imp -1 Puppeteer -1 Counterspell -1 Amnesia -1 Drudge Skeletons -1 Azure Drake -[sideboard] diff --git a/res/decks/now99.bdk/5.dck b/res/decks/now99.bdk/5.dck deleted file mode 100644 index b29aa95ca24..00000000000 --- a/res/decks/now99.bdk/5.dck +++ /dev/null @@ -1,28 +0,0 @@ - -[general] -draft -[main] -1 Wellwisher -1 Plague Wind -1 Giant Warthog -9 Swamp -1 Elvish Warrior -1 Llanowar Mentor -1 Sylvan Messenger -1 Giant Cockroach -1 Filthy Cur -1 Sliver Legion -1 Caller of the Claw -1 Daggerclaw Imp -9 Forest -1 Sprout Swarm -1 Tendrils of Corruption -1 Wild Elephant -1 Sengir Vampire -2 Needle Storm -1 Giant Dustwasp -1 Cao Cao, Lord of Wei -1 Phyrexian Rager -1 Karplusan Strider -1 Ashes to Ashes -[sideboard] diff --git a/res/decks/now99.bdk/6.dck b/res/decks/now99.bdk/6.dck deleted file mode 100644 index 7b5e2d03ddf..00000000000 --- a/res/decks/now99.bdk/6.dck +++ /dev/null @@ -1,28 +0,0 @@ - -[general] -draft -[main] -1 Mogg Fanatic -1 Faceless Butcher -9 Swamp -1 Helldozer -1 Drekavac -1 Goretusk Firebeast -1 Juzam Djinn -1 Flamebreak -1 Chittering Rats -1 Scathe Zombies -1 Kiki-Jiki, Mirror Breaker -1 Boil -1 Night's Whisper -1 Foul Imp -1 Sengir Vampire -2 Animate Dead -1 Urborg Syphon-Mage -1 Sparkspitter -1 Greater Forgeling -1 Dusk Imp -1 Vulshok Sorcerer -1 Ashes to Ashes -9 Mountain -[sideboard] diff --git a/res/decks/now99.bdk/7.dck b/res/decks/now99.bdk/7.dck deleted file mode 100644 index 314420d8875..00000000000 --- a/res/decks/now99.bdk/7.dck +++ /dev/null @@ -1,25 +0,0 @@ - -[general] -draft -[main] -1 Radiant, Archangel -1 Angelfire Crusader -2 Armageddon -9 Swamp -1 Lightning Angel -9 Plains -1 Veteran Armorer -1 Chittering Rats -1 Foul Imp -3 Angel of Mercy -1 Tendrils of Corruption -2 Swords to Plowshares -1 Sengir Vampire -1 Soul Warden -1 Venerable Monk -1 Gravedigger -1 Squall Drifter -1 Phyrexian Rager -1 Sunlance -1 Infernal Kirin -[sideboard] diff --git a/res/main.properties b/res/main.properties index 1b7d51acc49..80a8cb4a0cd 100644 --- a/res/main.properties +++ b/res/main.properties @@ -1,6 +1,6 @@ program/mail=mtgerror@yahoo.com program/forum=http://www.slightlymagic.net/forum/viewforum.php?f=26 -program/version=MTG Forge -- official beta: 09/11/25, SVN revision: 119 +program/version=MTG Forge -- official beta: 09/11/25, SVN revision: 122 tokens--file=AllTokens.txt diff --git a/src/forge/CardFactory.java b/src/forge/CardFactory.java index 6c8cc66c03c..06ef65cf249 100644 --- a/src/forge/CardFactory.java +++ b/src/forge/CardFactory.java @@ -12510,17 +12510,21 @@ public class CardFactory implements NewConstants { } - if(nonCreatureCards.size() == 0) - return; + if(cards.size() == 0) + return; //human chooses if(card.getController().equals(Constant.Player.Human)) { AllZone.Display.getChoice("Revealing hand", cards.toArray()); + if(nonCreatureCards.size() == 0) + return; choice = (Card) AllZone.Display.getChoice("Choose", nonCreatureCards.toArray()); } else//computer chooses { + if(nonCreatureCards.size() == 0) + return; choice = CardUtil.getRandom(nonCreatureCards.toArray()); } @@ -12580,21 +12584,24 @@ public class CardFactory implements NewConstants { { //System.out.println("ostracize: " + cards.get(i).getType()); creatureCards.add(cards.get(i)); - } - + } } - if(creatureCards.size() == 0) + if(cards.size() == 0) return; //human chooses if(card.getController().equals(Constant.Player.Human)) { AllZone.Display.getChoice("Revealing hand", cards.toArray()); + if(creatureCards.size() == 0) + return; choice = (Card) AllZone.Display.getChoice("Choose", creatureCards.toArray()); } else//computer chooses { + if(creatureCards.size() == 0) + return; choice = CardUtil.getRandom(creatureCards.toArray()); } @@ -17208,6 +17215,279 @@ return land.size() > 1 && CardFactoryUtil.AI_isMainPhase(); card.clearSpellAbility(); card.addSpellAbility(spell); }//*************** END ************ END ************************** + + //*************** START *********** START ************************** + else if (cardName.equals("Millstone")) + { + Ability_Tap ab1 = new Ability_Tap(card, "2") + { + + private static final long serialVersionUID = 42470566751344693L; + + public boolean canPlayAI() + { + String player = getTargetPlayer(); + PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player); + CardList libList = new CardList(lib.getCards()); + return libList.size() > 0; + } + + public void resolve() + { + String player = getTargetPlayer(); + + PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player); + PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, player); + CardList libList = new CardList(lib.getCards()); + + int max = 2; + if (libList.size() < 2) + max = libList.size(); + + for (int i=0;i 0) + { + String[] choices = + { "Yes", "No" }; + Object choice = AllZone.Display.getChoice( + "Search fo Basic Land?", choices); + if (choice.equals("Yes")) + { + Object o = AllZone.Display + .getChoiceOptional( + "Pick a basic land card to put into play", + lands.toArray()); + if (o != null) + { + Card card = (Card) o; + lib.remove(card); + AllZone.Human_Play.add(card); + card.tap(); + lands.remove(card); + AllZone.GameAction.shuffle(player); + } + }// if choice yes + } // player equals human + else if (player.equals("Computer") && lands.size() > 0) + { + Card card = lands.get(0); + lib.remove(card); + // hand.add(card); + AllZone.Computer_Play.add(card); + card.tap(); + lands.remove(card); + AllZone.GameAction.shuffle(player); + } + //remove card from play + AllZone.GameAction.removeFromGame(getTargetCard()); + } + }//resolve() + public boolean canPlayAI() + { + CardList creature = new CardList(AllZone.Human_Play.getCards()); + creature = creature.getType("Creature"); + creature = creature.filter(new CardListFilter() + { + public boolean addCard(Card c) { + return CardFactoryUtil.canTarget(card,c); + } + }); + return creature.size() != 0 && (AllZone.Phase.getTurn() > 4); + } + public void chooseTargetAI() + { + CardList play = new CardList(AllZone.Human_Play.getCards()); + Card target = CardFactoryUtil.AI_getBestCreature(play, card); + setTargetCard(target); + } + }; + spell.setBeforePayMana(CardFactoryUtil.input_targetCreature(spell)); + + card.clearSpellAbility(); + card.addSpellAbility(spell); + }//*************** END ************ END ************************** + + + //*************** START *********** START ************************** + if (cardName.equals("Traumatize")) + { + final SpellAbility spell = new Spell(card) + { + private static final long serialVersionUID = 42470566751344693L; + + public boolean canPlayAI() + { + String player = getTargetPlayer(); + PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player); + CardList libList = new CardList(lib.getCards()); + return libList.size() > 0; + } + + public void resolve() + { + String player = getTargetPlayer(); + + PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player); + PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, player); + CardList libList = new CardList(lib.getCards()); + + int max = libList.size()/2 ; + + for (int i=0;i 0; + } + + public void resolve() + { + String player = getTargetPlayer(); + + PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player); + PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, player); + CardList libList = new CardList(lib.getCards()); + + int max = libList.size(); + int prev = 0 ; + int count = 0; + int total =0; + int once = 0; + + for (int i=0;i 0; + } + + public void resolve() + { + String player = getTargetPlayer(); + + PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player); + PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, player); + PlayerZone exiled = AllZone.getZone(Constant.Zone.Removed_From_Play, player); + CardList libList = new CardList(lib.getCards()); + CardList grvList = new CardList(grave.getCards()); + + int max = libList.size(); + int grv = grvList.size(); + + for (int j=0;j < grv;j++) + { + Card g = grvList.get(j); + for (int i=0;i 0) + { + Object o = AllZone.Display + .getChoiceOptional( + "Pick a forest card to put into play", + lands.toArray()); + if (o != null) + { + Card card = (Card) o; + lib.remove(card); + AllZone.Human_Play.add(card); + // card.tap(); + lands.remove(card); + AllZone.GameAction.shuffle(player); + } + } // player equals human + else if (player.equals("Computer") && lands.size() > 0) + { + Card card = lands.get(0); + lib.remove(card); + // hand.add(card); + AllZone.Computer_Play.add(card); + // card.tap(); + lands.remove(card); + AllZone.GameAction.shuffle(player); + } + } + }; + Command intoPlay = new Command() + { + private static final long serialVersionUID = 1832932499373431651L; + + public void execute() + { + ability.setStackDescription(card.getController() +" searches his library for a Forest card to put that card into play."); + AllZone.Stack.add(ability); + } + }; + card.addComesIntoPlayCommand(intoPlay); + }//*************** END ************ END ************************** // Cards with Cycling abilities // -1 means keyword "Cycling" not found diff --git a/src/forge/CardFactory_Lands.java b/src/forge/CardFactory_Lands.java index f35c8b78f6c..14cc4af6cf3 100644 --- a/src/forge/CardFactory_Lands.java +++ b/src/forge/CardFactory_Lands.java @@ -567,6 +567,100 @@ class CardFactory_Lands { }; a1.setBeforePayMana(new Input_PayManaCost_Ability(a1.getManaCost(), paid1)); + + final SpellAbility[] a2 = new SpellAbility[1]; + final Command eot2 = new Command() + { + private static final long serialVersionUID = 6180724472470740160L; + + public void execute() + { + Card c = a2[0].getTargetCard(); + if(AllZone.GameAction.isCardInPlay(c)) + { + c.addTempAttackBoost(-1); + c.addTempDefenseBoost(-1); + } + } + }; + + a2[0] = new Ability_Tap(card) + { + private static final long serialVersionUID = 3561450520225198222L; + + public boolean canPlayAI() + { + return getAttacker() != null; + } + public void chooseTargetAI() + { + setTargetCard(getAttacker()); + } + public Card getAttacker() + { + //target creature that is going to attack + Combat c = ComputerUtil.getAttackers(); + CardList att = new CardList(c.getAttackers()); + att.remove(card); + att.shuffle(); + + if(att.size() != 0) + return att.get(0); + else + return null; + }//getAttacker() + + public void resolve() + { + Card c = a2[0].getTargetCard(); + if(AllZone.GameAction.isCardInPlay(c) && CardFactoryUtil.canTarget(card,c) ) + { + c.addTempAttackBoost(1); + c.addTempDefenseBoost(1); + + AllZone.EndOfTurn.addUntil(eot2); + } + }//resolve() + };//SpellAbility + card.addSpellAbility(a2[0]); + a2[0].setDescription("tap: Target Assembly-Worker gets +1/+1 until end of turn."); + + + @SuppressWarnings("unused") // target unused + final Input target = new Input() + { + private static final long serialVersionUID = 8913477363141356082L; + + public void showMessage() + { + ButtonUtil.enableOnlyCancel(); + AllZone.Display.showMessage("Select Assembly-Worker to get +1/+1"); + } + public void selectCard(Card c, PlayerZone zone) + { + if(!CardFactoryUtil.canTarget(card, c)){ + AllZone.Display.showMessage("Cannot target this card (Shroud? Protection?)."); + } + else if(c.isCreature() && c.getType().contains("Assembly-Worker")) + { + card.tap(); + AllZone.Human_Play.updateObservers(); + + a2[0].setTargetCard(c);//since setTargetCard() changes stack description + a2[0].setStackDescription(c +" gets +1/+1 until EOT"); + + AllZone.InputControl.resetInput(); + AllZone.Stack.add(a2[0]); + } + }//selectCard() + public void selectButtonCancel() + { + card.untap(); + stop(); + } + };//Input target + a2[0].setBeforePayMana(CardFactoryUtil.input_targetType(a2[0], "Assembly-Worker")); + }//*************** END ************ END ************************** //*************** START *********** START ************************** @@ -1946,7 +2040,585 @@ class CardFactory_Lands { return card; }//*************** END ************ END ************************** - + + //*************** START *********** START ************************** + else if(cardName.equals("Spawning Pool")) + { + + final Command untilEOT = new Command() + { + private static final long serialVersionUID = -451839437837081897L; + + public void execute() + { + card.setShield(0); + } + }; + + final SpellAbility a2 = new Ability(card, "B") + { + public boolean canPlayAI() {return false;} + + public void resolve() + { + card.addShield(); + AllZone.EndOfTurn.addUntil(untilEOT); + } + };//SpellAbility + a2.setDescription("B: Regenerate Spawning Pool."); + a2.setStackDescription("Regenerate Spawning Pool"); + + a2.setBeforePayMana(new Input_PayManaCost(a2)); + + final Command eot1 = new Command() + { + private static final long serialVersionUID = -8535770979347971863L; + + public void execute() + { + Card c = card; + + c.setBaseAttack(0); + c.setBaseDefense(0); + c.removeType("Creature"); + c.removeType("Skeleton"); + c.setManaCost(""); + c.removeSpellAbility(a2); + + } + }; + + final SpellAbility a1 = new Ability(card, "1 B") + { + public boolean canPlayAI() + { + return ! card.getType().contains("Creature"); + } + public void resolve() + { + Card c = card; + + c.setBaseAttack(1); + c.setBaseDefense(1); + c.setManaCost("B"); + + //to prevent like duplication like "Creature Creature" + boolean hasRegen = false; + SpellAbility[] sas = card.getSpellAbility(); + for (SpellAbility sa : sas) + { + if(sa.toString().equals("B: Regenerate Spawning Pool.")) //this is essentially ".getDescription()" + hasRegen = true; + } + if (!hasRegen){ card.addSpellAbility(a2); + } + if(!c.getType().contains("Creature")) + c.addType("Creature"); + if(!c.getType().contains("Skeleton")) + c.addType("Skeleton"); + AllZone.EndOfTurn.addUntil(eot1); + } + };//SpellAbility + + + card.clearSpellKeepManaAbility(); + card.addSpellAbility(a1); + a1.setStackDescription(card +" becomes a 1/1 skeleton creature with B: regenerate this creature until EOT"); + a1.setDescription("1B: Spawning Pool becomes a 1/1 skeleton creature with B: regenerate this creature until end of the turn. It's still a land."); + Command paid1 = new Command() { + private static final long serialVersionUID = -6800983290478844750L; + + public void execute() {AllZone.Stack.add(a1);} + }; + a1.setBeforePayMana(new Input_PayManaCost_Ability(a1.getManaCost(), paid1)); + }//*************** END ************ END ************************** + + //*************** START *********** START ************************** + else if(cardName.equals("Shizo, Death's Storehouse")) + { + final SpellAbility[] a2 = new SpellAbility[1]; + final Command eot2 = new Command() + { + private static final long serialVersionUID = 6180724472470740160L; + + public void execute() + { + Card c = a2[0].getTargetCard(); + if(AllZone.GameAction.isCardInPlay(c)) + { + c.removeIntrinsicKeyword("Fear"); + } + } + }; + + a2[0] = new Ability_Tap(card, "B") + { + private static final long serialVersionUID = 3561450520225198222L; + + public boolean canPlayAI() + { + return getAttacker() != null; + } + public void chooseTargetAI() + { + setTargetCard(getAttacker()); + } + public Card getAttacker() + { + //target creature that is going to attack + Combat c = ComputerUtil.getAttackers(); + CardList att = new CardList(c.getAttackers()); + att.remove(card); + att.shuffle(); + + if(att.size() != 0) + return att.get(0); + else + return null; + }//getAttacker() + + public void resolve() + { + Card c = a2[0].getTargetCard(); + if(AllZone.GameAction.isCardInPlay(c) && CardFactoryUtil.canTarget(card,c) ) + { + if(!c.getIntrinsicKeyword().contains("Fear")) + c.addIntrinsicKeyword("Fear"); + + AllZone.EndOfTurn.addUntil(eot2); + } + }//resolve() + };//SpellAbility + card.addSpellAbility(a2[0]); + a2[0].setDescription("B, tap: Target legendary creature gains fear until end of turn."); + + + @SuppressWarnings("unused") // target unused + final Input target = new Input() + { + private static final long serialVersionUID = 8913477363141356082L; + + public void showMessage() + { + ButtonUtil.enableOnlyCancel(); + AllZone.Display.showMessage("Select egendary creature to get fear"); + } + public void selectCard(Card c, PlayerZone zone) + { + if(!CardFactoryUtil.canTarget(card, c)){ + AllZone.Display.showMessage("Cannot target this card (Shroud? Protection?)."); + } + else if(c.isCreature() && c.getType().contains("Legendary")) + { + card.tap(); + AllZone.Human_Play.updateObservers(); + + a2[0].setTargetCard(c);//since setTargetCard() changes stack description + a2[0].setStackDescription(c +" gets fear until EOT"); + + AllZone.InputControl.resetInput(); + AllZone.Stack.add(a2[0]); + } + }//selectCard() + public void selectButtonCancel() + { + card.untap(); + stop(); + } + };//Input target + a2[0].setBeforePayMana(CardFactoryUtil.input_targetType(a2[0], "Legendary")); + + }//*************** END ************ END ************************** + + //*************** START *********** START ************************** + if(cardName.equals("Novijen, Heart of Progress")) + { + card.clearSpellKeepManaAbility(); + + final CardListFilter targets = new CardListFilter() + { + + public boolean addCard(Card c) { + return AllZone.GameAction.isCardInPlay(c) && c.isCreature() + && c.getTurnInZone() == AllZone.Phase.getTurn(); + } + }; + Ability_Tap ability = new Ability_Tap(card,"G U") + { + private static final long serialVersionUID = 1416258136308898492L; + + CardList inPlay = new CardList(); + public boolean canPlayAI() + { + if(!(AllZone.Phase.getPhase().equals(Constant.Phase.Main1) + && AllZone.Phase.getActivePlayer().equals(Constant.Player.Computer))) + return false; + inPlay.clear(); + inPlay.addAll(AllZone.Computer_Play.getCards()); + return (inPlay.filter(targets).size() > 1); + } + public void resolve() { + inPlay.clear(); + inPlay.addAll(AllZone.Human_Play.getCards()); + inPlay.addAll(AllZone.Computer_Play.getCards()); + for(Card targ : inPlay.filter(targets)) + targ.addCounter(Counters.P1P1, 1); + } + }; + ability.setDescription("tap: Put a +1/+1 counter on each creature that entered the battlefield this turn."); + ability.setStackDescription("Put a +1/+1 counter on each creature that entered the battlefield this turn."); + card.addSpellAbility(ability); + } + //*************** END ************ END ************************** + + //*************** START *********** START ************************** + else if(cardName.equals("Urza's Factory")) + { + final Ability_Tap ability = new Ability_Tap(card, "7") + { + private static final long serialVersionUID = 1781653158406511188L; + + public boolean canPlay() + { + if (AllZone.GameAction.isCardInPlay(card)) + return true; + else + return false; + } + + public void resolve() + { + String player = card.getController(); + + PlayerZone play = AllZone.getZone(Constant.Zone.Play, player); + + //make token + Card c = new Card(); + + c.setOwner(card.getController()); + c.setController(card.getController()); + + c.setName("Assembly-Worker"); + c.setImageName("c 2 2 Assembly-Worker"); + c.setManaCost(""); + c.setToken(true); + + c.addType("Artifact"); + c.addType("Creature"); + c.addType("Assembly-Worker"); + c.setBaseAttack(2); + c.setBaseDefense(2); + + play.add(c); + } + }; + + ability.setDescription("7, tap: Put a 2/2 colorless Assembly-Worker artifact creature token onto the battlefield."); + ability.setStackDescription(card.getName() + " - Put a 2/2 colorless Assembly-Worker artifact creature token onto the battlefield."); + + card.addSpellAbility(ability); + + //not sure what's going on here, maybe because it's a land it doesn't add the ability to the text? + //anyway, this does the trick: + //card.removeIntrinsicKeyword("tap: add 1"); + card.setText(card.getSpellText() + "\r\n Put a 2/2 colorless Assembly-Worker artifact creature token onto the battlefield."); + //card.addIntrinsicKeyword("tap: add 1"); + + }//*************** END ************ END ************************** + + //*************** START *********** START ************************** + else if(cardName.equals("Goblin Burrows")) + { + final SpellAbility[] a2 = new SpellAbility[1]; + final Command eot2 = new Command() + { + private static final long serialVersionUID = 6180724472470740160L; + + public void execute() + { + Card c = a2[0].getTargetCard(); + if(AllZone.GameAction.isCardInPlay(c)) + { + c.addTempAttackBoost(-2); + } + } + }; + + a2[0] = new Ability_Tap(card, "1 R") + { + private static final long serialVersionUID = 3561450520225198222L; + + public boolean canPlayAI() + { + return getAttacker() != null; + } + public void chooseTargetAI() + { + setTargetCard(getAttacker()); + } + public Card getAttacker() + { + //target creature that is going to attack + Combat c = ComputerUtil.getAttackers(); + CardList att = new CardList(c.getAttackers()); + att.remove(card); + att.shuffle(); + + if(att.size() != 0) + return att.get(0); + else + return null; + }//getAttacker() + + public void resolve() + { + Card c = a2[0].getTargetCard(); + if(AllZone.GameAction.isCardInPlay(c) && CardFactoryUtil.canTarget(card,c) ) + { + c.addTempAttackBoost(2); + + AllZone.EndOfTurn.addUntil(eot2); + } + }//resolve() + };//SpellAbility + card.addSpellAbility(a2[0]); + a2[0].setDescription("1 R, tap: Target Goblin gets +2/+0 until end of turn."); + + + @SuppressWarnings("unused") // target unused + final Input target = new Input() + { + private static final long serialVersionUID = 8913477363141356082L; + + public void showMessage() + { + ButtonUtil.enableOnlyCancel(); + AllZone.Display.showMessage("Select Goblin to get +2/+0"); + } + public void selectCard(Card c, PlayerZone zone) + { + if(!CardFactoryUtil.canTarget(card, c)){ + AllZone.Display.showMessage("Cannot target this card (Shroud? Protection?)."); + } + else if(c.isCreature() && c.getType().contains("Goblin")) + { + card.tap(); + AllZone.Human_Play.updateObservers(); + + a2[0].setTargetCard(c);//since setTargetCard() changes stack description + a2[0].setStackDescription(c +" gets +2/+0 until EOT"); + + AllZone.InputControl.resetInput(); + AllZone.Stack.add(a2[0]); + } + }//selectCard() + public void selectButtonCancel() + { + card.untap(); + stop(); + } + };//Input target + a2[0].setBeforePayMana(CardFactoryUtil.input_targetType(a2[0], "Goblin")); + + }//*************** END ************ END ************************** + + //*************** START *********** START ************************** + else if(cardName.equals("Skarrg, the Rage Pits")) + { + final SpellAbility[] a2 = new SpellAbility[1]; + final Command eot2 = new Command() + { + private static final long serialVersionUID = 6180724472470740160L; + + public void execute() + { + Card c = a2[0].getTargetCard(); + if(AllZone.GameAction.isCardInPlay(c)) + { + c.addTempAttackBoost(-1); + c.addTempDefenseBoost(-1); + c.removeIntrinsicKeyword("Trample"); + } + } + }; + + a2[0] = new Ability_Tap(card, "G R") + { + private static final long serialVersionUID = 3561450520225198222L; + + public boolean canPlayAI() + { + return getAttacker() != null; + } + public void chooseTargetAI() + { + setTargetCard(getAttacker()); + } + public Card getAttacker() + { + //target creature that is going to attack + Combat c = ComputerUtil.getAttackers(); + CardList att = new CardList(c.getAttackers()); + att.remove(card); + att.shuffle(); + + if(att.size() != 0) + return att.get(0); + else + return null; + }//getAttacker() + + public void resolve() + { + Card c = a2[0].getTargetCard(); + if(AllZone.GameAction.isCardInPlay(c) && CardFactoryUtil.canTarget(card,c) ) + { + c.addTempAttackBoost(1); + c.addTempDefenseBoost(1); + c.addIntrinsicKeyword("Trample"); + AllZone.EndOfTurn.addUntil(eot2); + } + }//resolve() + };//SpellAbility + card.addSpellAbility(a2[0]); + a2[0].setDescription("G R, tap: Target creature gets +1/+1 and gains trample until end of turn."); + + + @SuppressWarnings("unused") // target unused + final Input target = new Input() + { + private static final long serialVersionUID = 8913477363141356082L; + + public void showMessage() + { + ButtonUtil.enableOnlyCancel(); + AllZone.Display.showMessage("Select Creature to get +1/+1 and trample"); + } + public void selectCard(Card c, PlayerZone zone) + { + if(!CardFactoryUtil.canTarget(card, c)){ + AllZone.Display.showMessage("Cannot target this card (Shroud? Protection?)."); + } + else if(c.isCreature()) + { + card.tap(); + AllZone.Human_Play.updateObservers(); + + a2[0].setTargetCard(c);//since setTargetCard() changes stack description + a2[0].setStackDescription(c +" gets +1/+1 and trample until EOT"); + + AllZone.InputControl.resetInput(); + AllZone.Stack.add(a2[0]); + } + }//selectCard() + public void selectButtonCancel() + { + card.untap(); + stop(); + } + };//Input target + a2[0].setBeforePayMana(CardFactoryUtil.input_targetType(a2[0], "Creature")); + + }//*************** END ************ END ************************** + + //*************** START *********** START ************************** + else if(cardName.equals("Daru Encampment")) + { + final SpellAbility[] a2 = new SpellAbility[1]; + final Command eot2 = new Command() + { + private static final long serialVersionUID = 6180724472470740160L; + + public void execute() + { + Card c = a2[0].getTargetCard(); + if(AllZone.GameAction.isCardInPlay(c)) + { + c.addTempAttackBoost(-1); + c.addTempDefenseBoost(-1); + } + } + }; + + a2[0] = new Ability_Tap(card, "W") + { + private static final long serialVersionUID = 3561450520225198222L; + + public boolean canPlayAI() + { + return getAttacker() != null; + } + public void chooseTargetAI() + { + setTargetCard(getAttacker()); + } + public Card getAttacker() + { + //target creature that is going to attack + Combat c = ComputerUtil.getAttackers(); + CardList att = new CardList(c.getAttackers()); + att.remove(card); + att.shuffle(); + + if(att.size() != 0) + return att.get(0); + else + return null; + }//getAttacker() + + public void resolve() + { + Card c = a2[0].getTargetCard(); + if(AllZone.GameAction.isCardInPlay(c) && CardFactoryUtil.canTarget(card,c) ) + { + c.addTempAttackBoost(1); + c.addTempDefenseBoost(1); + + AllZone.EndOfTurn.addUntil(eot2); + } + }//resolve() + };//SpellAbility + card.addSpellAbility(a2[0]); + a2[0].setDescription("W, tap: Target Soldier gets +1/+1 until end of turn."); + + + @SuppressWarnings("unused") // target unused + final Input target = new Input() + { + private static final long serialVersionUID = 8913477363141356082L; + + public void showMessage() + { + ButtonUtil.enableOnlyCancel(); + AllZone.Display.showMessage("Select Soldier to get +1/+1"); + } + public void selectCard(Card c, PlayerZone zone) + { + if(!CardFactoryUtil.canTarget(card, c)){ + AllZone.Display.showMessage("Cannot target this card (Shroud? Protection?)."); + } + else if(c.isCreature() && c.getType().contains("Soldier")) + { + card.tap(); + AllZone.Human_Play.updateObservers(); + + a2[0].setTargetCard(c);//since setTargetCard() changes stack description + a2[0].setStackDescription(c +" gets +1/+1 until EOT"); + + AllZone.InputControl.resetInput(); + AllZone.Stack.add(a2[0]); + } + }//selectCard() + public void selectButtonCancel() + { + card.untap(); + stop(); + } + };//Input target + a2[0].setBeforePayMana(CardFactoryUtil.input_targetType(a2[0], "Soldier")); + + }//*************** END ************ END ************************** + return card; } diff --git a/src/forge/CardListUtil.java b/src/forge/CardListUtil.java index fd96d827ad6..305db2486c1 100644 --- a/src/forge/CardListUtil.java +++ b/src/forge/CardListUtil.java @@ -14,16 +14,13 @@ public class CardListUtil } //the higher the defense the better - @SuppressWarnings("unchecked") // Comparator needs -public static void sortDefense(CardList list) - { - Comparator com = new Comparator() - { - public int compare(Object a1, Object b1) - { - Card a = (Card)a1; - Card b = (Card)b1; + public static void sortDefense(CardList list) + { + Comparator com = new Comparator() + { + public int compare(Card a, Card b) + { return b.getNetDefense() - a.getNetDefense(); } }; @@ -31,15 +28,12 @@ public static void sortDefense(CardList list) }//sortDefense() //the higher the attack the better - @SuppressWarnings("unchecked") // Comparator needs type -public static void sortAttack(CardList list) + public static void sortAttack(CardList list) { - Comparator com = new Comparator() + Comparator com = new Comparator() { - public int compare(Object a1, Object b1) + public int compare(Card a, Card b) { - Card a = (Card)a1; - Card b = (Card)b1; if (CombatUtil.isDoranInPlay()) return b.getNetDefense() - a.getNetDefense(); @@ -52,16 +46,12 @@ public static void sortAttack(CardList list) //the lower the attack the better - @SuppressWarnings("unchecked") // Comparator needs -public static void sortAttackLowFirst(CardList list) + public static void sortAttackLowFirst(CardList list) { - Comparator com = new Comparator() + Comparator com = new Comparator() { - public int compare(Object a1, Object b1) + public int compare(Card a, Card b) { - Card a = (Card)a1; - Card b = (Card)b1; - if (CombatUtil.isDoranInPlay()) return a.getNetDefense() - b.getNetDefense(); else @@ -78,16 +68,12 @@ public static void sortAttackLowFirst(CardList list) }//sortNonFlyingFirst //the creature with flying are better - @SuppressWarnings("unchecked") // Comparator needs -public static void sortFlying(CardList list) + public static void sortFlying(CardList list) { - Comparator com = new Comparator() + Comparator com = new Comparator() { - public int compare(Object a1, Object b1) + public int compare(Card a, Card b) { - Card a = (Card)a1; - Card b = (Card)b1; - if(a.getKeyword().contains("Flying") && b.getKeyword().contains("Flying")) return 0; else if(a.getKeyword().contains("Flying")) @@ -101,16 +87,33 @@ public static void sortFlying(CardList list) list.sort(com); }//sortFlying() - @SuppressWarnings("unchecked") // Comparator needs + //sort by keyword + public static void sortByKeyword(CardList list, String kw) + { + final String keyword = kw; + Comparator com = new Comparator() + { + public int compare(Card a, Card b) + { + if(a.getKeyword().contains(keyword) && b.getKeyword().contains(keyword)) + return 0; + else if(a.getKeyword().contains(keyword)) + return -1; + else if(b.getKeyword().contains(keyword)) + return 1; + + return 0; + } + }; + list.sort(com); + }//sortByKeyword() + public static void sortCMC(CardList list) { - Comparator com = new Comparator() + Comparator com = new Comparator() { - public int compare(Object a1, Object b1) + public int compare(Card a, Card b) { - Card a = (Card)a1; - Card b = (Card)b1; - int cmcA = CardUtil.getConvertedManaCost(a.getManaCost()); int cmcB = CardUtil.getConvertedManaCost(b.getManaCost()); diff --git a/src/forge/GameActionUtil.java b/src/forge/GameActionUtil.java index e1919de66f7..0bd79b13e56 100644 --- a/src/forge/GameActionUtil.java +++ b/src/forge/GameActionUtil.java @@ -1479,6 +1479,8 @@ public class GameActionUtil landfall_Ior_Ruin_Expedition(c); else if (c.getName().equals("Lotus Cobra")) landfall_Lotus_Cobra(c); + else if (c.getName().equals("Hedron Crab")) + landfall_Hedron_Crab(c); } private static boolean showLandfallDialog(Card c) @@ -1660,6 +1662,47 @@ public class GameActionUtil } } + + private static void landfall_Hedron_Crab(Card c) + { + //final Card crd = c; + final Ability ability = new Ability(c, "0") + { + public void resolve() + { + String player = getTargetPlayer(); + + PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player); + PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, player); + CardList libList = new CardList(lib.getCards()); + + int max = 3; + if (libList.size() < 3) + max = libList.size(); + + for (int i=0;i