Updated Ben's Cube. Implemented Blood Funnel, Mizzium Transreliquat, Jilt, Stand Together, Torpid Moloch, Tidewater Minion

This commit is contained in:
fireshoes 2015-07-17 01:23:33 -05:00
parent cb083d73e4
commit 2931ea4c26
8 changed files with 712 additions and 157 deletions

View file

@ -38,6 +38,7 @@ public class BensCube extends DraftCube {
public BensCube() {
super("Ben's Cube (720 cards)"); // http://cubetutor.com/viewcube/1
cubeCards.add(new CardIdentity("Abrupt Decay", ""));
cubeCards.add(new CardIdentity("Abyssal Persecutor", ""));
cubeCards.add(new CardIdentity("Academy Rector", ""));
@ -47,9 +48,9 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("AEther Adept", ""));
cubeCards.add(new CardIdentity("AEther Vial", ""));
cubeCards.add(new CardIdentity("AEtherling", ""));
cubeCards.add(new CardIdentity("Aftershock", ""));
cubeCards.add(new CardIdentity("Agony Warp", ""));
cubeCards.add(new CardIdentity("Ajani Goldmane", ""));
cubeCards.add(new CardIdentity("Ajani Steadfast", ""));
cubeCards.add(new CardIdentity("Ajani Vengeant", ""));
cubeCards.add(new CardIdentity("Ajani, Caller of the Pride", ""));
cubeCards.add(new CardIdentity("Akroma, Angel of Wrath", ""));
@ -61,7 +62,6 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Ancient Grudge", ""));
cubeCards.add(new CardIdentity("Ancient Tomb", ""));
cubeCards.add(new CardIdentity("Angel of Serenity", ""));
cubeCards.add(new CardIdentity("Angelic Destiny", ""));
cubeCards.add(new CardIdentity("Anger of the Gods", ""));
cubeCards.add(new CardIdentity("Animate Dead", ""));
cubeCards.add(new CardIdentity("Ankh of Mishra", ""));
@ -84,14 +84,12 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Badlands", ""));
cubeCards.add(new CardIdentity("Balance", ""));
cubeCards.add(new CardIdentity("Baleful Strix", ""));
cubeCards.add(new CardIdentity("Ball Lightning", ""));
cubeCards.add(new CardIdentity("Banefire", ""));
cubeCards.add(new CardIdentity("Baneslayer Angel", ""));
cubeCards.add(new CardIdentity("Basalt Monolith", ""));
cubeCards.add(new CardIdentity("Basilisk Collar", ""));
cubeCards.add(new CardIdentity("Batterskull", ""));
cubeCards.add(new CardIdentity("Bayou", ""));
cubeCards.add(new CardIdentity("Beacon of Destruction", ""));
cubeCards.add(new CardIdentity("Beast Within", ""));
cubeCards.add(new CardIdentity("Birds of Paradise", ""));
cubeCards.add(new CardIdentity("Birthing Pod", ""));
@ -101,6 +99,7 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Black Sun's Zenith", ""));
cubeCards.add(new CardIdentity("Blade Splicer", ""));
cubeCards.add(new CardIdentity("Blastoderm", ""));
cubeCards.add(new CardIdentity("Blightsteel Colossus", ""));
cubeCards.add(new CardIdentity("Blistering Firecat", ""));
cubeCards.add(new CardIdentity("Blood Crypt", ""));
cubeCards.add(new CardIdentity("Blood Scrivener", ""));
@ -108,6 +107,7 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Bloodghast", ""));
cubeCards.add(new CardIdentity("Bloodgift Demon", ""));
cubeCards.add(new CardIdentity("Bloodline Keeper", ""));
cubeCards.add(new CardIdentity("Bloodsoaked Champion", ""));
cubeCards.add(new CardIdentity("Bloodstained Mire", ""));
cubeCards.add(new CardIdentity("Bogardan Hellkite", ""));
cubeCards.add(new CardIdentity("Boggart Ram-Gang", ""));
@ -115,6 +115,7 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Bonesplitter", ""));
cubeCards.add(new CardIdentity("Bonfire of the Damned", ""));
cubeCards.add(new CardIdentity("Booster Tutor", ""));
cubeCards.add(new CardIdentity("Borderland Marauder", ""));
cubeCards.add(new CardIdentity("Boros Charm", ""));
cubeCards.add(new CardIdentity("Boros Reckoner", ""));
cubeCards.add(new CardIdentity("Braids, Cabal Minion", ""));
@ -124,7 +125,6 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Bribery", ""));
cubeCards.add(new CardIdentity("Brimaz, King of Oreskos", ""));
cubeCards.add(new CardIdentity("Brimstone Volley", ""));
cubeCards.add(new CardIdentity("Brine Elemental", ""));
cubeCards.add(new CardIdentity("Buried Alive", ""));
cubeCards.add(new CardIdentity("Burning-Tree Emissary", ""));
cubeCards.add(new CardIdentity("Burst Lightning", ""));
@ -139,7 +139,6 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Chained to the Rocks", ""));
cubeCards.add(new CardIdentity("Chainer's Edict", ""));
cubeCards.add(new CardIdentity("Chameleon Colossus", ""));
cubeCards.add(new CardIdentity("Chandra Nalaar", ""));
cubeCards.add(new CardIdentity("Chandra, the Firebrand", ""));
cubeCards.add(new CardIdentity("Chandra's Phoenix", ""));
cubeCards.add(new CardIdentity("Channel", ""));
@ -151,18 +150,18 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("City of Traitors", ""));
cubeCards.add(new CardIdentity("Clifftop Retreat", ""));
cubeCards.add(new CardIdentity("Cloudgoat Ranger", ""));
cubeCards.add(new CardIdentity("Cloudshift", ""));
cubeCards.add(new CardIdentity("Cloudthresher", ""));
cubeCards.add(new CardIdentity("Coalition Relic", ""));
cubeCards.add(new CardIdentity("Coiling Oracle", ""));
cubeCards.add(new CardIdentity("Cold-Eyed Selkie", ""));
cubeCards.add(new CardIdentity("Coldsteel Heart", ""));
cubeCards.add(new CardIdentity("Compulsive Research", ""));
cubeCards.add(new CardIdentity("Condemn", ""));
cubeCards.add(new CardIdentity("Consecrated Sphinx", ""));
cubeCards.add(new CardIdentity("Consuming Vapors", ""));
cubeCards.add(new CardIdentity("Containment Priest", ""));
cubeCards.add(new CardIdentity("Control Magic", ""));
cubeCards.add(new CardIdentity("Corpse Dance", ""));
cubeCards.add(new CardIdentity("Council's Judgment", ""));
cubeCards.add(new CardIdentity("Counterspell", ""));
cubeCards.add(new CardIdentity("Countryside Crusher", ""));
cubeCards.add(new CardIdentity("Courser of Kruphix", ""));
@ -173,16 +172,19 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Cryptic Command", ""));
cubeCards.add(new CardIdentity("Crystal Shard", ""));
cubeCards.add(new CardIdentity("Cultivate", ""));
cubeCards.add(new CardIdentity("Cursecatcher", ""));
cubeCards.add(new CardIdentity("Cursed Scroll", ""));
cubeCards.add(new CardIdentity("Cyclonic Rift", ""));
cubeCards.add(new CardIdentity("Dack Fayden", ""));
cubeCards.add(new CardIdentity("Dack's Duplicate", ""));
cubeCards.add(new CardIdentity("Damnation", ""));
cubeCards.add(new CardIdentity("Daretti, Scrap Savant", ""));
cubeCards.add(new CardIdentity("Dark Confidant", ""));
cubeCards.add(new CardIdentity("Dark Ritual", ""));
cubeCards.add(new CardIdentity("Dauthi Horror", ""));
cubeCards.add(new CardIdentity("Day of Judgment", ""));
cubeCards.add(new CardIdentity("Daze", ""));
cubeCards.add(new CardIdentity("Deathrite Shaman", ""));
cubeCards.add(new CardIdentity("Deceiver Exarch", ""));
cubeCards.add(new CardIdentity("Decree of Justice", ""));
cubeCards.add(new CardIdentity("Deep Analysis", ""));
cubeCards.add(new CardIdentity("Defense of the Heart", ""));
@ -194,6 +196,7 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Devil's Play", ""));
cubeCards.add(new CardIdentity("Devoted Druid", ""));
cubeCards.add(new CardIdentity("Diabolic Servitude", ""));
cubeCards.add(new CardIdentity("Dig Through Time", ""));
cubeCards.add(new CardIdentity("Diregraf Ghoul", ""));
cubeCards.add(new CardIdentity("Disciple of Bolas", ""));
cubeCards.add(new CardIdentity("Disenchant", ""));
@ -202,19 +205,20 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Dissipate", ""));
cubeCards.add(new CardIdentity("Domri Rade", ""));
cubeCards.add(new CardIdentity("Doom Blade", ""));
cubeCards.add(new CardIdentity("Dragon Hunter", ""));
cubeCards.add(new CardIdentity("Dragonskull Summit", ""));
cubeCards.add(new CardIdentity("Dreadbore", ""));
cubeCards.add(new CardIdentity("Drowned Catacomb", ""));
cubeCards.add(new CardIdentity("Dryad Militant", ""));
cubeCards.add(new CardIdentity("Dualcaster Mage", ""));
cubeCards.add(new CardIdentity("Duress", ""));
cubeCards.add(new CardIdentity("Duskmantle Seer", ""));
cubeCards.add(new CardIdentity("Earthquake", ""));
cubeCards.add(new CardIdentity("Edric, Spymaster of Trest", ""));
cubeCards.add(new CardIdentity("Eidolon of the Great Revel", ""));
cubeCards.add(new CardIdentity("Eight-and-a-Half-Tails", ""));
cubeCards.add(new CardIdentity("Eldrazi Monument", ""));
cubeCards.add(new CardIdentity("Electrolyze", ""));
cubeCards.add(new CardIdentity("Elesh Norn, Grand Cenobite", ""));
cubeCards.add(new CardIdentity("Elite Vanguard", ""));
cubeCards.add(new CardIdentity("Elspeth, Knight-Errant", ""));
cubeCards.add(new CardIdentity("Elspeth, Sun's Champion", ""));
cubeCards.add(new CardIdentity("Elves of Deep Shadow", ""));
@ -243,6 +247,7 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Falkenrath Aristocrat", ""));
cubeCards.add(new CardIdentity("Far // Away", ""));
cubeCards.add(new CardIdentity("Farseek", ""));
cubeCards.add(new CardIdentity("Fastbond", ""));
cubeCards.add(new CardIdentity("Fathom Seer", ""));
cubeCards.add(new CardIdentity("Fauna Shaman", ""));
cubeCards.add(new CardIdentity("Fellwar Stone", ""));
@ -275,7 +280,6 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Geist of Saint Traft", ""));
cubeCards.add(new CardIdentity("Genesis Wave", ""));
cubeCards.add(new CardIdentity("Genesis", ""));
cubeCards.add(new CardIdentity("Geralf's Messenger", ""));
cubeCards.add(new CardIdentity("Ghitu Encampment", ""));
cubeCards.add(new CardIdentity("Gideon Jura", ""));
cubeCards.add(new CardIdentity("Gideon's Lawkeeper", ""));
@ -289,15 +293,14 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Go for the Throat", ""));
cubeCards.add(new CardIdentity("Goblin Bushwhacker", ""));
cubeCards.add(new CardIdentity("Goblin Guide", ""));
cubeCards.add(new CardIdentity("Goblin Rabblemaster", ""));
cubeCards.add(new CardIdentity("Goblin Ruinblaster", ""));
cubeCards.add(new CardIdentity("Goblin Wardriver", ""));
cubeCards.add(new CardIdentity("Goblin Welder", ""));
cubeCards.add(new CardIdentity("Godless Shrine", ""));
cubeCards.add(new CardIdentity("Gore-House Chainwalker", ""));
cubeCards.add(new CardIdentity("Grafted Wargear", ""));
cubeCards.add(new CardIdentity("Grand Arbiter Augustin IV", ""));
cubeCards.add(new CardIdentity("Grave Titan", ""));
cubeCards.add(new CardIdentity("Graveborn Muse", ""));
cubeCards.add(new CardIdentity("Gravecrawler", ""));
cubeCards.add(new CardIdentity("Greater Gargadon", ""));
cubeCards.add(new CardIdentity("Green Sun's Zenith", ""));
@ -324,12 +327,10 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Huntmaster of the Fells", ""));
cubeCards.add(new CardIdentity("Hymn to Tourach", ""));
cubeCards.add(new CardIdentity("Hypnotic Specter", ""));
cubeCards.add(new CardIdentity("Ideas Unbound", ""));
cubeCards.add(new CardIdentity("Imperial Recruiter", ""));
cubeCards.add(new CardIdentity("Imposing Sovereign", ""));
cubeCards.add(new CardIdentity("Impulse", ""));
cubeCards.add(new CardIdentity("Incinerate", ""));
cubeCards.add(new CardIdentity("Increasing Devotion", ""));
cubeCards.add(new CardIdentity("Indrik Stomphowler", ""));
cubeCards.add(new CardIdentity("Inferno Titan", ""));
cubeCards.add(new CardIdentity("Ink-Eyes, Servant of Oni", ""));
@ -354,20 +355,20 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Kargan Dragonlord", ""));
cubeCards.add(new CardIdentity("Karmic Guide", ""));
cubeCards.add(new CardIdentity("Karn Liberated", ""));
cubeCards.add(new CardIdentity("Keiga, the Tide Star", ""));
cubeCards.add(new CardIdentity("Keldon Champion", ""));
cubeCards.add(new CardIdentity("Keldon Marauders", ""));
cubeCards.add(new CardIdentity("Kiki-Jiki, Mirror Breaker", ""));
cubeCards.add(new CardIdentity("Kiora, the Crashing Wave", ""));
cubeCards.add(new CardIdentity("Kiora's Follower", ""));
cubeCards.add(new CardIdentity("Kira, Great Glass-Spinner", ""));
cubeCards.add(new CardIdentity("Kitchen Finks", ""));
cubeCards.add(new CardIdentity("Kjeldoran Outpost", ""));
cubeCards.add(new CardIdentity("Knight of Glory", ""));
cubeCards.add(new CardIdentity("Knight of Infamy", ""));
cubeCards.add(new CardIdentity("Knight of Meadowgrain", ""));
cubeCards.add(new CardIdentity("Knight of the Reliquary", ""));
cubeCards.add(new CardIdentity("Kodama's Reach", ""));
cubeCards.add(new CardIdentity("Kokusho, the Evening Star", ""));
cubeCards.add(new CardIdentity("Kolaghan's Command", ""));
cubeCards.add(new CardIdentity("Kor Sanctifiers", ""));
cubeCards.add(new CardIdentity("Kor Skyfisher", ""));
cubeCards.add(new CardIdentity("Koth of the Hammer", ""));
@ -402,10 +403,10 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Mana Crypt", ""));
cubeCards.add(new CardIdentity("Mana Drain", ""));
cubeCards.add(new CardIdentity("Mana Leak", ""));
cubeCards.add(new CardIdentity("Mana Tithe", ""));
cubeCards.add(new CardIdentity("Mana Vault", ""));
cubeCards.add(new CardIdentity("Manamorphose", ""));
cubeCards.add(new CardIdentity("Man-o'-War", ""));
cubeCards.add(new CardIdentity("Mardu Woe-Reaper", ""));
cubeCards.add(new CardIdentity("Marsh Flats", ""));
cubeCards.add(new CardIdentity("Martial Coup", ""));
cubeCards.add(new CardIdentity("Master of the Feast", ""));
@ -430,6 +431,7 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Miscalculation", ""));
cubeCards.add(new CardIdentity("Mishra's Factory", ""));
cubeCards.add(new CardIdentity("Misty Rainforest", ""));
cubeCards.add(new CardIdentity("Moat", ""));
cubeCards.add(new CardIdentity("Mogg Flunkies", ""));
cubeCards.add(new CardIdentity("Mogg War Marshal", ""));
cubeCards.add(new CardIdentity("Mold Shambler", ""));
@ -437,6 +439,7 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Molten-Tail Masticore", ""));
cubeCards.add(new CardIdentity("Momentary Blink", ""));
cubeCards.add(new CardIdentity("Moment's Peace", ""));
cubeCards.add(new CardIdentity("Monastery Mentor", ""));
cubeCards.add(new CardIdentity("Mortarpod", ""));
cubeCards.add(new CardIdentity("Mother of Runes", ""));
cubeCards.add(new CardIdentity("Mox Diamond", ""));
@ -446,13 +449,13 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Mox Ruby", ""));
cubeCards.add(new CardIdentity("Mox Sapphire", ""));
cubeCards.add(new CardIdentity("Mulldrifter", ""));
cubeCards.add(new CardIdentity("Murderous Cut", ""));
cubeCards.add(new CardIdentity("Murderous Redcap", ""));
cubeCards.add(new CardIdentity("Mutavault", ""));
cubeCards.add(new CardIdentity("Myr Battlesphere", ""));
cubeCards.add(new CardIdentity("Mystic Snake", ""));
cubeCards.add(new CardIdentity("Mystical Tutor", ""));
cubeCards.add(new CardIdentity("Nantuko Shade", ""));
cubeCards.add(new CardIdentity("Nantuko Vigilante", ""));
cubeCards.add(new CardIdentity("Narcolepsy", ""));
cubeCards.add(new CardIdentity("Natural Order", ""));
cubeCards.add(new CardIdentity("Naturalize", ""));
@ -467,19 +470,16 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Nicol Bolas, Planeswalker", ""));
cubeCards.add(new CardIdentity("Night's Whisper", ""));
cubeCards.add(new CardIdentity("Nightscape Familiar", ""));
cubeCards.add(new CardIdentity("Niv-Mizzet, Dracogenius", ""));
cubeCards.add(new CardIdentity("Nissa, Worldwaker", ""));
cubeCards.add(new CardIdentity("Noble Hierarch", ""));
cubeCards.add(new CardIdentity("Nucklavee", ""));
cubeCards.add(new CardIdentity("Oath of Druids", ""));
cubeCards.add(new CardIdentity("Oblivion Ring", ""));
cubeCards.add(new CardIdentity("Obstinate Baloth", ""));
cubeCards.add(new CardIdentity("Obzedat, Ghost Council", ""));
cubeCards.add(new CardIdentity("Ohran Viper", ""));
cubeCards.add(new CardIdentity("Olivia Voldaren", ""));
cubeCards.add(new CardIdentity("Omenspeaker", ""));
cubeCards.add(new CardIdentity("Omniscience", ""));
cubeCards.add(new CardIdentity("Oona's Prowler", ""));
cubeCards.add(new CardIdentity("Opportunity", ""));
cubeCards.add(new CardIdentity("Opposition", ""));
cubeCards.add(new CardIdentity("Opt", ""));
cubeCards.add(new CardIdentity("Oracle of Mul Daya", ""));
@ -490,9 +490,9 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Pact of Negation", ""));
cubeCards.add(new CardIdentity("Palinchron", ""));
cubeCards.add(new CardIdentity("Palladium Myr", ""));
cubeCards.add(new CardIdentity("Parallax Wave", ""));
cubeCards.add(new CardIdentity("Path to Exile", ""));
cubeCards.add(new CardIdentity("Pernicious Deed", ""));
cubeCards.add(new CardIdentity("Pestermite", ""));
cubeCards.add(new CardIdentity("Phantasmal Image", ""));
cubeCards.add(new CardIdentity("Phyrexian Arena", ""));
cubeCards.add(new CardIdentity("Phyrexian Metamorph", ""));
@ -503,14 +503,12 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Pithing Needle", ""));
cubeCards.add(new CardIdentity("Plateau", ""));
cubeCards.add(new CardIdentity("Plated Geopede", ""));
cubeCards.add(new CardIdentity("Platinum Angel", ""));
cubeCards.add(new CardIdentity("Plow Under", ""));
cubeCards.add(new CardIdentity("Plumeveil", ""));
cubeCards.add(new CardIdentity("Polluted Delta", ""));
cubeCards.add(new CardIdentity("Polukranos, World Eater", ""));
cubeCards.add(new CardIdentity("Ponder", ""));
cubeCards.add(new CardIdentity("Porcelain Legionnaire", ""));
cubeCards.add(new CardIdentity("Powder Keg", ""));
cubeCards.add(new CardIdentity("Precursor Golem", ""));
cubeCards.add(new CardIdentity("Preordain", ""));
cubeCards.add(new CardIdentity("Primal Command", ""));
@ -528,7 +526,6 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Putrefy", ""));
cubeCards.add(new CardIdentity("Putrid Leech", ""));
cubeCards.add(new CardIdentity("Pyroclasm", ""));
cubeCards.add(new CardIdentity("Pyrokinesis", ""));
cubeCards.add(new CardIdentity("Qasali Pridemage", ""));
cubeCards.add(new CardIdentity("Raging Ravine", ""));
cubeCards.add(new CardIdentity("Rakdos Cackler", ""));
@ -541,12 +538,12 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Reanimate", ""));
cubeCards.add(new CardIdentity("Reckless Charge", ""));
cubeCards.add(new CardIdentity("Reckless Waif", ""));
cubeCards.add(new CardIdentity("Reclamation Sage", ""));
cubeCards.add(new CardIdentity("Recurring Nightmare", ""));
cubeCards.add(new CardIdentity("Regrowth", ""));
cubeCards.add(new CardIdentity("Relic of Progenitus", ""));
cubeCards.add(new CardIdentity("Remand", ""));
cubeCards.add(new CardIdentity("Repeal", ""));
cubeCards.add(new CardIdentity("Restock", ""));
cubeCards.add(new CardIdentity("Restoration Angel", ""));
cubeCards.add(new CardIdentity("Reveillark", ""));
cubeCards.add(new CardIdentity("Rift Bolt", ""));
@ -559,7 +556,7 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Rude Awakening", ""));
cubeCards.add(new CardIdentity("Sacred Foundry", ""));
cubeCards.add(new CardIdentity("Sakura-Tribe Elder", ""));
cubeCards.add(new CardIdentity("Sarkhan the Mad", ""));
cubeCards.add(new CardIdentity("Sarkhan, the Dragonspeaker", ""));
cubeCards.add(new CardIdentity("Savannah", ""));
cubeCards.add(new CardIdentity("Scalding Tarn", ""));
cubeCards.add(new CardIdentity("Scavenging Ooze", ""));
@ -585,38 +582,38 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Sinkhole", ""));
cubeCards.add(new CardIdentity("Skinrender", ""));
cubeCards.add(new CardIdentity("Skithiryx, the Blight Dragon", ""));
cubeCards.add(new CardIdentity("Skizzik", ""));
cubeCards.add(new CardIdentity("Skullclamp", ""));
cubeCards.add(new CardIdentity("Slagstorm", ""));
cubeCards.add(new CardIdentity("Slaughter Pact", ""));
cubeCards.add(new CardIdentity("Slith Firewalker", ""));
cubeCards.add(new CardIdentity("Smokestack", ""));
cubeCards.add(new CardIdentity("Snapcaster Mage", ""));
cubeCards.add(new CardIdentity("Sneak Attack", ""));
cubeCards.add(new CardIdentity("Snuff Out", ""));
cubeCards.add(new CardIdentity("Sol Ring", ""));
cubeCards.add(new CardIdentity("Soldier of the Pantheon", ""));
cubeCards.add(new CardIdentity("Solemn Simulacrum", ""));
cubeCards.add(new CardIdentity("Soltari Champion", ""));
cubeCards.add(new CardIdentity("Soltari Monk", ""));
cubeCards.add(new CardIdentity("Soltari Priest", ""));
cubeCards.add(new CardIdentity("Song of the Dryads", ""));
cubeCards.add(new CardIdentity("Sorin Markov", ""));
cubeCards.add(new CardIdentity("Sorin, Lord of Innistrad", ""));
cubeCards.add(new CardIdentity("Soulfire Grand Master", ""));
cubeCards.add(new CardIdentity("Sower of Temptation", ""));
cubeCards.add(new CardIdentity("Spear of Heliod", ""));
cubeCards.add(new CardIdentity("Spectral Procession", ""));
cubeCards.add(new CardIdentity("Spellskite", ""));
cubeCards.add(new CardIdentity("Sphere of the Suns", ""));
cubeCards.add(new CardIdentity("Sphinx of the Steel Wind", ""));
cubeCards.add(new CardIdentity("Sphinx's Revelation", ""));
cubeCards.add(new CardIdentity("Spikeshot Elder", ""));
cubeCards.add(new CardIdentity("Spirit of the Labyrinth", ""));
cubeCards.add(new CardIdentity("Splinter Twin", ""));
cubeCards.add(new CardIdentity("Squee, Goblin Nabob", ""));
cubeCards.add(new CardIdentity("Staggershock", ""));
cubeCards.add(new CardIdentity("Steam Augury", ""));
cubeCards.add(new CardIdentity("Steam Vents", ""));
cubeCards.add(new CardIdentity("Steppe Lynx", ""));
cubeCards.add(new CardIdentity("Stillmoon Cavalier", ""));
cubeCards.add(new CardIdentity("Stirring Wildwood", ""));
cubeCards.add(new CardIdentity("Stoke the Flames", ""));
cubeCards.add(new CardIdentity("Stomping Ground", ""));
cubeCards.add(new CardIdentity("Stone Rain", ""));
cubeCards.add(new CardIdentity("Stonecloaker", ""));
@ -624,10 +621,10 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Stonewood Invocation", ""));
cubeCards.add(new CardIdentity("Stormblood Berserker", ""));
cubeCards.add(new CardIdentity("Strangleroot Geist", ""));
cubeCards.add(new CardIdentity("Stratus Dancer", ""));
cubeCards.add(new CardIdentity("Strip Mine", ""));
cubeCards.add(new CardIdentity("Stromkirk Noble", ""));
cubeCards.add(new CardIdentity("Student of Warfare", ""));
cubeCards.add(new CardIdentity("Stunted Growth", ""));
cubeCards.add(new CardIdentity("Sublime Archangel", ""));
cubeCards.add(new CardIdentity("Sulfur Falls", ""));
cubeCards.add(new CardIdentity("Sulfuric Vortex", ""));
@ -651,16 +648,17 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Tamiyo, the Moon Sage", ""));
cubeCards.add(new CardIdentity("Tangle Wire", ""));
cubeCards.add(new CardIdentity("Tarmogoyf", ""));
cubeCards.add(new CardIdentity("Tattermunge Maniac", ""));
cubeCards.add(new CardIdentity("Tectonic Edge", ""));
cubeCards.add(new CardIdentity("Teetering Peaks", ""));
cubeCards.add(new CardIdentity("Temple Garden", ""));
cubeCards.add(new CardIdentity("Temporal Isolation", ""));
cubeCards.add(new CardIdentity("Tendrils of Agony", ""));
cubeCards.add(new CardIdentity("Terastodon", ""));
cubeCards.add(new CardIdentity("Terminate", ""));
cubeCards.add(new CardIdentity("Terminus", ""));
cubeCards.add(new CardIdentity("Terramorphic Expanse", ""));
cubeCards.add(new CardIdentity("Terror", ""));
cubeCards.add(new CardIdentity("Tezzeret the Seeker", ""));
cubeCards.add(new CardIdentity("Tezzeret, Agent of Bolas", ""));
cubeCards.add(new CardIdentity("Thalia, Guardian of Thraben", ""));
cubeCards.add(new CardIdentity("The Abyss", ""));
@ -671,11 +669,12 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Thoughtseize", ""));
cubeCards.add(new CardIdentity("Thragtusk", ""));
cubeCards.add(new CardIdentity("Thran Dynamo", ""));
cubeCards.add(new CardIdentity("Through the Breach", ""));
cubeCards.add(new CardIdentity("Thrun, the Last Troll", ""));
cubeCards.add(new CardIdentity("Thundermaw Hellkite", ""));
cubeCards.add(new CardIdentity("Thunderscape Battlemage", ""));
cubeCards.add(new CardIdentity("Tidehollow Sculler", ""));
cubeCards.add(new CardIdentity("Time Spiral", ""));
cubeCards.add(new CardIdentity("Time Vault", ""));
cubeCards.add(new CardIdentity("Time Walk", ""));
cubeCards.add(new CardIdentity("Time Warp", ""));
cubeCards.add(new CardIdentity("Timetwister", ""));
@ -686,12 +685,15 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Tormented Hero", ""));
cubeCards.add(new CardIdentity("Tradewind Rider", ""));
cubeCards.add(new CardIdentity("Treachery", ""));
cubeCards.add(new CardIdentity("Treasure Cruise", ""));
cubeCards.add(new CardIdentity("Treetop Village", ""));
cubeCards.add(new CardIdentity("Trinket Mage", ""));
cubeCards.add(new CardIdentity("Triplicate Spirits", ""));
cubeCards.add(new CardIdentity("Tropical Island", ""));
cubeCards.add(new CardIdentity("Trygon Predator", ""));
cubeCards.add(new CardIdentity("Tundra", ""));
cubeCards.add(new CardIdentity("Turnabout", ""));
cubeCards.add(new CardIdentity("Ugin, the Spirit Dragon", ""));
cubeCards.add(new CardIdentity("Ulamog, the Infinite Gyre", ""));
cubeCards.add(new CardIdentity("Ultimate Price", ""));
cubeCards.add(new CardIdentity("Ulvenwald Tracker", ""));
@ -712,15 +714,13 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Venser, Shaper Savant", ""));
cubeCards.add(new CardIdentity("Venser, the Sojourner", ""));
cubeCards.add(new CardIdentity("Verdant Catacombs", ""));
cubeCards.add(new CardIdentity("Vesuvan Shapeshifter", ""));
cubeCards.add(new CardIdentity("Vexing Devil", ""));
cubeCards.add(new CardIdentity("Vindicate", ""));
cubeCards.add(new CardIdentity("Vines of Vastwood", ""));
cubeCards.add(new CardIdentity("Voice of Resurgence", ""));
cubeCards.add(new CardIdentity("Voidslime", ""));
cubeCards.add(new CardIdentity("Volcanic Fallout", ""));
cubeCards.add(new CardIdentity("Volcanic Island", ""));
cubeCards.add(new CardIdentity("Volrath's Stronghold", ""));
cubeCards.add(new CardIdentity("Voltaic Key", ""));
cubeCards.add(new CardIdentity("Vorapede", ""));
cubeCards.add(new CardIdentity("Vraska the Unseen", ""));
cubeCards.add(new CardIdentity("Wake Thrasher", ""));
@ -757,5 +757,6 @@ public class BensCube extends DraftCube {
cubeCards.add(new CardIdentity("Young Pyromancer", ""));
cubeCards.add(new CardIdentity("Zealous Conscripts", ""));
cubeCards.add(new CardIdentity("Zo-Zu the Punisher", ""));
cubeCards.add(new CardIdentity("Zurgo Bellstriker", ""));
}
}

View file

@ -0,0 +1,111 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.sets.apocalypse;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.SpellAbility;
import mage.abilities.condition.common.KickedCondition;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.ReturnToHandTargetEffect;
import mage.abilities.keyword.KickerAbility;
import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Rarity;
import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game;
import mage.target.common.TargetCreaturePermanent;
import mage.target.targetpointer.SecondTargetPointer;
/**
*
* @author fireshoes
*/
public class Jilt extends CardImpl {
public Jilt(UUID ownerId) {
super(ownerId, 27, "Jilt", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{1}{U}");
this.expansionSetCode = "APC";
// Kicker {1}{R}
this.addAbility(new KickerAbility("{1}{R}"));
// Return target creature to its owner's hand. If Jilt was kicked, it deals 2 damage to another target creature.
this.getSpellAbility().addEffect(new ReturnToHandTargetEffect());
Effect effect = new ConditionalOneShotEffect(
new DamageTargetEffect(2),
KickedCondition.getInstance(),
"If {this} was kicked, it deals 2 damage to another target creature");
effect.setTargetPointer(new SecondTargetPointer());
this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
}
@Override
public void adjustTargets(Ability ability, Game game) {
if (ability instanceof SpellAbility && KickedCondition.getInstance().apply(game, ability)) {
ability.addTarget(new TargetOtherCreaturePermanent(new FilterCreaturePermanent("another target creature")));
}
}
public Jilt(final Jilt card) {
super(card);
}
@Override
public Jilt copy() {
return new Jilt(this);
}
}
class TargetOtherCreaturePermanent extends TargetCreaturePermanent {
public TargetOtherCreaturePermanent(FilterCreaturePermanent filter) {
super(filter);
}
public TargetOtherCreaturePermanent(final TargetOtherCreaturePermanent target) {
super(target);
}
@Override
public boolean canTarget(UUID controllerId, UUID id, Ability source, Game game) {
if (source.getTargets().get(0).getTargets().contains(id)) {
return false;
}
return super.canTarget(controllerId, id, source, game);
}
@Override
public TargetOtherCreaturePermanent copy() {
return new TargetOtherCreaturePermanent(this);
}
}

View file

@ -0,0 +1,66 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.sets.darksteel;
import java.util.UUID;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Rarity;
import mage.counters.CounterType;
import mage.target.Target;
import mage.target.common.TargetCreaturePermanent;
/**
*
* @author fireshoes
*/
public class StandTogether extends CardImpl {
public StandTogether(UUID ownerId) {
super(ownerId, 84, "Stand Together", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{3}{G}{G}");
this.expansionSetCode = "DST";
// Put two +1/+1 counters on target creature and two +1/+1 counters on another target creature.
Effect effect = new AddCountersTargetEffect(CounterType.P1P1.createInstance(2));
effect.setText("Put two +1/+1 counters on target creature and two +1/+1 counters on another target creature");
this.getSpellAbility().addEffect(effect);
Target target = new TargetCreaturePermanent(2,2);
this.getSpellAbility().addTarget(target);
}
public StandTogether(final StandTogether card) {
super(card);
}
@Override
public StandTogether copy() {
return new StandTogether(this);
}
}

View file

@ -0,0 +1,134 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.sets.guildpact;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Outcome;
import mage.constants.Rarity;
import mage.constants.Zone;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.target.common.TargetArtifactPermanent;
import mage.util.functions.EmptyApplyToPermanent;
/**
*
* @author fireshoes
*/
public class MizziumTransreliquat extends CardImpl {
public MizziumTransreliquat(UUID ownerId) {
super(ownerId, 153, "Mizzium Transreliquat", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{3}");
this.expansionSetCode = "GPT";
// {3}: Mizzium Transreliquat becomes a copy of target artifact until end of turn.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MizziumTransreliquatCopyEffect(), new ManaCostsImpl("{3}"));
ability.addTarget(new TargetArtifactPermanent());
this.addAbility(ability);
// {1}{U}{R}: Mizzium Transreliquat becomes a copy of target artifact and gains this ability.
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MizziumTransreliquatCopyAndGainAbilityEffect(), new ManaCostsImpl("{1}{U}{R}"));
ability.addTarget(new TargetArtifactPermanent());
this.addAbility(ability);
}
public MizziumTransreliquat(final MizziumTransreliquat card) {
super(card);
}
@Override
public MizziumTransreliquat copy() {
return new MizziumTransreliquat(this);
}
}
class MizziumTransreliquatCopyEffect extends OneShotEffect {
public MizziumTransreliquatCopyEffect() {
super(Outcome.Copy);
this.staticText = "Mizzium Transreliquat becomes a copy of target artifact until end of turn";
}
public MizziumTransreliquatCopyEffect(final MizziumTransreliquatCopyEffect effect) {
super(effect);
}
@Override
public MizziumTransreliquatCopyEffect copy() {
return new MizziumTransreliquatCopyEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Permanent sourcePermanent = game.getPermanent(source.getSourceId());
Permanent copyFromPermanent = game.getPermanent(getTargetPointer().getFirst(game, source));
if (sourcePermanent != null && copyFromPermanent != null) {
game.copyPermanent(Duration.EndOfTurn, copyFromPermanent, sourcePermanent, source, new EmptyApplyToPermanent());
return true;
}
return false;
}
}
class MizziumTransreliquatCopyAndGainAbilityEffect extends OneShotEffect {
public MizziumTransreliquatCopyAndGainAbilityEffect() {
super(Outcome.Benefit);
this.staticText = "Mizzium Transreliquat becomes a copy of target artifact and gains this ability";
}
public MizziumTransreliquatCopyAndGainAbilityEffect(final MizziumTransreliquatCopyAndGainAbilityEffect effect) {
super(effect);
}
@Override
public MizziumTransreliquatCopyAndGainAbilityEffect copy() {
return new MizziumTransreliquatCopyAndGainAbilityEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Permanent sourcePermanent = game.getPermanent(source.getSourceId());
Permanent copyFromPermanent = game.getPermanent(getTargetPointer().getFirst(game, source));
if (sourcePermanent != null && copyFromPermanent != null) {
Permanent newPermanent = game.copyPermanent(copyFromPermanent, sourcePermanent, source, new EmptyApplyToPermanent());
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MizziumTransreliquatCopyAndGainAbilityEffect(), new ManaCostsImpl("{1}{U}{R}"));
ability.addTarget(new TargetArtifactPermanent());
newPermanent.addAbility(ability, source.getSourceId(), game);
return true;
}
return false;
}
}

View file

@ -1,116 +1,115 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.sets.planeshift;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.SpellAbility;
import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.common.SacrificeTargetCost;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.ReturnToHandTargetEffect;
import mage.abilities.keyword.KickerAbility;
import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Rarity;
import mage.filter.Filter;
import mage.filter.common.FilterControlledLandPermanent;
import mage.filter.common.FilterNonlandPermanent;
import mage.game.Game;
import mage.target.common.TargetControlledPermanent;
import mage.target.common.TargetNonlandPermanent;
import mage.target.targetpointer.SecondTargetPointer;
/**
*
* @author LevelX2
*/
public class RushingRiver extends CardImpl {
public RushingRiver(UUID ownerId) {
super(ownerId, 30, "Rushing River", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{U}");
this.expansionSetCode = "PLS";
// Kicker-Sacrifice a land.
this.addAbility(new KickerAbility(new SacrificeTargetCost(new TargetControlledPermanent(new FilterControlledLandPermanent("a land")))));
// Return target nonland permanent to its owner's hand. If Rushing River was kicked, return another target nonland permanent to its owner's hand.
this.getSpellAbility().addEffect(new ReturnToHandTargetEffect());
Effect effect = new ConditionalOneShotEffect(
new ReturnToHandTargetEffect(),
KickedCondition.getInstance(),
"If {this} was kicked, return another target nonland permanent to its owner's hand");
effect.setTargetPointer(new SecondTargetPointer());
this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addTarget(new TargetNonlandPermanent());
}
@Override
public void adjustTargets(Ability ability, Game game) {
if (ability instanceof SpellAbility && KickedCondition.getInstance().apply(game, ability)) {
ability.addTarget(new TargetOtherNonlandPermanent(new FilterNonlandPermanent("another target nonland permanent")));
}
}
public RushingRiver(final RushingRiver card) {
super(card);
}
@Override
public RushingRiver copy() {
return new RushingRiver(this);
}
}
class TargetOtherNonlandPermanent extends TargetNonlandPermanent {
public TargetOtherNonlandPermanent(FilterNonlandPermanent filter) {
super(filter);
}
public TargetOtherNonlandPermanent(final TargetOtherNonlandPermanent target) {
super(target);
}
@Override
public boolean canTarget(UUID controllerId, UUID id, Ability source, Game game) {
if (source.getTargets().get(0).getTargets().contains(id)) {
return false;
}
return super.canTarget(controllerId, id, source, game);
}
@Override
public TargetOtherNonlandPermanent copy() {
return new TargetOtherNonlandPermanent(this);
}
}
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.sets.planeshift;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.SpellAbility;
import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.common.SacrificeTargetCost;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.ReturnToHandTargetEffect;
import mage.abilities.keyword.KickerAbility;
import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Rarity;
import mage.filter.common.FilterControlledLandPermanent;
import mage.filter.common.FilterNonlandPermanent;
import mage.game.Game;
import mage.target.common.TargetControlledPermanent;
import mage.target.common.TargetNonlandPermanent;
import mage.target.targetpointer.SecondTargetPointer;
/**
*
* @author LevelX2
*/
public class RushingRiver extends CardImpl {
public RushingRiver(UUID ownerId) {
super(ownerId, 30, "Rushing River", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{U}");
this.expansionSetCode = "PLS";
// Kicker-Sacrifice a land.
this.addAbility(new KickerAbility(new SacrificeTargetCost(new TargetControlledPermanent(new FilterControlledLandPermanent("a land")))));
// Return target nonland permanent to its owner's hand. If Rushing River was kicked, return another target nonland permanent to its owner's hand.
this.getSpellAbility().addEffect(new ReturnToHandTargetEffect());
Effect effect = new ConditionalOneShotEffect(
new ReturnToHandTargetEffect(),
KickedCondition.getInstance(),
"If {this} was kicked, return another target nonland permanent to its owner's hand");
effect.setTargetPointer(new SecondTargetPointer());
this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addTarget(new TargetNonlandPermanent());
}
@Override
public void adjustTargets(Ability ability, Game game) {
if (ability instanceof SpellAbility && KickedCondition.getInstance().apply(game, ability)) {
ability.addTarget(new TargetOtherNonlandPermanent(new FilterNonlandPermanent("another target nonland permanent")));
}
}
public RushingRiver(final RushingRiver card) {
super(card);
}
@Override
public RushingRiver copy() {
return new RushingRiver(this);
}
}
class TargetOtherNonlandPermanent extends TargetNonlandPermanent {
public TargetOtherNonlandPermanent(FilterNonlandPermanent filter) {
super(filter);
}
public TargetOtherNonlandPermanent(final TargetOtherNonlandPermanent target) {
super(target);
}
@Override
public boolean canTarget(UUID controllerId, UUID id, Ability source, Game game) {
if (source.getTargets().get(0).getTargets().contains(id)) {
return false;
}
return super.canTarget(controllerId, id, source, game);
}
@Override
public TargetOtherNonlandPermanent copy() {
return new TargetOtherNonlandPermanent(this);
}
}

View file

@ -0,0 +1,86 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.sets.ravnica;
import java.util.UUID;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.common.SpellCastControllerTriggeredAbility;
import mage.abilities.costs.common.SacrificeTargetCost;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.CounterUnlessPaysEffect;
import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect;
import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Rarity;
import mage.constants.Zone;
import mage.filter.FilterCard;
import mage.filter.FilterSpell;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.CardTypePredicate;
import mage.target.common.TargetControlledCreaturePermanent;
/**
*
* @author fireshoes
*/
public class BloodFunnel extends CardImpl {
private static final FilterCard filter = new FilterCard("Noncreature spells");
private static final FilterSpell filterNoncreature = new FilterSpell("a noncreature spell");
static {
filter.add(Predicates.not(new CardTypePredicate(CardType.CREATURE)));
filterNoncreature.add(Predicates.not(new CardTypePredicate(CardType.CREATURE)));
}
public BloodFunnel(UUID ownerId) {
super(ownerId, 77, "Blood Funnel", Rarity.RARE, new CardType[]{CardType.ENCHANTMENT}, "{1}{B}");
this.expansionSetCode = "RAV";
// Noncreature spells you cast cost {2} less to cast.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpellsCostReductionControllerEffect(filter, 2)));
// Whenever you cast a noncreature spell, counter that spell unless you sacrifice a creature.
Effect effect = new CounterUnlessPaysEffect(new SacrificeTargetCost(new TargetControlledCreaturePermanent()));
effect.setText("counter that spell unless you sacrifice a creature");
this.addAbility(new SpellCastControllerTriggeredAbility(Zone.BATTLEFIELD,
effect,
filterNoncreature,
false,
true));
}
public BloodFunnel(final BloodFunnel card) {
super(card);
}
@Override
public BloodFunnel copy() {
return new BloodFunnel(this);
}
}

View file

@ -0,0 +1,83 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.sets.ravnica;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.UntapTargetEffect;
import mage.abilities.effects.common.continuous.LoseAbilitySourceEffect;
import mage.abilities.keyword.DefenderAbility;
import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Rarity;
import mage.constants.Zone;
import mage.target.TargetPermanent;
/**
*
* @author fireshoes
*/
public class TidewaterMinion extends CardImpl {
public TidewaterMinion(UUID ownerId) {
super(ownerId, 71, "Tidewater Minion", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{3}{U}{U}");
this.expansionSetCode = "RAV";
this.subtype.add("Elemental");
this.subtype.add("Minion");
this.power = new MageInt(4);
this.toughness = new MageInt(4);
// Defender
this.addAbility(DefenderAbility.getInstance());
// {4}: Tidewater Minion loses defender until end of turn.
this.addAbility(new SimpleActivatedAbility(
Zone.BATTLEFIELD,
new LoseAbilitySourceEffect(DefenderAbility.getInstance(), Duration.EndOfTurn),
new ManaCostsImpl("{4}")));
// {tap}: Untap target permanent.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapTargetEffect(), new TapSourceCost());
ability.addTarget(new TargetPermanent());
this.addAbility(ability);
}
public TidewaterMinion(final TidewaterMinion card) {
super(card);
}
@Override
public TidewaterMinion copy() {
return new TidewaterMinion(this);
}
}

View file

@ -0,0 +1,75 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.sets.ravnica;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.SacrificeTargetCost;
import mage.abilities.effects.common.continuous.LoseAbilitySourceEffect;
import mage.abilities.keyword.DefenderAbility;
import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Rarity;
import mage.constants.Zone;
import mage.filter.common.FilterControlledLandPermanent;
import mage.target.common.TargetControlledPermanent;
/**
*
* @author fireshoes
*/
public class TorpidMoloch extends CardImpl {
public TorpidMoloch(UUID ownerId) {
super(ownerId, 147, "Torpid Moloch", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{R}");
this.expansionSetCode = "RAV";
this.subtype.add("Lizard");
this.power = new MageInt(3);
this.toughness = new MageInt(2);
// Defender
this.addAbility(DefenderAbility.getInstance());
// Sacrifice three lands: Torpid Moloch loses defender until end of turn.
this.addAbility(new SimpleActivatedAbility(
Zone.BATTLEFIELD,
new LoseAbilitySourceEffect(DefenderAbility.getInstance(), Duration.EndOfTurn),
new SacrificeTargetCost(new TargetControlledPermanent(3, 3, new FilterControlledLandPermanent("three lands"), true))));
}
public TorpidMoloch(final TorpidMoloch card) {
super(card);
}
@Override
public TorpidMoloch copy() {
return new TorpidMoloch(this);
}
}