diff --git a/Mage.Sets/src/mage/cards/a/Aboroth.java b/Mage.Sets/src/mage/cards/a/Aboroth.java new file mode 100644 index 00000000000..fa27e6a3dd8 --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/Aboroth.java @@ -0,0 +1,96 @@ +/* + * 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.MageInt; +import mage.abilities.Ability; +import mage.abilities.costs.Cost; +import mage.abilities.costs.CostImpl; +import mage.abilities.keyword.CumulativeUpkeepAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.counters.CounterType; +import mage.game.Game; +import mage.game.permanent.Permanent; + +/** + * + * @author Styxo + */ +public class Aboroth extends CardImpl { + + public Aboroth(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{G}{G}"); + + this.subtype.add("Elemental"); + this.power = new MageInt(9); + this.toughness = new MageInt(9); + + // Cumulative upkeep-Put a -1/-1 counter on Aboroth. + this.addAbility(new CumulativeUpkeepAbility(new AborothCost())); + } + + public Aboroth(final Aboroth card) { + super(card); + } + + @Override + public Aboroth copy() { + return new Aboroth(this); + } +} + +class AborothCost extends CostImpl { + + public AborothCost() { + this.text = "Put a -1/-1 counter on Aboroth"; + } + + @Override + public boolean pay(Ability ability, Game game, UUID sourceId, UUID controllerId, boolean noMana, Cost costToPay) { + Permanent permanent = game.getPermanent(sourceId); + if (permanent != null) { + permanent.addCounters(CounterType.M1M1.createInstance(), game); + this.paid = true; + return true; + } + return false; + } + + @Override + public boolean canPay(Ability ability, UUID sourceId, UUID controllerId, Game game) { + return true; + } + + @Override + public AborothCost copy() { + return new AborothCost(); + } +} diff --git a/Mage.Sets/src/mage/cards/a/Avizoa.java b/Mage.Sets/src/mage/cards/a/Avizoa.java new file mode 100644 index 00000000000..a3d58d0f0a7 --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/Avizoa.java @@ -0,0 +1,75 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.a; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.SkipNextPlayerUntapStepEffect; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +/** + * + * @author Styxo + */ +public class Avizoa extends CardImpl { + + public Avizoa(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}"); + + this.subtype.add("Jellyfish"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // {0}: Avizoa gets +2/+2 until end of turn. You skip your next untap step. Activate this ability only once each turn. + Ability ability = new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl("{0}")); + ability.addEffect(new SkipNextPlayerUntapStepEffect()); + this.addAbility(ability); + + } + + public Avizoa(final Avizoa card) { + super(card); + } + + @Override + public Avizoa copy() { + return new Avizoa(this); + } +} diff --git a/Mage.Sets/src/mage/cards/b/BenedictionOfMoons.java b/Mage.Sets/src/mage/cards/b/BenedictionOfMoons.java new file mode 100644 index 00000000000..edf9abb5f27 --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BenedictionOfMoons.java @@ -0,0 +1,90 @@ +/* + * 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.abilities.Ability; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.keyword.HauntAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.game.Game; + +/** + * + * @author Styxo + */ +public class BenedictionOfMoons extends CardImpl { + + public BenedictionOfMoons(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{W}"); + + // You gain 1 life for each player. + this.getSpellAbility().addEffect(new GainLifeEffect(new PlayerCount())); + + // Haunt + // When the creature Benediction of Moons haunts dies, you gain 1 life for each player. + this.addAbility(new HauntAbility(this, new GainLifeEffect(new PlayerCount()))); + + } + + public BenedictionOfMoons(final BenedictionOfMoons card) { + super(card); + } + + @Override + public BenedictionOfMoons copy() { + return new BenedictionOfMoons(this); + } +} + +class PlayerCount implements DynamicValue { + + @Override + public int calculate(Game game, Ability sourceAbility, Effect effect) { + return game.getNumPlayers(); + } + + @Override + public PlayerCount copy() { + return new PlayerCount(); + } + + @Override + public String toString() { + return "X"; + } + + @Override + public String getMessage() { + return "player"; + } +} diff --git a/Mage.Sets/src/mage/cards/i/InfernalTribute.java b/Mage.Sets/src/mage/cards/i/InfernalTribute.java new file mode 100644 index 00000000000..f03784ad07f --- /dev/null +++ b/Mage.Sets/src/mage/cards/i/InfernalTribute.java @@ -0,0 +1,74 @@ +/* + * 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.i; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.permanent.TokenPredicate; +import mage.target.common.TargetControlledPermanent; + +/** + * + * @author Styxo + */ +public class InfernalTribute extends CardImpl { + + private final static FilterControlledPermanent filter = new FilterControlledPermanent("a nontoken permanent"); + + static { + filter.add(Predicates.not(new TokenPredicate())); + } + + public InfernalTribute(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{B}{B}{B}"); + + // {2}, Sacrifice a nontoken permanent: Draw a card. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new GenericManaCost(2)); + ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter))); + this.addAbility(ability); + } + + public InfernalTribute(final InfernalTribute card) { + super(card); + } + + @Override + public InfernalTribute copy() { + return new InfernalTribute(this); + } +} diff --git a/Mage.Sets/src/mage/cards/y/YoseiTheMorningStar.java b/Mage.Sets/src/mage/cards/y/YoseiTheMorningStar.java index 2128bd516b6..e4a970a6cf8 100644 --- a/Mage.Sets/src/mage/cards/y/YoseiTheMorningStar.java +++ b/Mage.Sets/src/mage/cards/y/YoseiTheMorningStar.java @@ -56,7 +56,7 @@ import mage.target.Targets; public class YoseiTheMorningStar extends CardImpl { public YoseiTheMorningStar(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{W}{W}"); this.supertype.add("Legendary"); this.subtype.add("Dragon"); this.subtype.add("Spirit"); @@ -66,8 +66,9 @@ public class YoseiTheMorningStar extends CardImpl { // Flying this.addAbility(FlyingAbility.getInstance()); + // When Yosei, the Morning Star dies, target player skips his or her next untap step. Tap up to five target permanents that player controls. - Ability ability = new DiesTriggeredAbility(new SkipNextPlayerUntapStepEffect()); + Ability ability = new DiesTriggeredAbility(new SkipNextPlayerUntapStepEffect("target ")); ability.addTarget(new TargetPlayer()); ability.addTarget(new YoseiTheMorningStarTarget()); ability.addEffect(new YoseiTheMorningStarTapEffect()); @@ -84,9 +85,9 @@ public class YoseiTheMorningStar extends CardImpl { } } - class YoseiTheMorningStarTarget extends TargetPermanent { +class YoseiTheMorningStarTarget extends TargetPermanent { - private static final FilterPermanent filterTemplate = new FilterPermanent("up to five target permanents that player controls that will be tapped"); + private static final FilterPermanent filterTemplate = new FilterPermanent("up to five target permanents that player controls that will be tapped"); public YoseiTheMorningStarTarget() { super(0, 5, filterTemplate, false); @@ -96,14 +97,14 @@ public class YoseiTheMorningStar extends CardImpl { super(target); } - @Override - public boolean canTarget(UUID controllerId, UUID id, Ability source, Game game) { - Player player = game.getPlayer(source.getFirstTarget()); - if (player != null) { - this.filter = filterTemplate.copy(); - this.filter.add(new ControllerIdPredicate(player.getId())); - return super.canTarget(controllerId, id, source, game); - } + @Override + public boolean canTarget(UUID controllerId, UUID id, Ability source, Game game) { + Player player = game.getPlayer(source.getFirstTarget()); + if (player != null) { + this.filter = filterTemplate.copy(); + this.filter.add(new ControllerIdPredicate(player.getId())); + return super.canTarget(controllerId, id, source, game); + } return false; } @@ -118,7 +119,7 @@ class YoseiTheMorningStarTapEffect extends OneShotEffect { public YoseiTheMorningStarTapEffect() { super(Outcome.Tap); - staticText = "Tap up to five target permanents that player controls"; + staticText = "Tap up to five target permanents that player controls"; } public YoseiTheMorningStarTapEffect(final YoseiTheMorningStarTapEffect effect) { @@ -132,9 +133,9 @@ class YoseiTheMorningStarTapEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - Targets targets = source.getTargets(); - Target target1 = targets.get(1); - for (UUID target: target1.getTargets()) { + Targets targets = source.getTargets(); + Target target1 = targets.get(1); + for (UUID target : target1.getTargets()) { Permanent permanent = game.getPermanent(target); if (permanent != null) { permanent.tap(game); @@ -147,7 +148,7 @@ class YoseiTheMorningStarTapEffect extends OneShotEffect { @Override public String getText(Mode mode) { - return staticText; + return staticText; } } diff --git a/Mage.Sets/src/mage/sets/Guildpact.java b/Mage.Sets/src/mage/sets/Guildpact.java index 699d4f4dd92..4bb37112a53 100644 --- a/Mage.Sets/src/mage/sets/Guildpact.java +++ b/Mage.Sets/src/mage/sets/Guildpact.java @@ -1,203 +1,204 @@ -/* -* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without modification, are -* permitted provided that the following conditions are met: -* -* 1. Redistributions of source code must retain the above copyright notice, this list of -* conditions and the following disclaimer. -* -* 2. Redistributions in binary form must reproduce the above copyright notice, this list -* of conditions and the following disclaimer in the documentation and/or other materials -* provided with the distribution. -* -* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED -* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR -* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -* The views and conclusions contained in the software and documentation are those of the -* authors and should not be interpreted as representing official policies, either expressed -* or implied, of BetaSteward_at_googlemail.com. -*/ - -package mage.sets; - -import mage.cards.ExpansionSet; -import mage.constants.SetType; - -import mage.constants.Rarity; - -/** - * Created by IntelliJ IDEA. User: Loki Date: 20.12.10 Time: 21:01 - */ -public class Guildpact extends ExpansionSet { - private static final Guildpact fINSTANCE = new Guildpact(); - - public static Guildpact getInstance() { - return fINSTANCE; - } - - private Guildpact() { - super("Guildpact", "GPT", ExpansionSet.buildDate(2006, 1, 3), SetType.EXPANSION); - this.blockName = "Ravnica"; - this.parentSet = RavnicaCityOfGuilds.getInstance(); - this.hasBasicLands = false; - this.hasBoosters = true; - this.numBoosterLands = 0; - this.numBoosterCommon = 11; - this.numBoosterUncommon = 3; - this.numBoosterRare = 1; - this.ratioBoosterMythic = 0; - cards.add(new SetCardInfo("Absolver Thrull", 1, Rarity.COMMON, mage.cards.a.AbsolverThrull.class)); - cards.add(new SetCardInfo("Abyssal Nocturnus", 43, Rarity.RARE, mage.cards.a.AbyssalNocturnus.class)); - cards.add(new SetCardInfo("Agent of Masks", 100, Rarity.UNCOMMON, mage.cards.a.AgentOfMasks.class)); - cards.add(new SetCardInfo("Angel of Despair", 101, Rarity.RARE, mage.cards.a.AngelOfDespair.class)); - cards.add(new SetCardInfo("Battering Wurm", 79, Rarity.UNCOMMON, mage.cards.b.BatteringWurm.class)); - cards.add(new SetCardInfo("Beastmaster's Magemark", 80, Rarity.COMMON, mage.cards.b.BeastmastersMagemark.class)); - cards.add(new SetCardInfo("Belfry Spirit", 2, Rarity.UNCOMMON, mage.cards.b.BelfrySpirit.class)); - cards.add(new SetCardInfo("Blind Hunter", 102, Rarity.COMMON, mage.cards.b.BlindHunter.class)); - cards.add(new SetCardInfo("Bloodscale Prowler", 64, Rarity.COMMON, mage.cards.b.BloodscaleProwler.class)); - cards.add(new SetCardInfo("Borborygmos", 103, Rarity.RARE, mage.cards.b.Borborygmos.class)); - cards.add(new SetCardInfo("Burning-Tree Bloodscale", 104, Rarity.COMMON, mage.cards.b.BurningTreeBloodscale.class)); - cards.add(new SetCardInfo("Burning-Tree Shaman", 105, Rarity.RARE, mage.cards.b.BurningTreeShaman.class)); - cards.add(new SetCardInfo("Castigate", 106, Rarity.COMMON, mage.cards.c.Castigate.class)); - cards.add(new SetCardInfo("Caustic Rain", 44, Rarity.UNCOMMON, mage.cards.c.CausticRain.class)); - cards.add(new SetCardInfo("Cerebral Vortex", 107, Rarity.RARE, mage.cards.c.CerebralVortex.class)); - cards.add(new SetCardInfo("Cremate", 45, Rarity.COMMON, mage.cards.c.Cremate.class)); - cards.add(new SetCardInfo("Cry of Contrition", 46, Rarity.COMMON, mage.cards.c.CryOfContrition.class)); - cards.add(new SetCardInfo("Crystal Seer", 23, Rarity.UNCOMMON, mage.cards.c.CrystalSeer.class)); - cards.add(new SetCardInfo("Culling Sun", 109, Rarity.RARE, mage.cards.c.CullingSun.class)); - cards.add(new SetCardInfo("Daggerclaw Imp", 48, Rarity.UNCOMMON, mage.cards.d.DaggerclawImp.class)); - cards.add(new SetCardInfo("Debtors' Knell", 141, Rarity.RARE, mage.cards.d.DebtorsKnell.class)); - cards.add(new SetCardInfo("Djinn Illuminatus", 142, Rarity.RARE, mage.cards.d.DjinnIlluminatus.class)); - cards.add(new SetCardInfo("Douse in Gloom", 49, Rarity.COMMON, mage.cards.d.DouseInGloom.class)); - cards.add(new SetCardInfo("Drowned Rusalka", 24, Rarity.UNCOMMON, mage.cards.d.DrownedRusalka.class)); - cards.add(new SetCardInfo("Dryad Sophisticate", 83, Rarity.UNCOMMON, mage.cards.d.DryadSophisticate.class)); - cards.add(new SetCardInfo("Dune-Brood Nephilim", 110, Rarity.RARE, mage.cards.d.DuneBroodNephilim.class)); - cards.add(new SetCardInfo("Earth Surge", 84, Rarity.RARE, mage.cards.e.EarthSurge.class)); - cards.add(new SetCardInfo("Electrolyze", 111, Rarity.UNCOMMON, mage.cards.e.Electrolyze.class)); - cards.add(new SetCardInfo("Exhumer Thrull", 50, Rarity.UNCOMMON, mage.cards.e.ExhumerThrull.class)); - cards.add(new SetCardInfo("Fencer's Magemark", 65, Rarity.COMMON, mage.cards.f.FencersMagemark.class)); - cards.add(new SetCardInfo("Feral Animist", 112, Rarity.UNCOMMON, mage.cards.f.FeralAnimist.class)); - cards.add(new SetCardInfo("Frazzle", 25, Rarity.UNCOMMON, mage.cards.f.Frazzle.class)); - cards.add(new SetCardInfo("Gelectrode", 113, Rarity.UNCOMMON, mage.cards.g.Gelectrode.class)); - cards.add(new SetCardInfo("Ghor-Clan Bloodscale", 66, Rarity.UNCOMMON, mage.cards.g.GhorClanBloodscale.class)); - cards.add(new SetCardInfo("Ghor-Clan Savage", 86, Rarity.COMMON, mage.cards.g.GhorClanSavage.class)); - cards.add(new SetCardInfo("Ghost Council of Orzhova", 114, Rarity.RARE, mage.cards.g.GhostCouncilOfOrzhova.class)); - cards.add(new SetCardInfo("Ghost Warden", 5, Rarity.COMMON, mage.cards.g.GhostWarden.class)); - cards.add(new SetCardInfo("Ghostway", 6, Rarity.RARE, mage.cards.g.Ghostway.class)); - cards.add(new SetCardInfo("Giant Solifuge", 143, Rarity.RARE, mage.cards.g.GiantSolifuge.class)); - cards.add(new SetCardInfo("Gigadrowse", 26, Rarity.COMMON, mage.cards.g.Gigadrowse.class)); - cards.add(new SetCardInfo("Glint-Eye Nephilim", 115, Rarity.RARE, mage.cards.g.GlintEyeNephilim.class)); - cards.add(new SetCardInfo("Goblin Flectomancer", 116, Rarity.UNCOMMON, mage.cards.g.GoblinFlectomancer.class)); - cards.add(new SetCardInfo("Godless Shrine", 157, Rarity.RARE, mage.cards.g.GodlessShrine.class)); - cards.add(new SetCardInfo("Graven Dominator", 7, Rarity.RARE, mage.cards.g.GravenDominator.class)); - cards.add(new SetCardInfo("Gristleback", 87, Rarity.UNCOMMON, mage.cards.g.Gristleback.class)); - cards.add(new SetCardInfo("Gruul Guildmage", 144, Rarity.UNCOMMON, mage.cards.g.GruulGuildmage.class)); - cards.add(new SetCardInfo("Gruul Nodorog", 88, Rarity.COMMON, mage.cards.g.GruulNodorog.class)); - cards.add(new SetCardInfo("Gruul Scrapper", 89, Rarity.COMMON, mage.cards.g.GruulScrapper.class)); - cards.add(new SetCardInfo("Gruul Signet", 150, Rarity.COMMON, mage.cards.g.GruulSignet.class)); - cards.add(new SetCardInfo("Gruul Turf", 158, Rarity.COMMON, mage.cards.g.GruulTurf.class)); - cards.add(new SetCardInfo("Gruul War Plow", 151, Rarity.RARE, mage.cards.g.GruulWarPlow.class)); - cards.add(new SetCardInfo("Guardian's Magemark", 8, Rarity.COMMON, mage.cards.g.GuardiansMagemark.class)); - cards.add(new SetCardInfo("Harrier Griffin", 9, Rarity.UNCOMMON, mage.cards.h.HarrierGriffin.class)); - cards.add(new SetCardInfo("Hatching Plans", 27, Rarity.RARE, mage.cards.h.HatchingPlans.class)); - cards.add(new SetCardInfo("Hissing Miasma", 51, Rarity.UNCOMMON, mage.cards.h.HissingMiasma.class)); - cards.add(new SetCardInfo("Hypervolt Grasp", 67, Rarity.UNCOMMON, mage.cards.h.HypervoltGrasp.class)); - cards.add(new SetCardInfo("Infiltrator's Magemark", 28, Rarity.COMMON, mage.cards.i.InfiltratorsMagemark.class)); - cards.add(new SetCardInfo("Ink-Treader Nephilim", 117, Rarity.RARE, mage.cards.i.InkTreaderNephilim.class)); - cards.add(new SetCardInfo("Invoke the Firemind", 118, Rarity.RARE, mage.cards.i.InvokeTheFiremind.class)); - cards.add(new SetCardInfo("Izzet Boilerworks", 159, Rarity.COMMON, mage.cards.i.IzzetBoilerworks.class)); - cards.add(new SetCardInfo("Izzet Chronarch", 119, Rarity.COMMON, mage.cards.i.IzzetChronarch.class)); - cards.add(new SetCardInfo("Izzet Guildmage", 145, Rarity.UNCOMMON, mage.cards.i.IzzetGuildmage.class)); - cards.add(new SetCardInfo("Izzet Signet", 152, Rarity.COMMON, mage.cards.i.IzzetSignet.class)); - cards.add(new SetCardInfo("Leap of Flame", 121, Rarity.COMMON, mage.cards.l.LeapOfFlame.class)); - cards.add(new SetCardInfo("Leyline of Lifeforce", 90, Rarity.RARE, mage.cards.l.LeylineOfLifeforce.class)); - cards.add(new SetCardInfo("Leyline of Lightning", 68, Rarity.RARE, mage.cards.l.LeylineOfLightning.class)); - cards.add(new SetCardInfo("Leyline of Singularity", 29, Rarity.RARE, mage.cards.l.LeylineOfSingularity.class)); - cards.add(new SetCardInfo("Leyline of the Meek", 10, Rarity.RARE, mage.cards.l.LeylineOfTheMeek.class)); - cards.add(new SetCardInfo("Leyline of the Void", 52, Rarity.RARE, mage.cards.l.LeylineOfTheVoid.class)); - cards.add(new SetCardInfo("Lionheart Maverick", 11, Rarity.COMMON, mage.cards.l.LionheartMaverick.class)); - cards.add(new SetCardInfo("Martyred Rusalka", 12, Rarity.UNCOMMON, mage.cards.m.MartyredRusalka.class)); - cards.add(new SetCardInfo("Mizzium Transreliquat", 153, Rarity.RARE, mage.cards.m.MizziumTransreliquat.class)); - cards.add(new SetCardInfo("Mortify", 122, Rarity.UNCOMMON, mage.cards.m.Mortify.class)); - cards.add(new SetCardInfo("Mourning Thrull", 146, Rarity.COMMON, mage.cards.m.MourningThrull.class)); - cards.add(new SetCardInfo("Necromancer's Magemark", 53, Rarity.COMMON, mage.cards.n.NecromancersMagemark.class)); - cards.add(new SetCardInfo("Nivix, Aerie of the Firemind", 160, Rarity.UNCOMMON, mage.cards.n.NivixAerieOfTheFiremind.class)); - cards.add(new SetCardInfo("Niv-Mizzet, the Firemind", 123, Rarity.RARE, mage.cards.n.NivMizzetTheFiremind.class)); - cards.add(new SetCardInfo("Ogre Savant", 70, Rarity.COMMON, mage.cards.o.OgreSavant.class)); - cards.add(new SetCardInfo("Order of the Stars", 13, Rarity.UNCOMMON, mage.cards.o.OrderOfTheStars.class)); - cards.add(new SetCardInfo("Orzhova, the Church of Deals", 162, Rarity.UNCOMMON, mage.cards.o.OrzhovaTheChurchOfDeals.class)); - cards.add(new SetCardInfo("Orzhov Basilica", 161, Rarity.COMMON, mage.cards.o.OrzhovBasilica.class)); - cards.add(new SetCardInfo("Orzhov Euthanist", 54, Rarity.COMMON, mage.cards.o.OrzhovEuthanist.class)); - cards.add(new SetCardInfo("Orzhov Guildmage", 147, Rarity.UNCOMMON, mage.cards.o.OrzhovGuildmage.class)); - cards.add(new SetCardInfo("Orzhov Pontiff", 124, Rarity.RARE, mage.cards.o.OrzhovPontiff.class)); - cards.add(new SetCardInfo("Orzhov Signet", 155, Rarity.COMMON, mage.cards.o.OrzhovSignet.class)); - cards.add(new SetCardInfo("Ostiary Thrull", 55, Rarity.COMMON, mage.cards.o.OstiaryThrull.class)); - cards.add(new SetCardInfo("Petrahydrox", 148, Rarity.COMMON, mage.cards.p.Petrahydrox.class)); - cards.add(new SetCardInfo("Pillory of the Sleepless", 125, Rarity.COMMON, mage.cards.p.PilloryOfTheSleepless.class)); - cards.add(new SetCardInfo("Plagued Rusalka", 56, Rarity.UNCOMMON, mage.cards.p.PlaguedRusalka.class)); - cards.add(new SetCardInfo("Poisonbelly Ogre", 57, Rarity.COMMON, mage.cards.p.PoisonbellyOgre.class)); - cards.add(new SetCardInfo("Pyromatics", 72, Rarity.COMMON, mage.cards.p.Pyromatics.class)); - cards.add(new SetCardInfo("Quicken", 31, Rarity.RARE, mage.cards.q.Quicken.class)); - cards.add(new SetCardInfo("Rabble-Rouser", 73, Rarity.UNCOMMON, mage.cards.r.RabbleRouser.class)); - cards.add(new SetCardInfo("Repeal", 32, Rarity.COMMON, mage.cards.r.Repeal.class)); - cards.add(new SetCardInfo("Restless Bones", 58, Rarity.COMMON, mage.cards.r.RestlessBones.class)); - cards.add(new SetCardInfo("Revenant Patriarch", 59, Rarity.UNCOMMON, mage.cards.r.RevenantPatriarch.class)); - cards.add(new SetCardInfo("Rumbling Slum", 126, Rarity.RARE, mage.cards.r.RumblingSlum.class)); - cards.add(new SetCardInfo("Runeboggle", 33, Rarity.COMMON, mage.cards.r.Runeboggle.class)); - cards.add(new SetCardInfo("Savage Twister", 127, Rarity.UNCOMMON, mage.cards.s.SavageTwister.class)); - cards.add(new SetCardInfo("Scab-Clan Mauler", 128, Rarity.COMMON, mage.cards.s.ScabClanMauler.class)); - cards.add(new SetCardInfo("Schismotivate", 129, Rarity.UNCOMMON, mage.cards.s.Schismotivate.class)); - cards.add(new SetCardInfo("Scorched Rusalka", 74, Rarity.UNCOMMON, mage.cards.s.ScorchedRusalka.class)); - cards.add(new SetCardInfo("Shadow Lance", 14, Rarity.UNCOMMON, mage.cards.s.ShadowLance.class)); - cards.add(new SetCardInfo("Shattering Spree", 75, Rarity.UNCOMMON, mage.cards.s.ShatteringSpree.class)); - cards.add(new SetCardInfo("Shrieking Grotesque", 15, Rarity.COMMON, mage.cards.s.ShriekingGrotesque.class)); - cards.add(new SetCardInfo("Siege of Towers", 76, Rarity.RARE, mage.cards.s.SiegeOfTowers.class)); - cards.add(new SetCardInfo("Silhana Ledgewalker", 94, Rarity.COMMON, mage.cards.s.SilhanaLedgewalker.class)); - cards.add(new SetCardInfo("Silhana Starfletcher", 95, Rarity.COMMON, mage.cards.s.SilhanaStarfletcher.class)); - cards.add(new SetCardInfo("Skarrgan Firebird", 77, Rarity.RARE, mage.cards.s.SkarrganFirebird.class)); - cards.add(new SetCardInfo("Skarrgan Pit-Skulk", 96, Rarity.COMMON, mage.cards.s.SkarrganPitSkulk.class)); - cards.add(new SetCardInfo("Skarrgan Skybreaker", 130, Rarity.UNCOMMON, mage.cards.s.SkarrganSkybreaker.class)); - cards.add(new SetCardInfo("Skarrg, the Rage Pits", 163, Rarity.UNCOMMON, mage.cards.s.SkarrgTheRagePits.class)); - cards.add(new SetCardInfo("Skeletal Vampire", 62, Rarity.RARE, mage.cards.s.SkeletalVampire.class)); - cards.add(new SetCardInfo("Skyrider Trainee", 17, Rarity.COMMON, mage.cards.s.SkyriderTrainee.class)); - cards.add(new SetCardInfo("Smogsteed Rider", 63, Rarity.UNCOMMON, mage.cards.s.SmogsteedRider.class)); - cards.add(new SetCardInfo("Souls of the Faultless", 131, Rarity.UNCOMMON, mage.cards.s.SoulsOfTheFaultless.class)); - cards.add(new SetCardInfo("Spelltithe Enforcer", 18, Rarity.RARE, mage.cards.s.SpelltitheEnforcer.class)); - cards.add(new SetCardInfo("Starved Rusalka", 97, Rarity.UNCOMMON, mage.cards.s.StarvedRusalka.class)); - cards.add(new SetCardInfo("Steamcore Weird", 35, Rarity.COMMON, mage.cards.s.SteamcoreWeird.class)); - cards.add(new SetCardInfo("Steam Vents", 164, Rarity.RARE, mage.cards.s.SteamVents.class)); - cards.add(new SetCardInfo("Stitch in Time", 132, Rarity.RARE, mage.cards.s.StitchInTime.class)); - cards.add(new SetCardInfo("Stomping Ground", 165, Rarity.RARE, mage.cards.s.StompingGround.class)); - cards.add(new SetCardInfo("Storm Herd", 19, Rarity.RARE, mage.cards.s.StormHerd.class)); - cards.add(new SetCardInfo("Stratozeppelid", 36, Rarity.UNCOMMON, mage.cards.s.Stratozeppelid.class)); - cards.add(new SetCardInfo("Streetbreaker Wurm", 133, Rarity.COMMON, mage.cards.s.StreetbreakerWurm.class)); - cards.add(new SetCardInfo("Sword of the Paruns", 156, Rarity.RARE, mage.cards.s.SwordOfTheParuns.class)); - cards.add(new SetCardInfo("Teysa, Orzhov Scion", 134, Rarity.RARE, mage.cards.t.TeysaOrzhovScion.class)); - cards.add(new SetCardInfo("Thunderheads", 37, Rarity.UNCOMMON, mage.cards.t.Thunderheads.class)); - cards.add(new SetCardInfo("Tibor and Lumia", 135, Rarity.RARE, mage.cards.t.TiborAndLumia.class)); - cards.add(new SetCardInfo("Tin Street Hooligan", 78, Rarity.COMMON, mage.cards.t.TinStreetHooligan.class)); - cards.add(new SetCardInfo("To Arms!", 20, Rarity.UNCOMMON, mage.cards.t.ToArms.class)); - cards.add(new SetCardInfo("Torch Drake", 38, Rarity.COMMON, mage.cards.t.TorchDrake.class)); - cards.add(new SetCardInfo("Train of Thought", 39, Rarity.COMMON, mage.cards.t.TrainOfThought.class)); - cards.add(new SetCardInfo("Ulasht, the Hate Seed", 136, Rarity.RARE, mage.cards.u.UlashtTheHateSeed.class)); - cards.add(new SetCardInfo("Vacuumelt", 40, Rarity.UNCOMMON, mage.cards.v.Vacuumelt.class)); - cards.add(new SetCardInfo("Vedalken Plotter", 41, Rarity.UNCOMMON, mage.cards.v.VedalkenPlotter.class)); - cards.add(new SetCardInfo("Vertigo Spawn", 42, Rarity.UNCOMMON, mage.cards.v.VertigoSpawn.class)); - cards.add(new SetCardInfo("Wee Dragonauts", 137, Rarity.COMMON, mage.cards.w.WeeDragonauts.class)); - cards.add(new SetCardInfo("Wild Cantor", 149, Rarity.COMMON, mage.cards.w.WildCantor.class)); - cards.add(new SetCardInfo("Wildsize", 98, Rarity.COMMON, mage.cards.w.Wildsize.class)); - cards.add(new SetCardInfo("Witch-Maw Nephilim", 138, Rarity.RARE, mage.cards.w.WitchMawNephilim.class)); - cards.add(new SetCardInfo("Withstand", 21, Rarity.COMMON, mage.cards.w.Withstand.class)); - cards.add(new SetCardInfo("Wreak Havoc", 139, Rarity.UNCOMMON, mage.cards.w.WreakHavoc.class)); - cards.add(new SetCardInfo("Wurmweaver Coil", 99, Rarity.RARE, mage.cards.w.WurmweaverCoil.class)); - cards.add(new SetCardInfo("Yore-Tiller Nephilim", 140, Rarity.RARE, mage.cards.y.YoreTillerNephilim.class)); - } -} +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ + +package mage.sets; + +import mage.cards.ExpansionSet; +import mage.constants.SetType; + +import mage.constants.Rarity; + +/** + * Created by IntelliJ IDEA. User: Loki Date: 20.12.10 Time: 21:01 + */ +public class Guildpact extends ExpansionSet { + private static final Guildpact fINSTANCE = new Guildpact(); + + public static Guildpact getInstance() { + return fINSTANCE; + } + + private Guildpact() { + super("Guildpact", "GPT", ExpansionSet.buildDate(2006, 1, 3), SetType.EXPANSION); + this.blockName = "Ravnica"; + this.parentSet = RavnicaCityOfGuilds.getInstance(); + this.hasBasicLands = false; + this.hasBoosters = true; + this.numBoosterLands = 0; + this.numBoosterCommon = 11; + this.numBoosterUncommon = 3; + this.numBoosterRare = 1; + this.ratioBoosterMythic = 0; + cards.add(new SetCardInfo("Absolver Thrull", 1, Rarity.COMMON, mage.cards.a.AbsolverThrull.class)); + cards.add(new SetCardInfo("Abyssal Nocturnus", 43, Rarity.RARE, mage.cards.a.AbyssalNocturnus.class)); + cards.add(new SetCardInfo("Agent of Masks", 100, Rarity.UNCOMMON, mage.cards.a.AgentOfMasks.class)); + cards.add(new SetCardInfo("Angel of Despair", 101, Rarity.RARE, mage.cards.a.AngelOfDespair.class)); + cards.add(new SetCardInfo("Battering Wurm", 79, Rarity.UNCOMMON, mage.cards.b.BatteringWurm.class)); + cards.add(new SetCardInfo("Beastmaster's Magemark", 80, Rarity.COMMON, mage.cards.b.BeastmastersMagemark.class)); + cards.add(new SetCardInfo("Belfry Spirit", 2, Rarity.UNCOMMON, mage.cards.b.BelfrySpirit.class)); + cards.add(new SetCardInfo("Benediction of Moons", 3, Rarity.COMMON, mage.cards.b.BenedictionOfMoons.class)); + cards.add(new SetCardInfo("Blind Hunter", 102, Rarity.COMMON, mage.cards.b.BlindHunter.class)); + cards.add(new SetCardInfo("Bloodscale Prowler", 64, Rarity.COMMON, mage.cards.b.BloodscaleProwler.class)); + cards.add(new SetCardInfo("Borborygmos", 103, Rarity.RARE, mage.cards.b.Borborygmos.class)); + cards.add(new SetCardInfo("Burning-Tree Bloodscale", 104, Rarity.COMMON, mage.cards.b.BurningTreeBloodscale.class)); + cards.add(new SetCardInfo("Burning-Tree Shaman", 105, Rarity.RARE, mage.cards.b.BurningTreeShaman.class)); + cards.add(new SetCardInfo("Castigate", 106, Rarity.COMMON, mage.cards.c.Castigate.class)); + cards.add(new SetCardInfo("Caustic Rain", 44, Rarity.UNCOMMON, mage.cards.c.CausticRain.class)); + cards.add(new SetCardInfo("Cerebral Vortex", 107, Rarity.RARE, mage.cards.c.CerebralVortex.class)); + cards.add(new SetCardInfo("Cremate", 45, Rarity.COMMON, mage.cards.c.Cremate.class)); + cards.add(new SetCardInfo("Cry of Contrition", 46, Rarity.COMMON, mage.cards.c.CryOfContrition.class)); + cards.add(new SetCardInfo("Crystal Seer", 23, Rarity.UNCOMMON, mage.cards.c.CrystalSeer.class)); + cards.add(new SetCardInfo("Culling Sun", 109, Rarity.RARE, mage.cards.c.CullingSun.class)); + cards.add(new SetCardInfo("Daggerclaw Imp", 48, Rarity.UNCOMMON, mage.cards.d.DaggerclawImp.class)); + cards.add(new SetCardInfo("Debtors' Knell", 141, Rarity.RARE, mage.cards.d.DebtorsKnell.class)); + cards.add(new SetCardInfo("Djinn Illuminatus", 142, Rarity.RARE, mage.cards.d.DjinnIlluminatus.class)); + cards.add(new SetCardInfo("Douse in Gloom", 49, Rarity.COMMON, mage.cards.d.DouseInGloom.class)); + cards.add(new SetCardInfo("Drowned Rusalka", 24, Rarity.UNCOMMON, mage.cards.d.DrownedRusalka.class)); + cards.add(new SetCardInfo("Dryad Sophisticate", 83, Rarity.UNCOMMON, mage.cards.d.DryadSophisticate.class)); + cards.add(new SetCardInfo("Dune-Brood Nephilim", 110, Rarity.RARE, mage.cards.d.DuneBroodNephilim.class)); + cards.add(new SetCardInfo("Earth Surge", 84, Rarity.RARE, mage.cards.e.EarthSurge.class)); + cards.add(new SetCardInfo("Electrolyze", 111, Rarity.UNCOMMON, mage.cards.e.Electrolyze.class)); + cards.add(new SetCardInfo("Exhumer Thrull", 50, Rarity.UNCOMMON, mage.cards.e.ExhumerThrull.class)); + cards.add(new SetCardInfo("Fencer's Magemark", 65, Rarity.COMMON, mage.cards.f.FencersMagemark.class)); + cards.add(new SetCardInfo("Feral Animist", 112, Rarity.UNCOMMON, mage.cards.f.FeralAnimist.class)); + cards.add(new SetCardInfo("Frazzle", 25, Rarity.UNCOMMON, mage.cards.f.Frazzle.class)); + cards.add(new SetCardInfo("Gelectrode", 113, Rarity.UNCOMMON, mage.cards.g.Gelectrode.class)); + cards.add(new SetCardInfo("Ghor-Clan Bloodscale", 66, Rarity.UNCOMMON, mage.cards.g.GhorClanBloodscale.class)); + cards.add(new SetCardInfo("Ghor-Clan Savage", 86, Rarity.COMMON, mage.cards.g.GhorClanSavage.class)); + cards.add(new SetCardInfo("Ghost Council of Orzhova", 114, Rarity.RARE, mage.cards.g.GhostCouncilOfOrzhova.class)); + cards.add(new SetCardInfo("Ghost Warden", 5, Rarity.COMMON, mage.cards.g.GhostWarden.class)); + cards.add(new SetCardInfo("Ghostway", 6, Rarity.RARE, mage.cards.g.Ghostway.class)); + cards.add(new SetCardInfo("Giant Solifuge", 143, Rarity.RARE, mage.cards.g.GiantSolifuge.class)); + cards.add(new SetCardInfo("Gigadrowse", 26, Rarity.COMMON, mage.cards.g.Gigadrowse.class)); + cards.add(new SetCardInfo("Glint-Eye Nephilim", 115, Rarity.RARE, mage.cards.g.GlintEyeNephilim.class)); + cards.add(new SetCardInfo("Goblin Flectomancer", 116, Rarity.UNCOMMON, mage.cards.g.GoblinFlectomancer.class)); + cards.add(new SetCardInfo("Godless Shrine", 157, Rarity.RARE, mage.cards.g.GodlessShrine.class)); + cards.add(new SetCardInfo("Graven Dominator", 7, Rarity.RARE, mage.cards.g.GravenDominator.class)); + cards.add(new SetCardInfo("Gristleback", 87, Rarity.UNCOMMON, mage.cards.g.Gristleback.class)); + cards.add(new SetCardInfo("Gruul Guildmage", 144, Rarity.UNCOMMON, mage.cards.g.GruulGuildmage.class)); + cards.add(new SetCardInfo("Gruul Nodorog", 88, Rarity.COMMON, mage.cards.g.GruulNodorog.class)); + cards.add(new SetCardInfo("Gruul Scrapper", 89, Rarity.COMMON, mage.cards.g.GruulScrapper.class)); + cards.add(new SetCardInfo("Gruul Signet", 150, Rarity.COMMON, mage.cards.g.GruulSignet.class)); + cards.add(new SetCardInfo("Gruul Turf", 158, Rarity.COMMON, mage.cards.g.GruulTurf.class)); + cards.add(new SetCardInfo("Gruul War Plow", 151, Rarity.RARE, mage.cards.g.GruulWarPlow.class)); + cards.add(new SetCardInfo("Guardian's Magemark", 8, Rarity.COMMON, mage.cards.g.GuardiansMagemark.class)); + cards.add(new SetCardInfo("Harrier Griffin", 9, Rarity.UNCOMMON, mage.cards.h.HarrierGriffin.class)); + cards.add(new SetCardInfo("Hatching Plans", 27, Rarity.RARE, mage.cards.h.HatchingPlans.class)); + cards.add(new SetCardInfo("Hissing Miasma", 51, Rarity.UNCOMMON, mage.cards.h.HissingMiasma.class)); + cards.add(new SetCardInfo("Hypervolt Grasp", 67, Rarity.UNCOMMON, mage.cards.h.HypervoltGrasp.class)); + cards.add(new SetCardInfo("Infiltrator's Magemark", 28, Rarity.COMMON, mage.cards.i.InfiltratorsMagemark.class)); + cards.add(new SetCardInfo("Ink-Treader Nephilim", 117, Rarity.RARE, mage.cards.i.InkTreaderNephilim.class)); + cards.add(new SetCardInfo("Invoke the Firemind", 118, Rarity.RARE, mage.cards.i.InvokeTheFiremind.class)); + cards.add(new SetCardInfo("Izzet Boilerworks", 159, Rarity.COMMON, mage.cards.i.IzzetBoilerworks.class)); + cards.add(new SetCardInfo("Izzet Chronarch", 119, Rarity.COMMON, mage.cards.i.IzzetChronarch.class)); + cards.add(new SetCardInfo("Izzet Guildmage", 145, Rarity.UNCOMMON, mage.cards.i.IzzetGuildmage.class)); + cards.add(new SetCardInfo("Izzet Signet", 152, Rarity.COMMON, mage.cards.i.IzzetSignet.class)); + cards.add(new SetCardInfo("Leap of Flame", 121, Rarity.COMMON, mage.cards.l.LeapOfFlame.class)); + cards.add(new SetCardInfo("Leyline of Lifeforce", 90, Rarity.RARE, mage.cards.l.LeylineOfLifeforce.class)); + cards.add(new SetCardInfo("Leyline of Lightning", 68, Rarity.RARE, mage.cards.l.LeylineOfLightning.class)); + cards.add(new SetCardInfo("Leyline of Singularity", 29, Rarity.RARE, mage.cards.l.LeylineOfSingularity.class)); + cards.add(new SetCardInfo("Leyline of the Meek", 10, Rarity.RARE, mage.cards.l.LeylineOfTheMeek.class)); + cards.add(new SetCardInfo("Leyline of the Void", 52, Rarity.RARE, mage.cards.l.LeylineOfTheVoid.class)); + cards.add(new SetCardInfo("Lionheart Maverick", 11, Rarity.COMMON, mage.cards.l.LionheartMaverick.class)); + cards.add(new SetCardInfo("Martyred Rusalka", 12, Rarity.UNCOMMON, mage.cards.m.MartyredRusalka.class)); + cards.add(new SetCardInfo("Mizzium Transreliquat", 153, Rarity.RARE, mage.cards.m.MizziumTransreliquat.class)); + cards.add(new SetCardInfo("Mortify", 122, Rarity.UNCOMMON, mage.cards.m.Mortify.class)); + cards.add(new SetCardInfo("Mourning Thrull", 146, Rarity.COMMON, mage.cards.m.MourningThrull.class)); + cards.add(new SetCardInfo("Necromancer's Magemark", 53, Rarity.COMMON, mage.cards.n.NecromancersMagemark.class)); + cards.add(new SetCardInfo("Nivix, Aerie of the Firemind", 160, Rarity.UNCOMMON, mage.cards.n.NivixAerieOfTheFiremind.class)); + cards.add(new SetCardInfo("Niv-Mizzet, the Firemind", 123, Rarity.RARE, mage.cards.n.NivMizzetTheFiremind.class)); + cards.add(new SetCardInfo("Ogre Savant", 70, Rarity.COMMON, mage.cards.o.OgreSavant.class)); + cards.add(new SetCardInfo("Order of the Stars", 13, Rarity.UNCOMMON, mage.cards.o.OrderOfTheStars.class)); + cards.add(new SetCardInfo("Orzhova, the Church of Deals", 162, Rarity.UNCOMMON, mage.cards.o.OrzhovaTheChurchOfDeals.class)); + cards.add(new SetCardInfo("Orzhov Basilica", 161, Rarity.COMMON, mage.cards.o.OrzhovBasilica.class)); + cards.add(new SetCardInfo("Orzhov Euthanist", 54, Rarity.COMMON, mage.cards.o.OrzhovEuthanist.class)); + cards.add(new SetCardInfo("Orzhov Guildmage", 147, Rarity.UNCOMMON, mage.cards.o.OrzhovGuildmage.class)); + cards.add(new SetCardInfo("Orzhov Pontiff", 124, Rarity.RARE, mage.cards.o.OrzhovPontiff.class)); + cards.add(new SetCardInfo("Orzhov Signet", 155, Rarity.COMMON, mage.cards.o.OrzhovSignet.class)); + cards.add(new SetCardInfo("Ostiary Thrull", 55, Rarity.COMMON, mage.cards.o.OstiaryThrull.class)); + cards.add(new SetCardInfo("Petrahydrox", 148, Rarity.COMMON, mage.cards.p.Petrahydrox.class)); + cards.add(new SetCardInfo("Pillory of the Sleepless", 125, Rarity.COMMON, mage.cards.p.PilloryOfTheSleepless.class)); + cards.add(new SetCardInfo("Plagued Rusalka", 56, Rarity.UNCOMMON, mage.cards.p.PlaguedRusalka.class)); + cards.add(new SetCardInfo("Poisonbelly Ogre", 57, Rarity.COMMON, mage.cards.p.PoisonbellyOgre.class)); + cards.add(new SetCardInfo("Pyromatics", 72, Rarity.COMMON, mage.cards.p.Pyromatics.class)); + cards.add(new SetCardInfo("Quicken", 31, Rarity.RARE, mage.cards.q.Quicken.class)); + cards.add(new SetCardInfo("Rabble-Rouser", 73, Rarity.UNCOMMON, mage.cards.r.RabbleRouser.class)); + cards.add(new SetCardInfo("Repeal", 32, Rarity.COMMON, mage.cards.r.Repeal.class)); + cards.add(new SetCardInfo("Restless Bones", 58, Rarity.COMMON, mage.cards.r.RestlessBones.class)); + cards.add(new SetCardInfo("Revenant Patriarch", 59, Rarity.UNCOMMON, mage.cards.r.RevenantPatriarch.class)); + cards.add(new SetCardInfo("Rumbling Slum", 126, Rarity.RARE, mage.cards.r.RumblingSlum.class)); + cards.add(new SetCardInfo("Runeboggle", 33, Rarity.COMMON, mage.cards.r.Runeboggle.class)); + cards.add(new SetCardInfo("Savage Twister", 127, Rarity.UNCOMMON, mage.cards.s.SavageTwister.class)); + cards.add(new SetCardInfo("Scab-Clan Mauler", 128, Rarity.COMMON, mage.cards.s.ScabClanMauler.class)); + cards.add(new SetCardInfo("Schismotivate", 129, Rarity.UNCOMMON, mage.cards.s.Schismotivate.class)); + cards.add(new SetCardInfo("Scorched Rusalka", 74, Rarity.UNCOMMON, mage.cards.s.ScorchedRusalka.class)); + cards.add(new SetCardInfo("Shadow Lance", 14, Rarity.UNCOMMON, mage.cards.s.ShadowLance.class)); + cards.add(new SetCardInfo("Shattering Spree", 75, Rarity.UNCOMMON, mage.cards.s.ShatteringSpree.class)); + cards.add(new SetCardInfo("Shrieking Grotesque", 15, Rarity.COMMON, mage.cards.s.ShriekingGrotesque.class)); + cards.add(new SetCardInfo("Siege of Towers", 76, Rarity.RARE, mage.cards.s.SiegeOfTowers.class)); + cards.add(new SetCardInfo("Silhana Ledgewalker", 94, Rarity.COMMON, mage.cards.s.SilhanaLedgewalker.class)); + cards.add(new SetCardInfo("Silhana Starfletcher", 95, Rarity.COMMON, mage.cards.s.SilhanaStarfletcher.class)); + cards.add(new SetCardInfo("Skarrgan Firebird", 77, Rarity.RARE, mage.cards.s.SkarrganFirebird.class)); + cards.add(new SetCardInfo("Skarrgan Pit-Skulk", 96, Rarity.COMMON, mage.cards.s.SkarrganPitSkulk.class)); + cards.add(new SetCardInfo("Skarrgan Skybreaker", 130, Rarity.UNCOMMON, mage.cards.s.SkarrganSkybreaker.class)); + cards.add(new SetCardInfo("Skarrg, the Rage Pits", 163, Rarity.UNCOMMON, mage.cards.s.SkarrgTheRagePits.class)); + cards.add(new SetCardInfo("Skeletal Vampire", 62, Rarity.RARE, mage.cards.s.SkeletalVampire.class)); + cards.add(new SetCardInfo("Skyrider Trainee", 17, Rarity.COMMON, mage.cards.s.SkyriderTrainee.class)); + cards.add(new SetCardInfo("Smogsteed Rider", 63, Rarity.UNCOMMON, mage.cards.s.SmogsteedRider.class)); + cards.add(new SetCardInfo("Souls of the Faultless", 131, Rarity.UNCOMMON, mage.cards.s.SoulsOfTheFaultless.class)); + cards.add(new SetCardInfo("Spelltithe Enforcer", 18, Rarity.RARE, mage.cards.s.SpelltitheEnforcer.class)); + cards.add(new SetCardInfo("Starved Rusalka", 97, Rarity.UNCOMMON, mage.cards.s.StarvedRusalka.class)); + cards.add(new SetCardInfo("Steamcore Weird", 35, Rarity.COMMON, mage.cards.s.SteamcoreWeird.class)); + cards.add(new SetCardInfo("Steam Vents", 164, Rarity.RARE, mage.cards.s.SteamVents.class)); + cards.add(new SetCardInfo("Stitch in Time", 132, Rarity.RARE, mage.cards.s.StitchInTime.class)); + cards.add(new SetCardInfo("Stomping Ground", 165, Rarity.RARE, mage.cards.s.StompingGround.class)); + cards.add(new SetCardInfo("Storm Herd", 19, Rarity.RARE, mage.cards.s.StormHerd.class)); + cards.add(new SetCardInfo("Stratozeppelid", 36, Rarity.UNCOMMON, mage.cards.s.Stratozeppelid.class)); + cards.add(new SetCardInfo("Streetbreaker Wurm", 133, Rarity.COMMON, mage.cards.s.StreetbreakerWurm.class)); + cards.add(new SetCardInfo("Sword of the Paruns", 156, Rarity.RARE, mage.cards.s.SwordOfTheParuns.class)); + cards.add(new SetCardInfo("Teysa, Orzhov Scion", 134, Rarity.RARE, mage.cards.t.TeysaOrzhovScion.class)); + cards.add(new SetCardInfo("Thunderheads", 37, Rarity.UNCOMMON, mage.cards.t.Thunderheads.class)); + cards.add(new SetCardInfo("Tibor and Lumia", 135, Rarity.RARE, mage.cards.t.TiborAndLumia.class)); + cards.add(new SetCardInfo("Tin Street Hooligan", 78, Rarity.COMMON, mage.cards.t.TinStreetHooligan.class)); + cards.add(new SetCardInfo("To Arms!", 20, Rarity.UNCOMMON, mage.cards.t.ToArms.class)); + cards.add(new SetCardInfo("Torch Drake", 38, Rarity.COMMON, mage.cards.t.TorchDrake.class)); + cards.add(new SetCardInfo("Train of Thought", 39, Rarity.COMMON, mage.cards.t.TrainOfThought.class)); + cards.add(new SetCardInfo("Ulasht, the Hate Seed", 136, Rarity.RARE, mage.cards.u.UlashtTheHateSeed.class)); + cards.add(new SetCardInfo("Vacuumelt", 40, Rarity.UNCOMMON, mage.cards.v.Vacuumelt.class)); + cards.add(new SetCardInfo("Vedalken Plotter", 41, Rarity.UNCOMMON, mage.cards.v.VedalkenPlotter.class)); + cards.add(new SetCardInfo("Vertigo Spawn", 42, Rarity.UNCOMMON, mage.cards.v.VertigoSpawn.class)); + cards.add(new SetCardInfo("Wee Dragonauts", 137, Rarity.COMMON, mage.cards.w.WeeDragonauts.class)); + cards.add(new SetCardInfo("Wild Cantor", 149, Rarity.COMMON, mage.cards.w.WildCantor.class)); + cards.add(new SetCardInfo("Wildsize", 98, Rarity.COMMON, mage.cards.w.Wildsize.class)); + cards.add(new SetCardInfo("Witch-Maw Nephilim", 138, Rarity.RARE, mage.cards.w.WitchMawNephilim.class)); + cards.add(new SetCardInfo("Withstand", 21, Rarity.COMMON, mage.cards.w.Withstand.class)); + cards.add(new SetCardInfo("Wreak Havoc", 139, Rarity.UNCOMMON, mage.cards.w.WreakHavoc.class)); + cards.add(new SetCardInfo("Wurmweaver Coil", 99, Rarity.RARE, mage.cards.w.WurmweaverCoil.class)); + cards.add(new SetCardInfo("Yore-Tiller Nephilim", 140, Rarity.RARE, mage.cards.y.YoreTillerNephilim.class)); + } +} diff --git a/Mage.Sets/src/mage/sets/Weatherlight.java b/Mage.Sets/src/mage/sets/Weatherlight.java index d87b3a3450a..dc08d0cf5e1 100644 --- a/Mage.Sets/src/mage/sets/Weatherlight.java +++ b/Mage.Sets/src/mage/sets/Weatherlight.java @@ -59,6 +59,7 @@ public class Weatherlight extends ExpansionSet { cards.add(new SetCardInfo("Abduction", 30, Rarity.UNCOMMON, mage.cards.a.Abduction.class)); cards.add(new SetCardInfo("Abeyance", 117, Rarity.RARE, mage.cards.a.Abeyance.class)); cards.add(new SetCardInfo("Abjure", 31, Rarity.COMMON, mage.cards.a.Abjure.class)); + cards.add(new SetCardInfo("Aboroth", 59, Rarity.RARE, mage.cards.a.Aboroth.class)); cards.add(new SetCardInfo("Abyssal Gatekeeper", 1, Rarity.COMMON, mage.cards.a.AbyssalGatekeeper.class)); cards.add(new SetCardInfo("Aether Flash", 88, Rarity.UNCOMMON, mage.cards.a.AetherFlash.class)); cards.add(new SetCardInfo("Agonizing Memories", 2, Rarity.UNCOMMON, mage.cards.a.AgonizingMemories.class)); @@ -71,6 +72,7 @@ public class Weatherlight extends ExpansionSet { cards.add(new SetCardInfo("Argivian Find", 122, Rarity.UNCOMMON, mage.cards.a.ArgivianFind.class)); cards.add(new SetCardInfo("Argivian Restoration", 34, Rarity.UNCOMMON, mage.cards.a.ArgivianRestoration.class)); cards.add(new SetCardInfo("Aura of Silence", 123, Rarity.UNCOMMON, mage.cards.a.AuraOfSilence.class)); + cards.add(new SetCardInfo("Avizoa", 35, Rarity.RARE, mage.cards.a.Avizoa.class)); cards.add(new SetCardInfo("Barrow Ghoul", 3, Rarity.COMMON, mage.cards.b.BarrowGhoul.class)); cards.add(new SetCardInfo("Benalish Knight", 125, Rarity.COMMON, mage.cards.b.BenalishKnight.class)); cards.add(new SetCardInfo("Benalish Missionary", 126, Rarity.COMMON, mage.cards.b.BenalishMissionary.class)); @@ -122,6 +124,7 @@ public class Weatherlight extends ExpansionSet { cards.add(new SetCardInfo("Heavy Ballista", 133, Rarity.COMMON, mage.cards.h.HeavyBallista.class)); cards.add(new SetCardInfo("Hidden Horror", 14, Rarity.UNCOMMON, mage.cards.h.HiddenHorror.class)); cards.add(new SetCardInfo("Hurloon Shaman", 108, Rarity.UNCOMMON, mage.cards.h.HurloonShaman.class)); + cards.add(new SetCardInfo("Infernal Tribute", 15, Rarity.RARE, mage.cards.i.InfernalTribute.class)); cards.add(new SetCardInfo("Jabari's Banner", 150, Rarity.UNCOMMON, mage.cards.j.JabarisBanner.class)); cards.add(new SetCardInfo("Lava Hounds", 109, Rarity.UNCOMMON, mage.cards.l.LavaHounds.class)); cards.add(new SetCardInfo("Llanowar Behemoth", 74, Rarity.UNCOMMON, mage.cards.l.LlanowarBehemoth.class)); diff --git a/Mage/src/main/java/mage/abilities/effects/common/SkipNextPlayerUntapStepEffect.java b/Mage/src/main/java/mage/abilities/effects/common/SkipNextPlayerUntapStepEffect.java index 6f04248e435..0e1269c1af2 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/SkipNextPlayerUntapStepEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/SkipNextPlayerUntapStepEffect.java @@ -59,13 +59,18 @@ public class SkipNextPlayerUntapStepEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { + Player player = null; if (targetPointer != null) { - Player player = game.getPlayer(targetPointer.getFirst(game, source)); - if (player != null) { - game.getState().getTurnMods().add(new TurnMod(player.getId(), PhaseStep.UNTAP)); - return true; + if (targetPointer.getTargets(game, source).size() > 0) { + player = game.getPlayer(targetPointer.getFirst(game, source)); + } else { + player = game.getPlayer(source.getControllerId()); } } + if (player != null) { + game.getState().getTurnMods().add(new TurnMod(player.getId(), PhaseStep.UNTAP)); + return true; + } return false; } @@ -78,11 +83,10 @@ public class SkipNextPlayerUntapStepEffect extends OneShotEffect { public String getText(Mode mode) { StringBuilder sb = new StringBuilder(); if (staticText.length() > 0) { - sb.append(staticText); + sb.append(staticText).append(" player skips his or her next untap step"); } else { - sb.append("target"); + sb.append("You skip your next untap step"); } - sb.append(" player skips his or her next untap step"); return sb.toString(); } }