mirror of
https://github.com/correl/mage.git
synced 2024-12-26 11:09:27 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
e32e279432
613 changed files with 5333 additions and 2014 deletions
|
@ -0,0 +1,642 @@
|
|||
/*
|
||||
* 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.tournament.cubes;
|
||||
|
||||
import mage.game.draft.DraftCube;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fireshoes
|
||||
*/
|
||||
|
||||
public class LegacyCubeApril2017 extends DraftCube {
|
||||
|
||||
public LegacyCubeApril2017() {
|
||||
super("MTGO Legacy Cube April 2017 (600 cards)");
|
||||
cubeCards.add(new DraftCube.CardIdentity("Abbot of Keral Keep",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Abrupt Decay",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Abyssal Persecutor",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Accorder Paladin",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Acidic Slime",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Act of Aggression",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Ajani Goldmane",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Ajani Vengeant",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Ajani, Caller of the Pride",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Anafenza, Kin-Tree Spirit",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Ancestral Vision",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Ancient Tomb",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Angel of Invention",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Angel of Serenity",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Anger of the Gods",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Anguished Unmaking",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Animate Dead",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Arbor Elf",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Arc Trail",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Archangel Avacyn",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Arid Mesa",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Armageddon",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Ashiok, Nightmare Weaver",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Assemble the Legion",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Augur of Bolas",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Avacyn's Pilgrim",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Avalanche Riders",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Avenger of Zendikar",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Badlands",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Baleful Strix",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Banefire",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Baneslayer Angel",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Banisher Priest",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Banishing Light",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Baral, Chief of Compliance",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Batterskull",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Bayou",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Beast Within",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Bedlam Reveler",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Beetleback Chief",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Birds of Paradise",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Birthing Pod",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Bitterblossom",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Blackcleave Cliffs",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Blade Splicer",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Blood Artist",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Blood Crypt",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Bloodbraid Elf",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Bloodghast",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Bloodstained Mire",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Bloom Tender",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Blooming Marsh",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Bogardan Hellkite",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Bomat Courier",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Bone Shredder",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Bonfire of the Damned",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Boros Charm",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Boros Reckoner",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Botanical Sanctum",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Brainstorm",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Breeding Pool",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Brimaz, King of Oreskos",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Brimstone Volley",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Bruna, the Fading Light",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Buried Alive",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Burst Lightning",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Careful Consideration",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Careful Study",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Cathartic Reunion",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Celestial Colonnade",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Chain Lightning",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Chainer's Edict",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Champion of the Parish",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Chandra's Phoenix",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Chandra, Fire of Kaladesh",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Chandra, Flamecaller",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Chandra, Pyromaster",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Chandra, Torch of Defiance",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Char",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Chord of Calling",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Chromatic Lantern",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("City of Brass",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Clifftop Retreat",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Cloudgoat Ranger",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Coalition Relic",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Coldsteel Heart",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Collective Brutality",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Collective Defiance",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Collective Effort",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Compulsive Research",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Concealed Courtyard",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Condemn",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Consecrated Sphinx",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Control Magic",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Copperline Gorge",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Council's Judgment",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Counterspell",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Courser of Kruphix",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Crater's Claws",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Craterhoof Behemoth",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Creeping Tar Pit",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Crux of Fate",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Cryptic Command",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Cultivate",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Cunning Sparkmage",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Cyclonic Rift",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Damnation",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Dark Confidant",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Dark Petition",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Dark Ritual",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Darkslick Shores",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Day of Judgment",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Daze",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Deathrite Shaman",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Deceiver Exarch",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Declaration in Stone",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Deep Analysis",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Delver of Secrets",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Den Protector",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Deranged Hermit",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Desecration Demon",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Devil's Play",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Devoted Druid",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Disallow",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Disfigure",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Dismember",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Dismiss",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Dissipate",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Dissolve",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Distended Mindbender",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Domri Rade",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Doom Blade",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Dragonlord Atarka",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Dragonlord Dromoka",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Dragonlord Ojutai",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Dragonlord Silumgar",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Dragonskull Summit",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Drana, Liberator of Malakir",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Dread Return",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Dreadbore",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Dromoka's Command",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Drowned Catacomb",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Dualcaster Mage",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Dungeon Geists",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Duplicant",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Duress",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Duskwatch Recruiter",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Edric, Spymaster of Trest",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Elder Deep-Fiend",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Electrolyze",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Elesh Norn, Grand Cenobite",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Elspeth Tirel",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Elspeth, Knight-Errant",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Elspeth, Sun's Champion",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Elves of Deep Shadow",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Elvish Mystic",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Emeria Angel",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Emrakul, the Aeons Torn",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Emrakul, the Promised End",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Engineered Explosives",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Entomb",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Entreat the Angels",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Erebos, God of the Dead",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Eternal Witness",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Ever After",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Exhume",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Explore",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Exquisite Firecraft",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Fact or Fiction",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Faith's Fetters",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Falkenrath Gorger",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Far // Away",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Farseek",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Fatal Push",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Fauna Shaman",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Fertile Ground",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Fiend Hunter",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Fiery Confluence",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Fire // Ice",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Firebolt",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Firefist Striker",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Flame Slash",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Flametongue Kavu",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Flickerwisp",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Flooded Strand",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Forbid",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Force of Will",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Force Spike",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Forked Bolt",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Frost Titan",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Future Sight",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Fyndhorn Elves",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Gaea's Cradle",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Garruk Relentless",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Garruk Wildspeaker",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Garruk, Apex Predator",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Garruk, Primal Hunter",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Gatekeeper of Malakir",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Geist of Saint Traft",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Genesis Wave",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Geralf's Messenger",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Ghor-Clan Rampager",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Gideon Jura",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Gideon, Ally of Zendikar",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Gifted Aetherborn",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Gifts Ungiven",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Gilded Lotus",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Gilt-Leaf Winnower",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Gisela, the Broken Blade",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Gitaxian Probe",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Glacial Fortress",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Glen Elendra Archmage",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Glorious Anthem",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Go for the Throat",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Goblin Bombardment",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Goblin Dark-Dwellers",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Goblin Guide",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Goblin Rabblemaster",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Godless Shrine",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Gonti, Lord of Luxury",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Gore-House Chainwalker",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Grafted Wargear",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Grave Titan",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Gray Merchant of Asphodel",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Greater Gargadon",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Green Sun's Zenith",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Greenwarden of Murasa",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Grim Lavamancer",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Griselbrand",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Gurmag Angler",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Hallowed Fountain",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Hallowed Spiritkeeper",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Hangarback Walker",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Harbinger of the Tides",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Harmonize",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Hellrider",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Hero of Bladehold",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Hero's Downfall",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Hidden Dragonslayer",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Hinterland Harbor",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Hissing Quagmire",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Honor of the Pure",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Hordeling Outburst",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Hornet Queen",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Huntmaster of the Fells",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Hymn to Tourach",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Hypnotic Specter",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Icefall Regent",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Imperial Recruiter",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Impulse",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Incendiary Flow",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Incinerate",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Inferno Titan",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Inquisition of Kozilek",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Inspiring Vantage",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Into the Roil",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Ire Shaman",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Isamaru, Hound of Konda",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Isolated Chapel",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Izzet Charm",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Jace Beleren",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Jace, Architect of Thought",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Jace, the Mind Sculptor",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Jace, Vryn's Prodigy",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Jackal Pup",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Joraga Treespeaker",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Journey to Nowhere",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Kalitas, Traitor of Ghet",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Karmic Guide",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Karn Liberated",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Keiga, the Tide Star",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Keranos, God of Storms",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Kiki-Jiki, Mirror Breaker",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Kiln Fiend",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Kiora's Follower",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Kiora, the Crashing Wave",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Kira, Great Glass-Spinner",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Kitchen Finks",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Knight of the Reliquary",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Kodama's Reach",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Kokusho, the Evening Star",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Kolaghan's Command",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Koth of the Hammer",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Kytheon, Hero of Akros",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Land Tax",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Languish",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Lavaclaw Reaches",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Legacy's Allure",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Leonin Relic-Warder",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Lightning Bolt",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Lightning Greaves",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Lightning Helix",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Lightning Mauler",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Lightning Strike",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Liliana of the Veil",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Liliana Vess",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Liliana, Heretical Healer",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Liliana, the Last Hope",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Lingering Souls",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Linvala, Keeper of Silence",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Linvala, the Preserver",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Living Death",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Llanowar Elves",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Looter il-Kor",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Lotus Cobra",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Lumbering Falls",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Maelstrom Pulse",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Magma Jet",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Magus of the Wheel",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Makeshift Mannequin",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Malicious Affliction",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Man-o'-War",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Mana Confluence",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Mana Tithe",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Managorger Hydra",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Manic Vandal",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Marsh Flats",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Martial Coup",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Massacre Wurm",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Master of the Wild Hunt",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Master of Waves",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Maze of Ith",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Meloku the Clouded Mirror",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Mentor of the Meek",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Merfolk Looter",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Mimic Vat",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Mind Stone",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Mirari's Wake",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Mirran Crusader",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Mirror Entity",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Miscalculation",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Mishra's Factory",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Misty Rainforest",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Mizzium Mortars",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Mogg War Marshal",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Monastery Mentor",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Monastery Swiftspear",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Mother of Runes",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Mulldrifter",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Murderous Cut",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Murderous Redcap",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Mutavault",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Myr Battlesphere",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Mystic Snake",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Nahiri, the Harbinger",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Natural Order",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Nature's Lore",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Necromancy",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Needle Spires",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Negate",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Nekrataal",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Nevinyrral's Disk",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Nicol Bolas, Planeswalker",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Nightveil Specter",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Nissa, Vastwood Seer",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Nissa, Vital Force",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Nissa, Voice of Zendikar",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Nissa, Worldwaker",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Noble Hierarch",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Noxious Gearhulk",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Nykthos, Shrine to Nyx",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Oath of Nissa",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Ob Nixilis Reignited",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Oblivion Ring",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Oblivion Stone",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Obstinate Baloth",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Old Man of the Sea",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Olivia Voldaren",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Oona's Prowler",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Ophiomancer",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Opposition",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Oracle of Mul Daya",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Oust",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Outpost Siege",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Overgrown Battlement",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Overgrown Tomb",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Pack Rat",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Pact of Negation",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Panharmonicon",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Parallax Wave",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Part the Waterveil",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Path to Exile",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Pernicious Deed",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Pestermite",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Phantasmal Image",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Phyrexian Arena",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Phyrexian Metamorph",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Phyrexian Obliterator",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Phyrexian Rager",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Phyrexian Revoker",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Pia and Kiran Nalaar",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Pillar of Flame",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Plateau",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Polluted Delta",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Polukranos, World Eater",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Ponder",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Porcelain Legionnaire",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Precinct Captain",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Preordain",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Primal Command",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Primeval Titan",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Profane Command",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Purphoros, God of the Forge",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Pyroclasm",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Qasali Pridemage",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Quarantine Field",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Raging Ravine",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Raise the Alarm",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Rakdos's Return",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Ral Zarek",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Rampaging Baloths",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Rampant Growth",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Ranger of Eos",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Ratchet Bomb",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Ravages of War",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Razorverge Thicket",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Read the Bones",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Reanimate",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Reckless Bushwhacker",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Reclamation Sage",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Recruiter of the Guard",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Recurring Nightmare",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Reflecting Pool",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Reflector Mage",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Regrowth",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Relic of Progenitus",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Remand",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Remove Soul",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Repeal",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Restoration Angel",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Reveillark",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Rift Bolt",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Riftwing Cloudskate",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Rishadan Port",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Rishkar, Peema Renegade",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Roast",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Rofellos, Llanowar Emissary",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Rootbound Crag",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Rune-Scarred Demon",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sacred Foundry",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sakura-Tribe Elder",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sarkhan, the Dragonspeaker",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Savannah",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Scalding Tarn",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Scavenging Ooze",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Scrapheap Scrounger",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Scrubland",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sea Gate Oracle",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Seachrome Coast",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Seal of Fire",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Search for Tomorrow",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Searing Spear",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Secure the Wastes",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Seeker of the Way",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Selfless Spirit",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Selvala, Heart of the Wilds",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sensei's Divining Top",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Serendib Efreet",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Serum Visions",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Shadowmage Infiltrator",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Shaman of Forgotten Ways",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Shambling Vent",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Shardless Agent",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Shelldock Isle",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sheoldred, Whispering One",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Show and Tell",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Shriekmaw",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sidisi, Undead Vizier",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Siege-Gang Commander",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Silverblade Paladin",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Skinrender",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Slagstorm",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Slaughter Pact",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Smuggler's Copter",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Snapcaster Mage",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sneak Attack",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Soldier of the Pantheon",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Solemn Simulacrum",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Song of the Dryads",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sorin Markov",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sorin, Solemn Visitor",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Soulfire Grand Master",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sower of Temptation",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Spear of Heliod",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Spectral Procession",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Spell Pierce",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Spell Queller",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Spellskite",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sphinx's Revelation",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Spirebluff Canal",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Splinter Twin",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Staggershock",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Steam Vents",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Stirring Wildwood",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Stoke the Flames",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Stomping Ground",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Stoneforge Mystic",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Stormbreath Dragon",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Stormchaser Mage",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Stratus Dancer",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Stroke of Genius",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Stromkirk Noble",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Student of Warfare",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sublime Archangel",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sulfur Falls",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Summoning Trap",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sun Titan",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sundering Titan",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sunpetal Grove",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Supreme Verdict",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Surrak, the Hunt Caller",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sword of Body and Mind",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sword of Feast and Famine",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sword of Fire and Ice",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sword of Light and Shadow",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sword of War and Peace",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Swords to Plowshares",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sylvan Advocate",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sylvan Caryatid",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Sylvan Library",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Taiga",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Talrand, Sky Summoner",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Tamiyo, the Moon Sage",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Tangle Wire",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Tarmogoyf",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Tasigur, the Golden Fang",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Teferi, Mage of Zhalfir",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Temple Garden",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Terastodon",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Terminate",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Terminus",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Thalia, Guardian of Thraben",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Thalia, Heretic Cathar",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Thassa, God of the Sea",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Thing in the Ice",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Thirst for Knowledge",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Thoughtseize",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Thragtusk",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Thrun, the Last Troll",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Thunderbreak Regent",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Thundermaw Hellkite",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Tidehollow Sculler",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Time Warp",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Tireless Tracker",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Tooth and Nail",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Torch Fiend",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Tower of the Magistrate",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Toxic Deluge",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Treachery",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Tropical Island",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Trygon Predator",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Tundra",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Ugin, the Spirit Dragon",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Ulamog, the Ceaseless Hunger",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Ultimate Price",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Umezawa's Jitte",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Unburial Rites",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Underground Sea",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Underworld Connections",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Unexpectedly Absent",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Upheaval",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Utopia Sprawl",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Vampire Hexmage",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Vampire Nighthawk",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Vendilion Clique",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Venser, Shaper Savant",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Verdant Catacombs",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Verdurous Gearhulk",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Victimize",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Vindicate",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Volcanic Island",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Volrath's Stronghold",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Vorinclex, Voice of Hunger",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Vraska the Unseen",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Wake Thrasher",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Walking Ballista",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Wall of Blossoms",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Wall of Omens",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Wandering Fumarole",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Wasteland",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Watery Grave",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Whip of Erebos",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Whirler Rogue",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Whisperwood Elemental",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Wickerbough Elder",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Windbrisk Heights",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Windswept Heath",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Wolfir Silverheart",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Wood Elves",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Wooded Foothills",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Woodfall Primus",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Woodland Cemetery",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Wrath of God",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Wretched Confluence",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Wurmcoil Engine",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Xenagos, the Reveler",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Yavimaya Elder",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Yosei, the Morning Star",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Young Pyromancer",""));
|
||||
cubeCards.add(new DraftCube.CardIdentity("Zealous Conscripts",""));
|
||||
}
|
||||
}
|
|
@ -527,7 +527,7 @@ public class TableController {
|
|||
match.quitMatch(playerId);
|
||||
}
|
||||
Optional<User> user = UserManager.instance.getUser(userId);
|
||||
if (!user.isPresent()) {
|
||||
if (user.isPresent()) {
|
||||
ChatManager.instance.broadcast(chatId, user.get().getName(), "has left the table", ChatMessage.MessageColor.BLUE, true, ChatMessage.MessageType.STATUS, ChatMessage.SoundToPlay.PlayerLeft);
|
||||
if (!table.isTournamentSubTable()) {
|
||||
user.get().removeTable(playerId);
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.a;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.CantBeCounteredSourceEffect;
|
||||
|
@ -36,7 +37,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterNonlandPermanent;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
import mage.target.common.TargetNonlandPermanent;
|
||||
|
@ -52,7 +52,7 @@ public class AbruptDecay extends CardImpl {
|
|||
private static final FilterNonlandPermanent filter = new FilterNonlandPermanent("nonland permanent with converted mana cost 3 or less");
|
||||
|
||||
static {
|
||||
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
|
||||
}
|
||||
|
||||
public AbruptDecay(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
*/
|
||||
package mage.cards.a;
|
||||
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.Mode;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.ExileTargetEffect;
|
||||
|
@ -36,7 +37,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
@ -53,7 +53,7 @@ public class AbzanCharm extends CardImpl {
|
|||
private static final FilterCreaturePermanent FILTER = new FilterCreaturePermanent("creature with power 3 or greater");
|
||||
|
||||
static {
|
||||
FILTER.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2));
|
||||
FILTER.add(new PowerPredicate(ComparisonType.MORE_THAN, 2));
|
||||
}
|
||||
|
||||
public AbzanCharm(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.a;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
|
@ -37,7 +38,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
import mage.filter.predicate.mageobject.ToughnessPredicate;
|
||||
|
@ -54,8 +54,8 @@ public class AegisOfTheMeek extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("1/1 creature");
|
||||
|
||||
static {
|
||||
filter.add(new PowerPredicate(Filter.ComparisonType.Equal, 1));
|
||||
filter.add(new ToughnessPredicate(Filter.ComparisonType.Equal, 1));
|
||||
filter.add(new PowerPredicate(ComparisonType.EQUAL_TO, 1));
|
||||
filter.add(new ToughnessPredicate(ComparisonType.EQUAL_TO, 1));
|
||||
}
|
||||
|
||||
public AegisOfTheMeek(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.a;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
|
@ -41,7 +42,6 @@ import mage.constants.Outcome;
|
|||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
import mage.game.Game;
|
||||
|
@ -104,7 +104,7 @@ class AetherVialEffect extends OneShotEffect {
|
|||
int count = permanent.getCounters(game).getCount(CounterType.CHARGE);
|
||||
|
||||
FilterCreatureCard filter = new FilterCreatureCard("creature card with converted mana cost equal to " + count);
|
||||
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, count));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, count));
|
||||
String choiceText = "Put a " + filter.getMessage() + " from your hand onto the battlefield?";
|
||||
|
||||
Player controller = game.getPlayer(source.getControllerId());
|
||||
|
|
|
@ -29,7 +29,7 @@ package mage.cards.a;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.common.CardsInHandCondition;
|
||||
|
@ -60,7 +60,7 @@ public class AkkiUnderling extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// As long as you have seven or more cards in hand, Akki Underling gets +2/+1 and has first strike.
|
||||
Condition condition = new CardsInHandCondition(CountType.MORE_THAN,6);
|
||||
Condition condition = new CardsInHandCondition(ComparisonType.MORE_THAN,6);
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(2,1, Duration.WhileOnBattlefield), condition, "As long as you have seven or more cards in hand, {this} gets +2/+1"));
|
||||
ability.addEffect(new ConditionalContinuousEffect(
|
||||
|
|
|
@ -29,6 +29,7 @@ package mage.cards.a;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
|
@ -41,7 +42,6 @@ import mage.constants.CardType;
|
|||
import mage.constants.Outcome;
|
||||
import mage.constants.SuperType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
import mage.game.Game;
|
||||
|
@ -59,7 +59,7 @@ public class AleshaWhoSmilesAtDeath extends CardImpl {
|
|||
private static final FilterCreatureCard filter = new FilterCreatureCard("creature card with power 2 or less");
|
||||
|
||||
static {
|
||||
filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3));
|
||||
filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3));
|
||||
}
|
||||
|
||||
public AleshaWhoSmilesAtDeath(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.a;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.delayed.OnLeaveReturnExiledToBattlefieldAbility;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
|
@ -37,7 +38,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
import mage.game.Game;
|
||||
|
@ -77,7 +77,7 @@ class AlignedHedronNetworkExileEffect extends OneShotEffect {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 5 or greater");
|
||||
|
||||
static {
|
||||
filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 4));
|
||||
filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4));
|
||||
}
|
||||
|
||||
public AlignedHedronNetworkExileEffect() {
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.a;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.SourceIsSpellCondition;
|
||||
import mage.abilities.costs.AlternativeCostSourceAbility;
|
||||
|
@ -37,7 +38,6 @@ import mage.abilities.effects.common.continuous.CastAsThoughItHadFlashAllEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.Filter.ComparisonType;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
import mage.game.Game;
|
||||
|
@ -63,7 +63,7 @@ public class Aluren extends CardImpl {
|
|||
private static final FilterCreatureCard filter = new FilterCreatureCard("creature cards with converted mana cost 3 or less");
|
||||
|
||||
static {
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
|
||||
}
|
||||
|
||||
public Aluren(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
@ -95,10 +95,10 @@ class AlurenRuleEffect extends ContinuousEffectImpl {
|
|||
private static final FilterCreatureCard filter = new FilterCreatureCard("creature cards with converted mana cost 3 or less");
|
||||
|
||||
static {
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
|
||||
}
|
||||
|
||||
static AlternativeCostSourceAbility alternativeCastingCostAbility = new AlternativeCostSourceAbility(null, SourceIsSpellCondition.instance, null, filter, true);
|
||||
private static AlternativeCostSourceAbility alternativeCastingCostAbility = new AlternativeCostSourceAbility(null, SourceIsSpellCondition.instance, null, filter, true);
|
||||
|
||||
public AlurenRuleEffect() {
|
||||
super(Duration.WhileOnBattlefield, Outcome.Detriment);
|
||||
|
|
|
@ -28,13 +28,13 @@
|
|||
package mage.cards.a;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleEvasionAbility;
|
||||
import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
|
||||
|
@ -49,7 +49,7 @@ public class AmrouKithkin extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 3 or greater");
|
||||
|
||||
static {
|
||||
filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2));
|
||||
filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 2));
|
||||
}
|
||||
|
||||
public AmrouKithkin(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.a;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
|
@ -36,7 +37,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterPermanentCard;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -53,7 +53,7 @@ public class AmrouScout extends CardImpl {
|
|||
private static final FilterPermanentCard filter = new FilterPermanentCard("Rebel permanent card with converted mana cost 3 or less");
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Rebel"));
|
||||
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
|
||||
}
|
||||
|
||||
public AmrouScout(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -38,6 +38,7 @@ import mage.abilities.keyword.UnearthAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.SupertypePredicate;
|
||||
|
@ -88,7 +89,7 @@ class AnathemancerCount implements DynamicValue {
|
|||
}
|
||||
|
||||
FilterLandPermanent filter = new FilterLandPermanent();
|
||||
filter.add(Predicates.not(new SupertypePredicate("Basic")));
|
||||
filter.add(Predicates.not(new SupertypePredicate(SuperType.BASIC)));
|
||||
filter.add(new ControllerIdPredicate(sourceAbility.getFirstTarget()));
|
||||
|
||||
return game.getBattlefield().count(filter, sourceAbility.getSourceId(), sourceAbility.getControllerId(), game);
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
*/
|
||||
package mage.cards.a;
|
||||
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
|
||||
import mage.abilities.condition.common.YouGainedLifeCondition;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
|
@ -52,7 +52,7 @@ public class AngelicAccord extends CardImpl {
|
|||
|
||||
// At the beginning of each end step, if you gained 4 or more life this turn, create a 4/4 white Angel creature token with flying.
|
||||
this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new AngelToken()), TargetController.ANY,
|
||||
new YouGainedLifeCondition(CountType.MORE_THAN, 3), false), new PlayerGainedLifeWatcher());
|
||||
new YouGainedLifeCondition(ComparisonType.MORE_THAN, 3), false), new PlayerGainedLifeWatcher());
|
||||
}
|
||||
|
||||
public AngelicAccord(final AngelicAccord card) {
|
||||
|
|
106
Mage.Sets/src/mage/cards/a/AnointedProcession.java
Normal file
106
Mage.Sets/src/mage/cards/a/AnointedProcession.java
Normal file
|
@ -0,0 +1,106 @@
|
|||
/*
|
||||
* 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.cards.a;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.ReplacementEffectImpl;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.GameEvent.EventType;
|
||||
import mage.game.stack.StackObject;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fireshoes
|
||||
*/
|
||||
public class AnointedProcession extends CardImpl {
|
||||
|
||||
public AnointedProcession(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{W}");
|
||||
|
||||
// If an effect would create one or more tokens under your control, it creates twice that many of those tokens instead.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new AnointedProcessionEffect()));
|
||||
}
|
||||
|
||||
public AnointedProcession(final AnointedProcession card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AnointedProcession copy() {
|
||||
return new AnointedProcession(this);
|
||||
}
|
||||
}
|
||||
|
||||
class AnointedProcessionEffect extends ReplacementEffectImpl {
|
||||
|
||||
public AnointedProcessionEffect() {
|
||||
super(Duration.WhileOnBattlefield, Outcome.Copy);
|
||||
staticText = "If an effect would create one or more tokens under your control, it creates twice that many of those tokens instead";
|
||||
}
|
||||
|
||||
public AnointedProcessionEffect(final AnointedProcessionEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AnointedProcessionEffect copy() {
|
||||
return new AnointedProcessionEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checksEventType(GameEvent event, Game game) {
|
||||
return event.getType() == EventType.CREATE_TOKEN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean applies(GameEvent event, Ability source, Game game) {
|
||||
StackObject spell = game.getStack().getStackObject(event.getSourceId());
|
||||
return spell != null && spell.getControllerId().equals(source.getControllerId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean replaceEvent(GameEvent event, Ability source, Game game) {
|
||||
event.setAmount(event.getAmount() * 2);
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
|
@ -28,7 +28,7 @@
|
|||
package mage.cards.a;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.TriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||
|
@ -70,7 +70,7 @@ public class ApothecaryGeist extends CardImpl {
|
|||
TriggeredAbility triggeredAbility = new EntersBattlefieldTriggeredAbility(new GainLifeEffect(3));
|
||||
this.addAbility(new ConditionalTriggeredAbility(
|
||||
triggeredAbility,
|
||||
new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0),
|
||||
new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0),
|
||||
"When {this} enters the battlefield, if you control another Spirit, you gain 3 life."));
|
||||
}
|
||||
|
||||
|
|
|
@ -27,11 +27,11 @@
|
|||
*/
|
||||
package mage.cards.a;
|
||||
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.effects.common.ExileCardYouChooseTargetOpponentEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
import mage.target.common.TargetOpponent;
|
||||
|
@ -47,7 +47,7 @@ public class AppetiteForBrains extends CardImpl {
|
|||
private static final FilterCard filter = new FilterCard("a card from it with converted mana cost 4 or greater");
|
||||
|
||||
static {
|
||||
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.GreaterThan, 3));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 3));
|
||||
}
|
||||
|
||||
public AppetiteForBrains(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.a;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.AttachedToMatchesFilterCondition;
|
||||
|
@ -41,7 +42,6 @@ import mage.constants.CardType;
|
|||
import mage.constants.Outcome;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
import mage.target.TargetPermanent;
|
||||
|
@ -70,7 +70,7 @@ public class ArachnusWeb extends CardImpl {
|
|||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBlockAttackActivateAttachedEffect()));
|
||||
// At the beginning of the end step, if enchanted creature's power is 4 or greater, destroy Arachnus Web.
|
||||
FilterPermanent filter = new FilterPermanent("if enchanted creature's power is 4 or greater");
|
||||
filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3));
|
||||
filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3));
|
||||
this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD,
|
||||
new DestroySourceEffect(), TargetController.ANY,
|
||||
new AttachedToMatchesFilterCondition(filter), false));
|
||||
|
|
|
@ -29,21 +29,16 @@ package mage.cards.a;
|
|||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.common.CycleOrDiscardControllerTriggeredAbility;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.counter.AddCountersAllEffect;
|
||||
import mage.abilities.keyword.CyclingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.common.FilterOpponentsCreaturePermanent;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.GameEvent.EventType;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -62,8 +57,12 @@ public class ArchfiendOfIfnir extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Whenever you cycle or discard another card, put a -1/-1 counter on each creature your opponents control.
|
||||
this.addAbility(new ArchfiendOfIfnirTriggeredAbility(new AddCountersAllEffect(CounterType.M1M1.createInstance(1),
|
||||
new FilterOpponentsCreaturePermanent("creature your opponents control"))));
|
||||
this.addAbility(new CycleOrDiscardControllerTriggeredAbility(
|
||||
new AddCountersAllEffect(
|
||||
CounterType.M1M1.createInstance(1),
|
||||
new FilterOpponentsCreaturePermanent("creature your opponents control")
|
||||
)
|
||||
));
|
||||
|
||||
// Cycling {2}
|
||||
this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
|
||||
|
@ -78,37 +77,3 @@ public class ArchfiendOfIfnir extends CardImpl {
|
|||
return new ArchfiendOfIfnir(this);
|
||||
}
|
||||
}
|
||||
|
||||
class ArchfiendOfIfnirTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
ArchfiendOfIfnirTriggeredAbility(Effect effect) {
|
||||
super(Zone.BATTLEFIELD, effect, false);
|
||||
}
|
||||
|
||||
ArchfiendOfIfnirTriggeredAbility(final ArchfiendOfIfnirTriggeredAbility ability) {
|
||||
super(ability);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArchfiendOfIfnirTriggeredAbility copy() {
|
||||
return new ArchfiendOfIfnirTriggeredAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkEventType(GameEvent event, Game game) {
|
||||
return event.getType() == EventType.DISCARDED_CARD;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
if (getControllerId().equals(event.getPlayerId())) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever you cycle or discard another card, " + super.getRule();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,10 +12,7 @@ import mage.abilities.effects.common.DontUntapInControllersUntapStepAllEffect;
|
|||
import mage.abilities.effects.common.TapAllEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SupertypePredicate;
|
||||
|
||||
|
@ -29,7 +26,7 @@ public class ArenaOfTheAncients extends CardImpl {
|
|||
|
||||
private final static FilterCreaturePermanent legendaryFilter = new FilterCreaturePermanent("legendary creatures");
|
||||
static {
|
||||
legendaryFilter.add(new SupertypePredicate("Legendary"));
|
||||
legendaryFilter.add(new SupertypePredicate(SuperType.LEGENDARY));
|
||||
}
|
||||
|
||||
public ArenaOfTheAncients(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
*/
|
||||
package mage.cards.a;
|
||||
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
|
@ -59,7 +59,7 @@ public class ArtificersEpiphany extends CardImpl {
|
|||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2));
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DiscardControllerEffect(1),
|
||||
new PermanentsOnTheBattlefieldCondition(filter, CountType.EQUAL_TO, 0)));
|
||||
new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.EQUAL_TO, 0)));
|
||||
}
|
||||
|
||||
public ArtificersEpiphany(final ArtificersEpiphany card) {
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.a;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.DiscardCardCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
|
@ -36,7 +37,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterArtifactCard;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
import mage.target.common.TargetCardInLibrary;
|
||||
|
@ -51,7 +51,7 @@ public class ArtificersIntuition extends CardImpl {
|
|||
|
||||
private static final FilterArtifactCard filter = new FilterArtifactCard("artifact card with converted mana cost 1 or less");
|
||||
static {
|
||||
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 2));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 2));
|
||||
}
|
||||
public ArtificersIntuition(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U}");
|
||||
|
|
|
@ -29,7 +29,7 @@ package mage.cards.a;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||
|
@ -69,7 +69,7 @@ public class AshenmoorCohort extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// Ashenmoor Cohort gets +1/+1 as long as you control another black creature.
|
||||
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0);
|
||||
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0);
|
||||
ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), condition, rule);
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@ package mage.cards.a;
|
|||
|
||||
import mage.MageObject;
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.LoyaltyAbility;
|
||||
import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility;
|
||||
import mage.abilities.costs.Cost;
|
||||
|
@ -37,7 +38,6 @@ import mage.abilities.effects.ContinuousEffectImpl;
|
|||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.cards.*;
|
||||
import mage.constants.*;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
|
@ -151,7 +151,7 @@ class AshiokNightmareWeaverPutIntoPlayEffect extends OneShotEffect {
|
|||
}
|
||||
|
||||
FilterCard filter = new FilterCreatureCard("creature card with converted mana cost {" + cmc + "} exiled with " + sourceObject.getIdName());
|
||||
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, cmc));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, cmc));
|
||||
|
||||
Target target = new TargetCardInExile(filter, CardUtil.getExileZoneId(game, source.getSourceId(), source.getSourceObjectZoneChangeCounter()));
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ package mage.cards.a;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.condition.common.CardsInHandCondition;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
|
@ -60,7 +60,7 @@ public class AsylumVisitor extends CardImpl {
|
|||
|
||||
// At the beginning of each player's upkeep, if that player has no cards in hand, you draw a card and you lose 1 life.
|
||||
Ability ability = new ConditionalTriggeredAbility(new BeginningOfUpkeepTriggeredAbility(new DrawCardSourceControllerEffect(1), TargetController.ANY, false),
|
||||
new CardsInHandCondition(CountType.EQUAL_TO, 0, null, TargetController.ACTIVE),
|
||||
new CardsInHandCondition(ComparisonType.EQUAL_TO, 0, null, TargetController.ACTIVE),
|
||||
"At the beginning of each player's upkeep, if that player has no cards in hand, you draw a card and you lose 1 life.");
|
||||
Effect effect = new LoseLifeSourceControllerEffect(1);
|
||||
effect.setText("and you lose 1 life");
|
||||
|
|
|
@ -29,6 +29,7 @@ package mage.cards.a;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
||||
|
@ -36,7 +37,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterArtifactCard;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
|
@ -51,7 +51,7 @@ public class AuriokSalvagers extends CardImpl {
|
|||
|
||||
private static final FilterArtifactCard filter = new FilterArtifactCard("artifact card with converted mana cost 1 or less from your graveyard");
|
||||
static {
|
||||
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 2));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 2));
|
||||
}
|
||||
|
||||
public AuriokSalvagers(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -27,12 +27,12 @@
|
|||
*/
|
||||
package mage.cards.a;
|
||||
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.Mode;
|
||||
import mage.abilities.effects.common.DestroyAllEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterArtifactPermanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.common.FilterEnchantmentPermanent;
|
||||
|
@ -49,8 +49,8 @@ public class AustereCommand extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter3orLess = new FilterCreaturePermanent("creatures with converted mana cost 3 or less");
|
||||
private static final FilterCreaturePermanent filter4orMore = new FilterCreaturePermanent("creatures with converted mana cost 4 or greater");
|
||||
static {
|
||||
filter3orLess.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4));
|
||||
filter4orMore.add(new ConvertedManaCostPredicate(Filter.ComparisonType.GreaterThan, 3));
|
||||
filter3orLess.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
|
||||
filter4orMore.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 3));
|
||||
}
|
||||
|
||||
public AustereCommand(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -29,6 +29,7 @@ package mage.cards.a;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.effects.common.TapTargetEffect;
|
||||
|
@ -36,7 +37,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
import mage.target.Target;
|
||||
|
@ -52,7 +52,7 @@ public class AysenBureaucrats extends CardImpl {
|
|||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 2 or less");
|
||||
static {
|
||||
filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3));
|
||||
filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3));
|
||||
}
|
||||
|
||||
public AysenBureaucrats(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -46,7 +46,7 @@ public class AyumiTheLastVisitor extends CardImpl {
|
|||
|
||||
private static final FilterLandPermanent filter = new FilterLandPermanent("Legendary land");
|
||||
static {
|
||||
filter.add(new SupertypePredicate("Legendary"));
|
||||
filter.add(new SupertypePredicate(SuperType.LEGENDARY));
|
||||
}
|
||||
|
||||
public AyumiTheLastVisitor(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -28,12 +28,12 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.Filter.ComparisonType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
@ -49,7 +49,7 @@ public class BalaGedScorpion extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 1 or less");
|
||||
|
||||
static {
|
||||
filter.add(new PowerPredicate(ComparisonType.LessThan, 2));
|
||||
filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 2));
|
||||
}
|
||||
|
||||
public BalaGedScorpion(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -29,7 +29,7 @@ package mage.cards.b;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||
|
@ -76,7 +76,7 @@ public class BallynockCohort extends CardImpl {
|
|||
this.addAbility(FirstStrikeAbility.getInstance());
|
||||
|
||||
// Ballynock Cohort gets +1/+1 as long as you control another white creature.
|
||||
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0);
|
||||
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0);
|
||||
Effect effect = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), condition, rule);
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
|
||||
|
||||
|
|
|
@ -38,6 +38,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SuperType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.Predicates;
|
||||
|
@ -49,7 +50,6 @@ import mage.target.common.TargetCardInLibrary;
|
|||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author North
|
||||
*/
|
||||
public class BantPanorama extends CardImpl {
|
||||
|
@ -58,7 +58,7 @@ public class BantPanorama extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(new CardTypePredicate(CardType.LAND));
|
||||
filter.add(new SupertypePredicate("Basic"));
|
||||
filter.add(new SupertypePredicate(SuperType.BASIC));
|
||||
filter.add(Predicates.or(
|
||||
new SubtypePredicate("Forest"),
|
||||
new SubtypePredicate("Plains"),
|
||||
|
@ -66,7 +66,7 @@ public class BantPanorama extends CardImpl {
|
|||
}
|
||||
|
||||
public BantPanorama(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||
|
||||
// {T}: Add {C} to your mana pool.
|
||||
this.addAbility(new ColorlessManaAbility());
|
||||
|
|
|
@ -28,12 +28,12 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility;
|
||||
import mage.abilities.effects.common.SacrificeSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterControlledLandPermanent;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -62,7 +62,7 @@ public class BarbarianOutcast extends CardImpl {
|
|||
|
||||
// When you control no Swamps, sacrifice Barbarian Outcast.
|
||||
this.addAbility(new ControlsPermanentsControllerTriggeredAbility(
|
||||
new FilterLandPermanent("Swamp", "no Swamps"), Filter.ComparisonType.Equal, 0,
|
||||
new FilterLandPermanent("Swamp", "no Swamps"), ComparisonType.EQUAL_TO, 0,
|
||||
new SacrificeSourceEffect()));
|
||||
}
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
*/
|
||||
package mage.cards.b;
|
||||
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.TriggeredAbility;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.condition.Condition;
|
||||
|
@ -55,7 +55,7 @@ public class BarrenGlory extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{W}{W}");
|
||||
|
||||
// At the beginning of your upkeep, if you control no permanents other than Barren Glory and have no cards in hand, you win the game.
|
||||
Condition condition = new CardsInHandCondition(CountType.EQUAL_TO, 0);
|
||||
Condition condition = new CardsInHandCondition(ComparisonType.EQUAL_TO, 0);
|
||||
TriggeredAbility ability = new BarrenGloryTriggeredAbility();
|
||||
this.addAbility(new ConditionalTriggeredAbility(ability,
|
||||
condition,
|
||||
|
|
109
Mage.Sets/src/mage/cards/b/BattlefieldScavenger.java
Normal file
109
Mage.Sets/src/mage/cards/b/BattlefieldScavenger.java
Normal file
|
@ -0,0 +1,109 @@
|
|||
/*
|
||||
* 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.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.AbilityImpl;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.RummageEffect;
|
||||
import mage.abilities.keyword.ExertAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.permanent.Permanent;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author anonymous
|
||||
*/
|
||||
public class BattlefieldScavenger extends CardImpl {
|
||||
|
||||
public BattlefieldScavenger(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}");
|
||||
|
||||
this.subtype.add("Jackal");
|
||||
this.subtype.add("Rogue");
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// You may exert Battlefield Scavenger as it attacks.
|
||||
this.addAbility(new ExertAbility(null, false));
|
||||
|
||||
// Whenever you exert a creature, you may discard a card. If you do, draw a card.
|
||||
this.addAbility(new WheneverYouExertCreatureTriggeredAbility(new RummageEffect()));
|
||||
}
|
||||
|
||||
public BattlefieldScavenger(final BattlefieldScavenger card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BattlefieldScavenger copy() {
|
||||
return new BattlefieldScavenger(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class WheneverYouExertCreatureTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
WheneverYouExertCreatureTriggeredAbility(Effect effect) {
|
||||
super(Zone.BATTLEFIELD, effect);
|
||||
}
|
||||
|
||||
WheneverYouExertCreatureTriggeredAbility(final WheneverYouExertCreatureTriggeredAbility ability) {
|
||||
super(ability);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkEventType(GameEvent event, Game game) {
|
||||
return event.getType() == GameEvent.EventType.BECOMES_EXERTED;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
boolean weAreExerting = getControllerId().equals(event.getPlayerId());
|
||||
Permanent exerted = game.getPermanent(event.getTargetId());
|
||||
boolean exertedIsCreature = (exerted != null) && exerted.isCreature();
|
||||
return weAreExerting && exertedIsCreature;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WheneverYouExertCreatureTriggeredAbility copy() {
|
||||
return new WheneverYouExertCreatureTriggeredAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever you exert a creature, " + super.getRule();
|
||||
}
|
||||
}
|
|
@ -30,6 +30,7 @@ package mage.cards.b;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
|
@ -39,7 +40,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter.ComparisonType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
@ -55,7 +55,7 @@ public class BeaconBehemoth extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater");
|
||||
|
||||
static {
|
||||
filter.add(new PowerPredicate(ComparisonType.GreaterThan, 4));
|
||||
filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4));
|
||||
}
|
||||
|
||||
public BeaconBehemoth (UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -29,6 +29,7 @@ package mage.cards.b;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
|
@ -36,7 +37,6 @@ import mage.abilities.keyword.MadnessAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
@ -52,7 +52,7 @@ public class BigGameHunter extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 4 or greater");
|
||||
|
||||
static {
|
||||
filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3));
|
||||
filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3));
|
||||
}
|
||||
|
||||
public BigGameHunter(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
|
||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||
import mage.abilities.effects.common.WinGameSourceControllerEffect;
|
||||
|
@ -64,7 +64,7 @@ public class Biovisionary extends CardImpl {
|
|||
this.addAbility(new BeginningOfEndStepTriggeredAbility(
|
||||
Zone.BATTLEFIELD, new WinGameSourceControllerEffect(),
|
||||
TargetController.ANY,
|
||||
new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 3),
|
||||
new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 3),
|
||||
false));
|
||||
}
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
|
||||
import mage.abilities.costs.Cost;
|
||||
import mage.abilities.costs.common.SacrificeTargetCost;
|
||||
|
@ -40,7 +41,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.mageobject.CardTypePredicate;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
|
@ -106,7 +106,7 @@ class BirthingPodEffect extends OneShotEffect {
|
|||
if (sacrificedPermanent != null && controller != null) {
|
||||
int newConvertedCost = sacrificedPermanent.getConvertedManaCost() + 1;
|
||||
FilterCard filter = new FilterCard("creature card with converted mana cost " + newConvertedCost);
|
||||
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, newConvertedCost));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, newConvertedCost));
|
||||
filter.add(new CardTypePredicate(CardType.CREATURE));
|
||||
TargetCardInLibrary target = new TargetCardInLibrary(filter);
|
||||
if (controller.searchLibrary(target, game)) {
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
*/
|
||||
package mage.cards.b;
|
||||
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.InvertCondition;
|
||||
|
@ -54,7 +54,7 @@ public class BlackcleaveCliffs extends CardImpl {
|
|||
public BlackcleaveCliffs(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.LAND},null);
|
||||
|
||||
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.FEWER_THAN, 3));
|
||||
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.FEWER_THAN, 3));
|
||||
String abilityText = "tapped unless you control fewer than 3 lands";
|
||||
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));
|
||||
this.addAbility(new BlackManaAbility());
|
||||
|
|
|
@ -29,6 +29,7 @@ package mage.cards.b;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
|
@ -38,7 +39,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterPermanentCard;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -57,7 +57,7 @@ public class Blightspeaker extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Rebel"));
|
||||
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
|
||||
}
|
||||
|
||||
public Blightspeaker(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
|
@ -39,7 +40,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.ToughnessPredicate;
|
||||
|
@ -58,7 +58,7 @@ public class BloodLust extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent();
|
||||
|
||||
static {
|
||||
filter.add(new ToughnessPredicate(Filter.ComparisonType.GreaterThan, 4));
|
||||
filter.add(new ToughnessPredicate(ComparisonType.MORE_THAN, 4));
|
||||
}
|
||||
|
||||
public BloodLust(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
|
||||
import mage.abilities.common.PutCardIntoGraveFromAnywhereAllTriggeredAbility;
|
||||
import mage.abilities.condition.common.OpponentLostLifeCondition;
|
||||
|
@ -61,7 +61,7 @@ public class BloodchiefAscension extends CardImpl {
|
|||
this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD,
|
||||
new AddCountersSourceEffect(CounterType.QUEST.createInstance(1), false),
|
||||
TargetController.ANY,
|
||||
new OpponentLostLifeCondition(CountType.MORE_THAN, 1),
|
||||
new OpponentLostLifeCondition(ComparisonType.MORE_THAN, 1),
|
||||
true));
|
||||
|
||||
// Whenever a card is put into an opponent's graveyard from anywhere, if Bloodchief Ascension has three or more quest counters on it, you may have that player lose 2 life. If you do, you gain 2 life.
|
||||
|
|
|
@ -29,7 +29,7 @@ package mage.cards.b;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||
|
@ -80,7 +80,7 @@ public class BloodlineKeeper extends CardImpl {
|
|||
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD,
|
||||
new TransformSourceEffect(true),
|
||||
new ManaCostsImpl("{B}"),
|
||||
new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 4));
|
||||
new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 4));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
|
@ -37,7 +38,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter.ComparisonType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
@ -53,7 +53,7 @@ public class BloodthornTaunter extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater");
|
||||
|
||||
static {
|
||||
filter.add(new PowerPredicate(ComparisonType.GreaterThan, 4));
|
||||
filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4));
|
||||
}
|
||||
|
||||
public BloodthornTaunter(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
*/
|
||||
package mage.cards.b;
|
||||
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.InvertCondition;
|
||||
|
@ -53,7 +53,7 @@ public class BloomingMarsh extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
|
||||
|
||||
// Blooming Marsh enters the battlefield tapped unless you control two or fewer other lands.
|
||||
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), CountType.FEWER_THAN, 3));
|
||||
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), ComparisonType.FEWER_THAN, 3));
|
||||
String abilityText = "tapped unless you control fewer than 3 lands";
|
||||
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@ package mage.cards.b;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.SacrificeTargetCost;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
|
@ -38,7 +39,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter.ComparisonType;
|
||||
import mage.filter.common.FilterControlledLandPermanent;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.common.FilterPermanentCard;
|
||||
|
@ -60,7 +60,7 @@ public class BogGlider extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Mercenary"));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 3));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3));
|
||||
}
|
||||
|
||||
public BogGlider(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.SacrificeSourceEffect;
|
||||
|
@ -36,7 +37,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -58,7 +58,7 @@ public class BogSerpent extends CardImpl {
|
|||
|
||||
// When you control no Swamps, sacrifice Bog Serpent.
|
||||
this.addAbility(new ControlsPermanentsControllerTriggeredAbility(
|
||||
new FilterLandPermanent("Swamp", "no Swamps"), Filter.ComparisonType.Equal, 0,
|
||||
new FilterLandPermanent("Swamp", "no Swamps"), ComparisonType.EQUAL_TO, 0,
|
||||
new SacrificeSourceEffect()));
|
||||
}
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
*/
|
||||
package mage.cards.b;
|
||||
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.InvertCondition;
|
||||
|
@ -53,7 +53,7 @@ public class BotanicalSanctum extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
|
||||
|
||||
// Botanical Sanctum enters the battlefield tapped unless you control two or fewer other lands.
|
||||
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), CountType.FEWER_THAN, 3));
|
||||
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), ComparisonType.FEWER_THAN, 3));
|
||||
String abilityText = "tapped unless you control fewer than 3 lands";
|
||||
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));
|
||||
|
||||
|
|
112
Mage.Sets/src/mage/cards/b/BountyOfTheLuxa.java
Normal file
112
Mage.Sets/src/mage/cards/b/BountyOfTheLuxa.java
Normal file
|
@ -0,0 +1,112 @@
|
|||
/*
|
||||
* 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.cards.b;
|
||||
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import java.util.UUID;
|
||||
import mage.Mana;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfPreCombatMainTriggeredAbility;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.TargetController;
|
||||
import mage.counters.CounterType;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author jeffwadsworth
|
||||
*/
|
||||
public class BountyOfTheLuxa extends CardImpl {
|
||||
|
||||
public BountyOfTheLuxa(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}{U}");
|
||||
|
||||
//At the beginning of your precombat main phase, remove all flood counters from Bounty of the Luxa. If no flood counters were removed this way, put a flood counter on Bounty of the Luxa and draw a card. Otherwise, add {C}{G}{U} to your mana pool.
|
||||
this.addAbility(new BeginningOfPreCombatMainTriggeredAbility(new BountyOfTheLuxaEffect(), TargetController.YOU, false));
|
||||
|
||||
}
|
||||
|
||||
public BountyOfTheLuxa(final BountyOfTheLuxa card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BountyOfTheLuxa copy() {
|
||||
return new BountyOfTheLuxa(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class BountyOfTheLuxaEffect extends OneShotEffect {
|
||||
|
||||
public BountyOfTheLuxaEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "remove all flood counters from {this}. If no flood counters were removed this way, put a flood counter on {this} and draw a card. Otherwise, add {C}{G}{U} to your mana pool";
|
||||
}
|
||||
|
||||
public BountyOfTheLuxaEffect(final BountyOfTheLuxaEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BountyOfTheLuxaEffect copy() {
|
||||
return new BountyOfTheLuxaEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player controller = game.getPlayer(source.getControllerId());
|
||||
Permanent bountyOfLuxa = game.getPermanent(source.getSourceId());
|
||||
if (controller != null
|
||||
&& bountyOfLuxa != null) {
|
||||
if (bountyOfLuxa.getCounters(game).getCount(CounterType.FLOOD) > 0) {
|
||||
bountyOfLuxa.removeCounters(CounterType.FLOOD.createInstance(bountyOfLuxa.getCounters(game).getCount(CounterType.FLOOD)), game);
|
||||
if (bountyOfLuxa.getCounters(game).getCount(CounterType.FLOOD) == 0) {
|
||||
Mana manaToAdd = new Mana();
|
||||
manaToAdd.increaseColorless();
|
||||
manaToAdd.increaseGreen();
|
||||
manaToAdd.increaseBlue();
|
||||
controller.getManaPool().addMana(manaToAdd, game, source);
|
||||
}
|
||||
} else {
|
||||
new AddCountersSourceEffect(CounterType.FLOOD.createInstance()).apply(game, source);
|
||||
new DrawCardSourceControllerEffect(1).apply(game, source);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.RemoveVariableCountersSourceCost;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
|
@ -42,7 +43,6 @@ import mage.constants.CardType;
|
|||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterInstantOrSorceryCard;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
|
@ -108,7 +108,7 @@ class BrainInAJarCastEffect extends OneShotEffect {
|
|||
if (controller != null && sourceObject != null) {
|
||||
int counters = sourceObject.getCounters(game).getCount(CounterType.CHARGE);
|
||||
FilterCard filter = new FilterInstantOrSorceryCard();
|
||||
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, counters));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, counters));
|
||||
int cardsToCast = controller.getHand().count(filter, source.getControllerId(), source.getSourceId(), game);
|
||||
if (cardsToCast > 0 && controller.chooseUse(outcome, "Cast an instant or sorcery card with converted mana costs of " + counters + " from your hand without paying its mana cost?", source, game)) {
|
||||
TargetCardInHand target = new TargetCardInHand(filter);
|
||||
|
|
|
@ -28,13 +28,13 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.combat.CantBlockCreaturesSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
|
||||
|
@ -48,7 +48,7 @@ public class BrassclawOrcs extends CardImpl {
|
|||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or greater");
|
||||
static {
|
||||
filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 1));
|
||||
filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 1));
|
||||
}
|
||||
|
||||
public BrassclawOrcs(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
|
@ -39,7 +40,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
@ -55,7 +55,7 @@ public class BreakThroughTheLine extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 2 or less");
|
||||
|
||||
static {
|
||||
filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3));
|
||||
filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3));
|
||||
}
|
||||
|
||||
public BreakThroughTheLine(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -29,7 +29,7 @@ package mage.cards.b;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||
|
@ -76,7 +76,7 @@ public class BriarberryCohort extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Briarberry Cohort gets +1/+1 as long as you control another blue creature.
|
||||
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0);
|
||||
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0);
|
||||
Effect effect = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), condition, rule);
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.dynamicvalue.common.ColorsOfManaSpentToCastCount;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.cards.Card;
|
||||
|
@ -36,7 +37,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.CardTypePredicate;
|
||||
|
@ -98,7 +98,7 @@ class BringToLightEffect extends OneShotEffect {
|
|||
int numberColors = ColorsOfManaSpentToCastCount.getInstance().calculate(game, source, this);
|
||||
FilterCard filter = new FilterCard();
|
||||
filter.add(Predicates.or(new CardTypePredicate(CardType.CREATURE), new CardTypePredicate(CardType.INSTANT), new CardTypePredicate(CardType.SORCERY)));
|
||||
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, numberColors + 1));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, numberColors + 1));
|
||||
TargetCardInLibrary target = new TargetCardInLibrary(filter);
|
||||
controller.searchLibrary(target, game);
|
||||
Card card = controller.getLibrary().getCard(target.getFirstTarget(), game);
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.TriggeredAbility;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.condition.common.CardsInHandCondition;
|
||||
|
@ -63,7 +63,7 @@ public class BrinkOfMadness extends CardImpl {
|
|||
TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new SacrificeSourceEffect(), TargetController.YOU, false);
|
||||
ability.addEffect(new BrinkOfMadnessEffect());
|
||||
ability.addTarget(new TargetOpponent());
|
||||
CardsInHandCondition contition = new CardsInHandCondition(CountType.EQUAL_TO, 0);
|
||||
CardsInHandCondition contition = new CardsInHandCondition(ComparisonType.EQUAL_TO, 0);
|
||||
this.addAbility(new ConditionalTriggeredAbility(ability, contition, "At the beginning of your upkeep, if you have no cards in hand, sacrifice {this} and target opponent discards his or her hand."));
|
||||
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SetTargetPointer;
|
||||
import mage.constants.SuperType;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.SupertypePredicate;
|
||||
|
@ -48,7 +49,7 @@ public class BurningEarth extends CardImpl {
|
|||
private final static FilterLandPermanent filter = new FilterLandPermanent("a player taps a nonbasic land");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(new SupertypePredicate("Basic")));
|
||||
filter.add(Predicates.not(new SupertypePredicate(SuperType.BASIC)));
|
||||
}
|
||||
|
||||
public BurningEarth(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -28,13 +28,13 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
||||
import mage.abilities.effects.keyword.InvestigateEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.mageobject.CardTypePredicate;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
|
@ -51,7 +51,7 @@ public class BygoneBishop extends CardImpl {
|
|||
|
||||
static {
|
||||
filterSpell.add(new CardTypePredicate(CardType.CREATURE));
|
||||
filterSpell.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4));
|
||||
filterSpell.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
|
||||
}
|
||||
|
||||
public BygoneBishop(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
*/
|
||||
package mage.cards.c;
|
||||
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.InvertCondition;
|
||||
|
@ -39,13 +39,13 @@ import mage.abilities.mana.WhiteManaAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
import mage.filter.predicate.mageobject.SupertypePredicate;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fireshoes
|
||||
*/
|
||||
public class CanopyVista extends CardImpl {
|
||||
|
@ -53,16 +53,16 @@ public class CanopyVista extends CardImpl {
|
|||
private static final FilterLandPermanent filter = new FilterLandPermanent();
|
||||
|
||||
static {
|
||||
filter.add(new SupertypePredicate("Basic"));
|
||||
filter.add(new SupertypePredicate(SuperType.BASIC));
|
||||
}
|
||||
|
||||
public CanopyVista(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||
this.subtype.add("Forest");
|
||||
this.subtype.add("Plains");
|
||||
|
||||
// Canopy Vista enters the battlefield tapped unless you control two or more basic lands.
|
||||
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1));
|
||||
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1));
|
||||
String abilityText = "tapped unless you control two or more basic lands";
|
||||
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));
|
||||
this.addAbility(new GreenManaAbility());
|
||||
|
|
|
@ -51,7 +51,7 @@ public class CaptainSisay extends CardImpl {
|
|||
private static final FilterCard filter = new FilterCard("legendary card");
|
||||
|
||||
static {
|
||||
filter.add(new SupertypePredicate("Legendary"));
|
||||
filter.add(new SupertypePredicate(SuperType.LEGENDARY));
|
||||
}
|
||||
|
||||
public CaptainSisay(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -71,7 +71,7 @@ public class CartoucheOfKnowledge extends CardImpl {
|
|||
this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1)));
|
||||
|
||||
// Enchanted creature gets +1/+1 and has flying.
|
||||
ability =new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1, 1, Duration.WhileOnBattlefield));
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1, 1, Duration.WhileOnBattlefield));
|
||||
Effect effect = new GainAbilityAttachedEffect(FlyingAbility.getInstance(), AttachmentType.AURA);
|
||||
effect.setText("and has flying");
|
||||
ability.addEffect(effect);
|
||||
|
|
142
Mage.Sets/src/mage/cards/c/CartoucheOfStrength.java
Normal file
142
Mage.Sets/src/mage/cards/c/CartoucheOfStrength.java
Normal file
|
@ -0,0 +1,142 @@
|
|||
/*
|
||||
* 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.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.Mode;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.common.EntersBattlefieldAllTriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.AttachEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostEnchantedEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.constants.*;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.abilities.keyword.EnchantAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
import mage.target.common.TargetOpponentsCreaturePermanent;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author stravant
|
||||
*/
|
||||
public class CartoucheOfStrength extends CardImpl {
|
||||
|
||||
public CartoucheOfStrength(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}");
|
||||
|
||||
this.subtype.add("Aura");
|
||||
this.subtype.add("Cartouche");
|
||||
|
||||
// Enchant creature you control
|
||||
TargetPermanent auraTarget = new TargetControlledCreaturePermanent();
|
||||
this.getSpellAbility().addTarget(auraTarget);
|
||||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature));
|
||||
Ability ability = new EnchantAbility(auraTarget.getTargetName());
|
||||
this.addAbility(ability);
|
||||
|
||||
// When Cartouche of Strength enters the battlefield, you may have enchanted creature fight target creature an opponent controls.
|
||||
ability = new EntersBattlefieldTriggeredAbility(new FightEnchantedTargetEffect(), /* optional = */true);
|
||||
ability.addTarget(new TargetOpponentsCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature gets +1/+1 and has trample.
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1, 1, Duration.WhileOnBattlefield));
|
||||
Effect effect = new GainAbilityAttachedEffect(TrampleAbility.getInstance(), AttachmentType.AURA);
|
||||
effect.setText("and has trample");
|
||||
ability.addEffect(effect);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public CartoucheOfStrength(final CartoucheOfStrength card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CartoucheOfStrength copy() {
|
||||
return new CartoucheOfStrength(this);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @author stravant
|
||||
*/
|
||||
class FightEnchantedTargetEffect extends OneShotEffect {
|
||||
public FightEnchantedTargetEffect() {
|
||||
super(Outcome.Damage);
|
||||
}
|
||||
|
||||
public FightEnchantedTargetEffect(final FightEnchantedTargetEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Permanent sourcePermanent = game.getPermanent(source.getSourceId());
|
||||
if (sourcePermanent != null) {
|
||||
Permanent originalCreature = game.getPermanentOrLKIBattlefield(sourcePermanent.getAttachedTo());
|
||||
if (originalCreature != null) {
|
||||
Permanent enchantedCreature = game.getPermanent(sourcePermanent.getAttachedTo());
|
||||
// only if target is legal the effect will be applied
|
||||
if (source.getTargets().get(0).isLegal(source, game)) {
|
||||
Permanent creature1 = game.getPermanent(source.getTargets().get(0).getFirstTarget());
|
||||
// 20110930 - 701.10
|
||||
if (creature1 != null && enchantedCreature != null) {
|
||||
if (creature1.isCreature() && enchantedCreature.isCreature()) {
|
||||
return enchantedCreature.fight(creature1, source, game);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!game.isSimulation())
|
||||
game.informPlayers(originalCreature.getLogName() + ": Fighting effect has been fizzled.");
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FightEnchantedTargetEffect copy() {
|
||||
return new FightEnchantedTargetEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getText(Mode mode) {
|
||||
return "you may have enchanted creature fight target creature an opponent controls.";
|
||||
}
|
||||
|
||||
}
|
|
@ -30,6 +30,7 @@ package mage.cards.c;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
|
@ -38,7 +39,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter.ComparisonType;
|
||||
import mage.filter.common.FilterPermanentCard;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -56,7 +56,7 @@ public class CateranBrute extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Mercenary"));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 3));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3));
|
||||
}
|
||||
|
||||
public CateranBrute(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -30,6 +30,7 @@ package mage.cards.c;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
|
@ -39,7 +40,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter.ComparisonType;
|
||||
import mage.filter.common.FilterPermanentCard;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -57,7 +57,7 @@ public class CateranEnforcer extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Mercenary"));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 5));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 5));
|
||||
}
|
||||
|
||||
public CateranEnforcer(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -30,6 +30,7 @@ package mage.cards.c;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
|
@ -38,7 +39,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter.ComparisonType;
|
||||
import mage.filter.common.FilterPermanentCard;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -47,7 +47,6 @@ import mage.target.common.TargetCardInLibrary;
|
|||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Backfir3
|
||||
*/
|
||||
public class CateranKidnappers extends CardImpl {
|
||||
|
@ -56,11 +55,11 @@ public class CateranKidnappers extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Mercenary"));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
|
||||
}
|
||||
|
||||
public CateranKidnappers(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{B}");
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Mercenary");
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ package mage.cards.c;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.SacrificeTargetCost;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
|
@ -40,7 +41,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter.ComparisonType;
|
||||
import mage.filter.common.FilterPermanentCard;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -59,7 +59,7 @@ public class CateranOverlord extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Mercenary"));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 7));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 7));
|
||||
}
|
||||
|
||||
public CateranOverlord(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -30,6 +30,7 @@ package mage.cards.c;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
|
@ -38,7 +39,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter.ComparisonType;
|
||||
import mage.filter.common.FilterPermanentCard;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -56,7 +56,7 @@ public class CateranPersuader extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Mercenary"));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 2));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 2));
|
||||
}
|
||||
|
||||
public CateranPersuader(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -30,6 +30,7 @@ package mage.cards.c;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
|
@ -39,7 +40,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter.ComparisonType;
|
||||
import mage.filter.common.FilterPermanentCard;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
@ -57,7 +57,7 @@ public class CateranSlaver extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Mercenary"));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 6));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 6));
|
||||
}
|
||||
|
||||
public CateranSlaver(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -29,6 +29,7 @@ package mage.cards.c;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.DestroyAllEffect;
|
||||
|
@ -39,7 +40,6 @@ import mage.constants.CardType;
|
|||
import mage.constants.Outcome;
|
||||
import mage.constants.SuperType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterSpiritOrArcaneCard;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
|
@ -101,7 +101,7 @@ class CelestialKirinEffect extends OneShotEffect {
|
|||
if (spell != null) {
|
||||
int cmc = spell.getConvertedManaCost();
|
||||
FilterPermanent filter = new FilterPermanent();
|
||||
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, cmc));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, cmc));
|
||||
return new DestroyAllEffect(filter).apply(game, source);
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
package mage.cards.c;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.PermanentHasCounterCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
|
@ -64,7 +64,7 @@ public class ChampionsDrake extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Champion's Drake gets +3/+3 as long as you control a creature with three or more level counters on it.
|
||||
ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield), new PermanentHasCounterCondition(CounterType.LEVEL, 2, new FilterControlledCreaturePermanent(), CountType.MORE_THAN), rule);
|
||||
ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield), new PermanentHasCounterCondition(CounterType.LEVEL, 2, new FilterControlledCreaturePermanent(), ComparisonType.MORE_THAN), rule);
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
|
||||
}
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@ import mage.abilities.effects.common.DestroyTargetEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.SupertypePredicate;
|
||||
|
@ -47,7 +48,7 @@ public class ChillToTheBone extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("nonsnow creature");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(new SupertypePredicate("Snow")));
|
||||
filter.add(Predicates.not(new SupertypePredicate(SuperType.SNOW)));
|
||||
}
|
||||
|
||||
public ChillToTheBone(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -29,7 +29,7 @@ package mage.cards.c;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
|
@ -101,7 +101,7 @@ class ChroniclerOfHeroesEffect extends OneShotEffect {
|
|||
public boolean apply(Game game, Ability source) {
|
||||
Player controller = game.getPlayer(source.getControllerId());
|
||||
if (controller != null) {
|
||||
if (new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0).apply(game, source)) {
|
||||
if (new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0).apply(game, source)) {
|
||||
controller.drawCards(1, game);
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
*/
|
||||
package mage.cards.c;
|
||||
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.InvertCondition;
|
||||
|
@ -63,7 +63,7 @@ public class CinderGlade extends CardImpl {
|
|||
this.subtype.add("Forest");
|
||||
|
||||
// Cinder Glade enters the battlefield tapped unless you control two or more basic lands.
|
||||
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1));
|
||||
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1));
|
||||
String abilityText = "tapped unless you control two or more basic lands";
|
||||
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));
|
||||
this.addAbility(new RedManaAbility());
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.c;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
|
@ -36,7 +37,6 @@ import mage.cards.*;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.mageobject.CardTypePredicate;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
|
@ -98,7 +98,7 @@ class CitanulFluteSearchEffect extends OneShotEffect {
|
|||
FilterCard filter = new FilterCard("creature card with converted mana cost X or less");
|
||||
filter.add(new CardTypePredicate(CardType.CREATURE));
|
||||
//Set the mana cost one higher to 'emulate' a less than or equal to comparison.
|
||||
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, source.getManaCostsToPay().getX() + 1));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, source.getManaCostsToPay().getX() + 1));
|
||||
|
||||
TargetCardInLibrary target = new TargetCardInLibrary(filter);
|
||||
if (player.searchLibrary(target, game)) {
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.InvertCondition;
|
||||
|
@ -60,7 +60,7 @@ public class ClifftopRetreat extends CardImpl {
|
|||
public ClifftopRetreat(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.LAND},null);
|
||||
|
||||
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0));
|
||||
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0));
|
||||
String abilityText = "tap it unless you control a Mountain or a Plains";
|
||||
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));
|
||||
this.addAbility(new RedManaAbility());
|
||||
|
|
|
@ -35,10 +35,7 @@ import mage.abilities.effects.OneShotEffect;
|
|||
import mage.abilities.keyword.CumulativeUpkeepAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
import mage.filter.predicate.mageobject.SupertypePredicate;
|
||||
import mage.game.Game;
|
||||
|
@ -77,7 +74,7 @@ class ColdSnapDamageTargetEffect extends OneShotEffect{
|
|||
private static final FilterLandPermanent filter = new FilterLandPermanent("snow lands");
|
||||
|
||||
static {
|
||||
filter.add(new SupertypePredicate("Snow"));
|
||||
filter.add(new SupertypePredicate(SuperType.SNOW));
|
||||
}
|
||||
|
||||
public ColdSnapDamageTargetEffect()
|
||||
|
|
|
@ -29,6 +29,7 @@ package mage.cards.c;
|
|||
|
||||
import mage.MageObject;
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
|
||||
import mage.abilities.common.DiesCreatureTriggeredAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
|
@ -40,7 +41,6 @@ import mage.constants.CardType;
|
|||
import mage.constants.Outcome;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.ToughnessPredicate;
|
||||
import mage.game.ExileZone;
|
||||
|
@ -60,7 +60,7 @@ public class ColfenorsUrn extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature with toughness 4 or greater");
|
||||
|
||||
static {
|
||||
filter.add(new ToughnessPredicate(Filter.ComparisonType.GreaterThan, 3));
|
||||
filter.add(new ToughnessPredicate(ComparisonType.MORE_THAN, 3));
|
||||
}
|
||||
|
||||
public ColfenorsUrn(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -27,12 +27,12 @@
|
|||
*/
|
||||
package mage.cards.c;
|
||||
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.effects.common.LookLibraryAndPickControllerEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter.ComparisonType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.mageobject.CardTypePredicate;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
|
@ -49,7 +49,7 @@ public class CollectedCompany extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(new CardTypePredicate(CardType.CREATURE));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
|
||||
}
|
||||
|
||||
public CollectedCompany(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.c;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.Mode;
|
||||
import mage.abilities.costs.Cost;
|
||||
import mage.abilities.costs.common.TapTargetCost;
|
||||
|
@ -40,7 +41,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.FilterPlayer;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
|
@ -71,7 +71,7 @@ public class CollectiveEffort extends CardImpl {
|
|||
|
||||
static {
|
||||
filterUntapped.add(Predicates.not(new TappedPredicate()));
|
||||
filterDestroyCreature.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3));
|
||||
filterDestroyCreature.add(new PowerPredicate(ComparisonType.MORE_THAN, 3));
|
||||
}
|
||||
|
||||
public CollectiveEffort(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -30,7 +30,7 @@ package mage.cards.c;
|
|||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
|
@ -70,7 +70,7 @@ public class CompanionOfTheTrials extends CardImpl {
|
|||
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD,
|
||||
new UntapTargetEffect(),
|
||||
new ManaCostsImpl("{1}{W}"),
|
||||
new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0));
|
||||
new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -28,12 +28,12 @@
|
|||
package mage.cards.c;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.effects.common.ExileTargetEffect;
|
||||
import mage.abilities.keyword.DevoidAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
@ -49,7 +49,7 @@ public class CompleteDisregard extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 3 or less");
|
||||
|
||||
static {
|
||||
filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 4));
|
||||
filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 4));
|
||||
}
|
||||
|
||||
public CompleteDisregard(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
*/
|
||||
package mage.cards.c;
|
||||
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.InvertCondition;
|
||||
|
@ -53,7 +53,7 @@ public class ConcealedCourtyard extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
|
||||
|
||||
// Concealed Courtyard enters the battlefield tapped unless you control two or fewer other lands.
|
||||
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), CountType.FEWER_THAN, 3));
|
||||
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), ComparisonType.FEWER_THAN, 3));
|
||||
String abilityText = "tapped unless you control fewer than 3 lands";
|
||||
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.c;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.CastSourceTriggeredAbility;
|
||||
|
@ -38,7 +39,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.WatcherScope;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.filter.predicate.ObjectPlayer;
|
||||
import mage.filter.predicate.ObjectPlayerPredicate;
|
||||
|
@ -66,7 +66,7 @@ public class ConduitOfRuin extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(new ColorlessPredicate());
|
||||
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.GreaterThan, 6));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 6));
|
||||
filterCost.add(new FirstCastCreatureSpellPredicate());
|
||||
}
|
||||
|
||||
|
|
|
@ -27,11 +27,11 @@
|
|||
*/
|
||||
package mage.cards.c;
|
||||
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.effects.common.DestroyAllEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
|
||||
|
@ -46,7 +46,7 @@ public class ConsumeTheMeek extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with converted mana cost 3 or less");
|
||||
|
||||
static {
|
||||
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
|
||||
}
|
||||
|
||||
public ConsumeTheMeek(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
*/
|
||||
package mage.cards.c;
|
||||
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.InvertCondition;
|
||||
|
@ -55,7 +55,7 @@ public class CopperlineGorge extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.LAND},null);
|
||||
|
||||
// Copperline Gorge enters the battlefield tapped unless you control two or fewer other lands.
|
||||
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.FEWER_THAN, 3));
|
||||
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.FEWER_THAN, 3));
|
||||
String abilityText = "tapped unless you control two or fewer other lands";
|
||||
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));
|
||||
this.addAbility(new RedManaAbility());
|
||||
|
|
|
@ -28,13 +28,13 @@
|
|||
package mage.cards.c;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility;
|
||||
import mage.abilities.effects.common.SacrificeSourceEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterArtifactPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -56,7 +56,7 @@ public class CovetousDragon extends CardImpl {
|
|||
|
||||
// When you control no artifacts, sacrifice Covetous Dragon.
|
||||
this.addAbility(new ControlsPermanentsControllerTriggeredAbility(
|
||||
new FilterArtifactPermanent("no artifacts"), Filter.ComparisonType.Equal, 0,
|
||||
new FilterArtifactPermanent("no artifacts"), ComparisonType.EQUAL_TO, 0,
|
||||
new SacrificeSourceEffect()));
|
||||
}
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ package mage.cards.c;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||
|
@ -72,7 +72,7 @@ public class CrabappleCohort extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
// Crabapple Cohort gets +1/+1 as long as you control another green creature.
|
||||
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0);
|
||||
Condition condition = new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0);
|
||||
Effect effect = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), condition, rule);
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.c;
|
||||
|
||||
import mage.ObjectColor;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.DontUntapInControllersUntapStepAllEffect;
|
||||
import mage.cards.CardImpl;
|
||||
|
@ -36,7 +37,6 @@ import mage.constants.CardType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.ColorPredicate;
|
||||
|
@ -54,7 +54,7 @@ public class Crackdown extends CardImpl {
|
|||
|
||||
static {
|
||||
filter.add(Predicates.not(new ColorPredicate(ObjectColor.WHITE)));
|
||||
filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2));
|
||||
filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 2));
|
||||
}
|
||||
|
||||
public Crackdown(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.c;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.DamagePlayersEffect;
|
||||
import mage.cards.CardImpl;
|
||||
|
@ -35,7 +36,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.TargetController;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
|
@ -117,7 +117,7 @@ class CracklingDoomEffect extends OneShotEffect {
|
|||
}
|
||||
} else if (greatestPower != Integer.MIN_VALUE) {
|
||||
FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creature to sacrifice with power equal to " + greatestPower);
|
||||
filter.add(new PowerPredicate(Filter.ComparisonType.Equal, greatestPower));
|
||||
filter.add(new PowerPredicate(ComparisonType.EQUAL_TO, greatestPower));
|
||||
Target target = new TargetControlledCreaturePermanent(filter);
|
||||
if (opponent.choose(outcome, target, playerId, game)) {
|
||||
Permanent permanent = game.getPermanent(target.getFirstTarget());
|
||||
|
|
|
@ -29,6 +29,7 @@ package mage.cards.c;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect;
|
||||
|
@ -36,7 +37,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
@ -52,7 +52,7 @@ public class CraftyPathmage extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 2 or less");
|
||||
|
||||
static {
|
||||
filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3));
|
||||
filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3));
|
||||
}
|
||||
|
||||
public CraftyPathmage(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
169
Mage.Sets/src/mage/cards/c/CruelReality.java
Normal file
169
Mage.Sets/src/mage/cards/c/CruelReality.java
Normal file
|
@ -0,0 +1,169 @@
|
|||
/*
|
||||
* 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.cards.c;
|
||||
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.AttachEffect;
|
||||
import mage.abilities.keyword.EnchantAbility;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.CardTypePredicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.GameEvent.EventType;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.TargetPlayer;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author jeffwadsworth
|
||||
*/
|
||||
public class CruelReality extends CardImpl {
|
||||
|
||||
public CruelReality(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{5}{B}{B}");
|
||||
this.subtype.add("Aura");
|
||||
this.subtype.add("Curse");
|
||||
this.color.setBlack(true);
|
||||
|
||||
// Enchant player
|
||||
TargetPlayer auraTarget = new TargetPlayer();
|
||||
this.getSpellAbility().addTarget(auraTarget);
|
||||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.Damage));
|
||||
this.addAbility(new EnchantAbility(auraTarget.getTargetName()));
|
||||
|
||||
//At the beginning of enchanted player's upkeep, that player sacrifices a creature or planeswalker. If the player can't, he or she loses 5 life.
|
||||
this.addAbility(new CruelRealityTriggeredAbiilty());
|
||||
|
||||
}
|
||||
|
||||
public CruelReality(final CruelReality card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CruelReality copy() {
|
||||
return new CruelReality(this);
|
||||
}
|
||||
}
|
||||
|
||||
class CruelRealityTriggeredAbiilty extends TriggeredAbilityImpl {
|
||||
|
||||
public CruelRealityTriggeredAbiilty() {
|
||||
super(Zone.BATTLEFIELD, new CruelRealityEffect());
|
||||
}
|
||||
|
||||
public CruelRealityTriggeredAbiilty(final CruelRealityTriggeredAbiilty ability) {
|
||||
super(ability);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CruelRealityTriggeredAbiilty copy() {
|
||||
return new CruelRealityTriggeredAbiilty(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkEventType(GameEvent event, Game game) {
|
||||
return event.getType() == EventType.UPKEEP_STEP_PRE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
Permanent enchantment = game.getPermanent(this.sourceId);
|
||||
if (enchantment != null
|
||||
&& enchantment.getAttachedTo() != null) {
|
||||
Player cursedPlayer = game.getPlayer(enchantment.getAttachedTo());
|
||||
if (cursedPlayer != null
|
||||
&& game.getActivePlayerId().equals(cursedPlayer.getId())) {
|
||||
this.getEffects().get(0).setTargetPointer(new FixedTarget(cursedPlayer.getId()));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "At the beginning of enchanted player's upkeep, " + super.getRule();
|
||||
}
|
||||
}
|
||||
|
||||
class CruelRealityEffect extends OneShotEffect {
|
||||
|
||||
public CruelRealityEffect() {
|
||||
super(Outcome.LoseLife);
|
||||
staticText = "that player sacrifices a creature or planeswalker. If the player can't, he or she loses 5 life";
|
||||
}
|
||||
|
||||
public CruelRealityEffect(final CruelRealityEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CruelRealityEffect copy() {
|
||||
return new CruelRealityEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player cursedPlayer = game.getPlayer(targetPointer.getFirst(game, source));
|
||||
Player controller = game.getPlayer(source.getControllerId());
|
||||
if (cursedPlayer != null
|
||||
&& controller != null) {
|
||||
if (cursedPlayer.chooseUse(outcome, "Sacrifice a creature or planeswalker?", source, game)) {
|
||||
FilterControlledPermanent filter = new FilterControlledPermanent();
|
||||
filter.add(Predicates.or(
|
||||
new CardTypePredicate(CardType.CREATURE),
|
||||
new CardTypePredicate(CardType.PLANESWALKER)));
|
||||
TargetPermanent target = new TargetPermanent(filter);
|
||||
if (cursedPlayer.choose(outcome, target, source.getId(), game)) {
|
||||
Permanent objectToBeSacrificed = game.getPermanent(target.getFirstTarget());
|
||||
if (objectToBeSacrificed != null) {
|
||||
if (objectToBeSacrificed.sacrifice(source.getId(), game)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
cursedPlayer.loseLife(5, game, false);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -29,6 +29,7 @@ package mage.cards.c;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.common.ManaWasSpentCondition;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
|
@ -41,7 +42,6 @@ import mage.constants.CardType;
|
|||
import mage.constants.ColoredManaSymbol;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter.ComparisonType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
|
@ -112,7 +112,7 @@ class CryptChampionEffect extends OneShotEffect {
|
|||
if (player != null) {
|
||||
FilterCard filter = new FilterCreatureCard("creature card with converted mana cost 3 or less from your graveyard");
|
||||
filter.add(new OwnerIdPredicate(playerId));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
|
||||
Target target = new TargetCardInGraveyard(filter);
|
||||
if (target.canChoose(playerId, game) && player.chooseTarget(outcome, target, source, game)) {
|
||||
Card card = game.getCard(target.getFirstTarget());
|
||||
|
|
111
Mage.Sets/src/mage/cards/c/CrypticSerpent.java
Normal file
111
Mage.Sets/src/mage/cards/c/CrypticSerpent.java
Normal 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.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.SpellAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.cost.CostModificationEffectImpl;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.CostModificationType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterInstantOrSorceryCard;
|
||||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
import mage.util.CardUtil;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fireshoes
|
||||
*/
|
||||
public class CrypticSerpent extends CardImpl {
|
||||
|
||||
public CrypticSerpent(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{U}{U}");
|
||||
|
||||
this.subtype.add("Serpent");
|
||||
this.power = new MageInt(6);
|
||||
this.toughness = new MageInt(5);
|
||||
|
||||
// Cryptic Serpent costs {1} less to cast for each instant and sorcery card in your graveyard.
|
||||
Ability ability = new SimpleStaticAbility(Zone.ALL, new CrypticSerpentCostReductionEffect());
|
||||
ability.setRuleAtTheTop(true);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public CrypticSerpent(final CrypticSerpent card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CrypticSerpent copy() {
|
||||
return new CrypticSerpent(this);
|
||||
}
|
||||
}
|
||||
|
||||
class CrypticSerpentCostReductionEffect extends CostModificationEffectImpl {
|
||||
|
||||
CrypticSerpentCostReductionEffect() {
|
||||
super(Duration.WhileOnStack, Outcome.Benefit, CostModificationType.REDUCE_COST);
|
||||
staticText = "{this} costs {1} less to cast for each instant or sorcery card in your graveyard";
|
||||
}
|
||||
|
||||
CrypticSerpentCostReductionEffect(CrypticSerpentCostReductionEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source, Ability abilityToModify) {
|
||||
Player player = game.getPlayer(source.getControllerId());
|
||||
if (player != null) {
|
||||
int reductionAmount = player.getGraveyard().count(new FilterInstantOrSorceryCard(), game);
|
||||
CardUtil.reduceCost(abilityToModify, reductionAmount);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean applies(Ability abilityToModify, Ability source, Game game) {
|
||||
if ((abilityToModify instanceof SpellAbility) && abilityToModify.getSourceId().equals(source.getSourceId())) {
|
||||
return game.getCard(abilityToModify.getSourceId()) != null;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CrypticSerpentCostReductionEffect copy() {
|
||||
return new CrypticSerpentCostReductionEffect(this);
|
||||
}
|
||||
}
|
|
@ -28,13 +28,13 @@
|
|||
package mage.cards.c;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterNonlandPermanent;
|
||||
import mage.filter.predicate.Predicate;
|
||||
|
@ -83,7 +83,7 @@ class HasLowestCMCAmongstNonlandPermanentsPredicate implements Predicate<Permane
|
|||
@Override
|
||||
public boolean apply(Permanent input, Game game) {
|
||||
FilterPermanent filter = new FilterNonlandPermanent();
|
||||
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, input.getConvertedManaCost()));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, input.getConvertedManaCost()));
|
||||
return !game.getBattlefield().contains(filter, 1, game);
|
||||
}
|
||||
|
||||
|
|
|
@ -27,11 +27,11 @@
|
|||
*/
|
||||
package mage.cards.c;
|
||||
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.effects.common.DestroyAllEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
|
||||
|
@ -45,7 +45,7 @@ public class CullingSun extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with converted mana cost 3 or less");
|
||||
|
||||
static {
|
||||
filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4));
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4));
|
||||
}
|
||||
|
||||
public CullingSun(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -29,20 +29,14 @@ package mage.cards.c;
|
|||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.common.CycleOrDiscardControllerTriggeredAbility;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.keyword.ScryEffect;
|
||||
import mage.abilities.keyword.CyclingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.GameEvent.EventType;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -61,7 +55,7 @@ public class CuratorOfMysteries extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Whenever you cycle or discard another card, scry 1.
|
||||
this.addAbility(new CycleOrDiscardControllerTriggeredAbility(new ScryEffect(1), false));
|
||||
this.addAbility(new CycleOrDiscardControllerTriggeredAbility(new ScryEffect(1)));
|
||||
|
||||
// Cycling {U}
|
||||
this.addAbility(new CyclingAbility(new ManaCostsImpl("{U}")));
|
||||
|
@ -77,37 +71,3 @@ public class CuratorOfMysteries extends CardImpl {
|
|||
return new CuratorOfMysteries(this);
|
||||
}
|
||||
}
|
||||
|
||||
class CuratorOfMysteriesTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
CuratorOfMysteriesTriggeredAbility(Effect effect) {
|
||||
super(Zone.BATTLEFIELD, effect, false);
|
||||
}
|
||||
|
||||
CuratorOfMysteriesTriggeredAbility(final CuratorOfMysteriesTriggeredAbility ability) {
|
||||
super(ability);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CuratorOfMysteriesTriggeredAbility copy() {
|
||||
return new CuratorOfMysteriesTriggeredAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkEventType(GameEvent event, Game game) {
|
||||
return event.getType() == EventType.DISCARDED_CARD;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
if (getControllerId().equals(event.getPlayerId())) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever you cycle or discard a card, " + super.getRule();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.c;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.combat.CantBlockCreaturesSourceEffect;
|
||||
import mage.abilities.keyword.IntimidateAbility;
|
||||
|
@ -35,7 +36,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
|
||||
|
@ -49,7 +49,7 @@ public class CyclopsTyrant extends CardImpl {
|
|||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or less");
|
||||
static {
|
||||
filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3));
|
||||
filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3));
|
||||
}
|
||||
|
||||
public CyclopsTyrant(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.d;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.SacrificeSourceEffect;
|
||||
|
@ -36,20 +37,17 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author KholdFuzion
|
||||
*
|
||||
*/
|
||||
public class Dandan extends CardImpl {
|
||||
|
||||
public Dandan(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{U}{U}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U}{U}");
|
||||
this.subtype.add("Fish");
|
||||
|
||||
this.power = new MageInt(4);
|
||||
|
@ -60,7 +58,7 @@ public class Dandan extends CardImpl {
|
|||
|
||||
// When you control no Islands, sacrifice Dandan.
|
||||
this.addAbility(new ControlsPermanentsControllerTriggeredAbility(
|
||||
new FilterLandPermanent("Island", "no Islands"), Filter.ComparisonType.Equal, 0,
|
||||
new FilterLandPermanent("Island", "no Islands"), ComparisonType.EQUAL_TO, 0,
|
||||
new SacrificeSourceEffect()));
|
||||
}
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
package mage.cards.d;
|
||||
|
||||
import mage.abilities.CountType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.InvertCondition;
|
||||
|
@ -61,7 +61,7 @@ public class DarkslickShores extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.LAND},null);
|
||||
|
||||
// Darkslick Shores enters the battlefield tapped unless you control two or fewer other lands.
|
||||
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.FEWER_THAN, 3));
|
||||
Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.FEWER_THAN, 3));
|
||||
String abilityText = "tapped unless you control two or fewer other lands";
|
||||
this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText));
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ package mage.cards.d;
|
|||
import mage.MageInt;
|
||||
import mage.MageObject;
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
||||
import mage.abilities.common.SimpleEvasionAbility;
|
||||
import mage.abilities.effects.AsThoughEffectImpl;
|
||||
|
@ -41,7 +42,6 @@ import mage.cards.Card;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
import mage.game.ExileZone;
|
||||
|
@ -63,7 +63,7 @@ public class DaxosOfMeletis extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 3 or greater");
|
||||
|
||||
static {
|
||||
filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2));
|
||||
filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 2));
|
||||
}
|
||||
|
||||
public DaxosOfMeletis(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue