diff --git a/Mage.Sets/src/mage/sets/commander2015/CoilingOracle.java b/Mage.Sets/src/mage/sets/commander2015/CoilingOracle.java new file mode 100644 index 0000000000..43d7eaa164 --- /dev/null +++ b/Mage.Sets/src/mage/sets/commander2015/CoilingOracle.java @@ -0,0 +1,52 @@ +/* + * 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.commander2015; + +import java.util.UUID; + +/** + * + * @author fireshoes + */ +public class CoilingOracle extends mage.sets.dissension.CoilingOracle { + + public CoilingOracle(UUID ownerId) { + super(ownerId); + this.cardNumber = 213; + this.expansionSetCode = "C15"; + } + + public CoilingOracle(final CoilingOracle card) { + super(card); + } + + @Override + public CoilingOracle copy() { + return new CoilingOracle(this); + } +} diff --git a/Mage.Sets/src/mage/sets/commander2015/Counterflux.java b/Mage.Sets/src/mage/sets/commander2015/Counterflux.java new file mode 100644 index 0000000000..97bb07599d --- /dev/null +++ b/Mage.Sets/src/mage/sets/commander2015/Counterflux.java @@ -0,0 +1,52 @@ +/* + * 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.commander2015; + +import java.util.UUID; + +/** + * + * @author fireshoes + */ +public class Counterflux extends mage.sets.returntoravnica.Counterflux { + + public Counterflux(UUID ownerId) { + super(ownerId); + this.cardNumber = 214; + this.expansionSetCode = "C15"; + } + + public Counterflux(final Counterflux card) { + super(card); + } + + @Override + public Counterflux copy() { + return new Counterflux(this); + } +} diff --git a/Mage.Sets/src/mage/sets/commander2015/DaxosTheReturned.java b/Mage.Sets/src/mage/sets/commander2015/DaxosTheReturned.java new file mode 100644 index 0000000000..f090928210 --- /dev/null +++ b/Mage.Sets/src/mage/sets/commander2015/DaxosTheReturned.java @@ -0,0 +1,147 @@ +/* + * 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.commander2015; + +import java.util.UUID; +import mage.MageInt; +import mage.MageObjectReference; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.common.SpellCastControllerTriggeredAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.ContinuousEffectImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.counter.AddCountersControllerEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Layer; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.SubLayer; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.filter.FilterSpell; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.game.permanent.token.Token; +import mage.players.Player; + +/** + * + * @author fireshoes + */ +public class DaxosTheReturned extends CardImpl { + + private static final FilterSpell filter = new FilterSpell("an enchantment spell"); + static { + filter.add(new CardTypePredicate(CardType.ENCHANTMENT)); + } + + public DaxosTheReturned(UUID ownerId) { + super(ownerId, 43, "Daxos the Returned", Rarity.MYTHIC, new CardType[]{CardType.CREATURE}, "{1}{W}{B}"); + this.expansionSetCode = "C15"; + this.supertype.add("Legendary"); + this.subtype.add("Zombie"); + this.subtype.add("Soldier"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Whenever you cast an enchantment spell, you get an experience counter. + Effect effect = new AddCountersControllerEffect(CounterType.EXPERIENCE.createInstance(1), false); + effect.setText("you get an experience counter"); + Ability ability = new SpellCastControllerTriggeredAbility(effect, filter, false); + this.addAbility(ability); + + // {1}{W}{B}: Put a white and black Spirit enchantment creature token onto the battlefield. It has + // "This creature's power and toughness are each equal to the number of experience counters you have." + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new DaxosSpiritToken(), 1), new ManaCostsImpl("{1}{W}{B}"))); + } + + public DaxosTheReturned(final DaxosTheReturned card) { + super(card); + } + + @Override + public DaxosTheReturned copy() { + return new DaxosTheReturned(this); + } +} + + +class DaxosSpiritToken extends Token { + DaxosSpiritToken() { + super("Spirit", "white and black Spirit enchantment creature token with \"This creature's power and toughness are each equal to the number of experience counters you have.\""); + this.setOriginalExpansionSetCode("C15"); + cardType.add(CardType.CREATURE); + cardType.add(CardType.ENCHANTMENT); + color.setWhite(true); + color.setBlack(true); + subtype.add("Spirit"); + power = new MageInt(0); + toughness = new MageInt(0); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DaxosSpiritSetPTEffect())); + } +} + +class DaxosSpiritSetPTEffect extends ContinuousEffectImpl { + + public DaxosSpiritSetPTEffect() { + super(Duration.WhileOnBattlefield, Layer.PTChangingEffects_7, SubLayer.SetPT_7b, Outcome.BoostCreature); + staticText = "This creature's power and toughness are each equal to the number of experience counters you have"; + } + + public DaxosSpiritSetPTEffect(final DaxosSpiritSetPTEffect effect) { + super(effect); + } + + @Override + public DaxosSpiritSetPTEffect copy() { + return new DaxosSpiritSetPTEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + Permanent permanent = game.getPermanent(source.getSourceId()); + if (permanent != null && new MageObjectReference(source.getSourceObject(game), game).refersTo(permanent, game)) { + int amount = controller.getCounters().getCount(CounterType.EXPERIENCE); + permanent.getPower().setValue(amount); + permanent.getToughness().setValue(amount); + return true; + } else { + discard(); + } + } + return false; + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/commander2015/DeathGrasp.java b/Mage.Sets/src/mage/sets/commander2015/DeathGrasp.java new file mode 100644 index 0000000000..55f24816b8 --- /dev/null +++ b/Mage.Sets/src/mage/sets/commander2015/DeathGrasp.java @@ -0,0 +1,52 @@ +/* + * 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.commander2015; + +import java.util.UUID; + +/** + * + * @author fireshoes + */ +public class DeathGrasp extends mage.sets.apocalypse.DeathGrasp { + + public DeathGrasp(UUID ownerId) { + super(ownerId); + this.cardNumber = 215; + this.expansionSetCode = "C15"; + } + + public DeathGrasp(final DeathGrasp card) { + super(card); + } + + @Override + public DeathGrasp copy() { + return new DeathGrasp(this); + } +} diff --git a/Mage.Sets/src/mage/sets/commander2015/Gigantoplasm.java b/Mage.Sets/src/mage/sets/commander2015/Gigantoplasm.java new file mode 100644 index 0000000000..b0cbf22133 --- /dev/null +++ b/Mage.Sets/src/mage/sets/commander2015/Gigantoplasm.java @@ -0,0 +1,103 @@ +/* + * 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.commander2015; + +import java.util.UUID; +import mage.MageInt; +import mage.MageObject; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.ManacostVariableValue; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CopyPermanentEffect; +import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.util.functions.ApplyToPermanent; + +/** + * + * @author fireshoes + */ +public class Gigantoplasm extends CardImpl { + + public Gigantoplasm(UUID ownerId) { + super(ownerId, 11, "Gigantoplasm", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{3}{U}"); + this.expansionSetCode = "C15"; + this.subtype.add("Shapeshifter"); + this.power = new MageInt(0); + this.toughness = new MageInt(0); + + // You may have Gigantoplasm enter the battlefield as a copy of any creature on the battlefield except it gains "{X}: This creature has base power and toughness X/X." + Effect effect = new CopyPermanentEffect(new FilterCreaturePermanent(), new GigantoplasmApplyToPermanent()); + effect.setText("a copy of any creature on the battlefield except it gains \"{X}: This creature has base power and toughness X/X.\""); + this.addAbility(new EntersBattlefieldAbility(effect, true)); + } + + public Gigantoplasm(final Gigantoplasm card) { + super(card); + } + + @Override + public Gigantoplasm copy() { + return new Gigantoplasm(this); + } +} + +class GigantoplasmApplyToPermanent extends ApplyToPermanent { + + @Override + public Boolean apply(Game game, Permanent permanent) { + DynamicValue variableMana = new ManacostVariableValue(); + Effect effect = new SetPowerToughnessSourceEffect(variableMana, Duration.WhileOnBattlefield); + effect.setText("This creature has base power and toughness X/X"); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,effect, new ManaCostsImpl("{X}")); + permanent.getAbilities().add(ability); + return true; + } + + @Override + public Boolean apply(Game game, MageObject mageObject) { + DynamicValue variableMana = new ManacostVariableValue(); + Effect effect = new SetPowerToughnessSourceEffect(variableMana, Duration.WhileOnBattlefield); + effect.setText("This creature has base power and toughness X/X"); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,effect, new ManaCostsImpl("{X}")); + mageObject.getAbilities().add(ability); + return true; + } + +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/commander2015/GiselaBladeOfGoldnight.java b/Mage.Sets/src/mage/sets/commander2015/GiselaBladeOfGoldnight.java new file mode 100644 index 0000000000..4f76ad72e2 --- /dev/null +++ b/Mage.Sets/src/mage/sets/commander2015/GiselaBladeOfGoldnight.java @@ -0,0 +1,52 @@ +/* + * 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.commander2015; + +import java.util.UUID; + +/** + * + * @author fireshoes + */ +public class GiselaBladeOfGoldnight extends mage.sets.avacynrestored.GiselaBladeOfGoldnight { + + public GiselaBladeOfGoldnight(UUID ownerId) { + super(ownerId); + this.cardNumber = 219; + this.expansionSetCode = "C15"; + } + + public GiselaBladeOfGoldnight(final GiselaBladeOfGoldnight card) { + super(card); + } + + @Override + public GiselaBladeOfGoldnight copy() { + return new GiselaBladeOfGoldnight(this); + } +} diff --git a/Mage.Sets/src/mage/sets/commander2015/IllusoryAmbusher.java b/Mage.Sets/src/mage/sets/commander2015/IllusoryAmbusher.java new file mode 100644 index 0000000000..78cd559b0d --- /dev/null +++ b/Mage.Sets/src/mage/sets/commander2015/IllusoryAmbusher.java @@ -0,0 +1,103 @@ +/* + * 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.commander2015; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.DealtDamageToSourceTriggeredAbility; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.keyword.FlashAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.game.Game; +import mage.players.Player; + +/** + * + * @author fireshoes + */ +public class IllusoryAmbusher extends CardImpl { + + public IllusoryAmbusher(UUID ownerId) { + super(ownerId, 12, "Illusory Ambusher", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{4}{U}"); + this.expansionSetCode = "C15"; + this.subtype.add("Cat"); + this.subtype.add("Illusion"); + this.power = new MageInt(4); + this.toughness = new MageInt(1); + + // Flash + this.addAbility(FlashAbility.getInstance()); + + // Whenever Illusory Ambusher is dealt damage, draw that many cards. + this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new IllusoryAmbusherDealtDamageEffect(), false)); + } + + public IllusoryAmbusher(final IllusoryAmbusher card) { + super(card); + } + + @Override + public IllusoryAmbusher copy() { + return new IllusoryAmbusher(this); + } +} + +class IllusoryAmbusherDealtDamageEffect extends OneShotEffect { + + public IllusoryAmbusherDealtDamageEffect() { + super(Outcome.Damage); + this.staticText = "draw that many cards"; + } + + public IllusoryAmbusherDealtDamageEffect(final IllusoryAmbusherDealtDamageEffect effect) { + super(effect); + } + + @Override + public IllusoryAmbusherDealtDamageEffect copy() { + return new IllusoryAmbusherDealtDamageEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player player = game.getPlayer(source.getControllerId()); + if (player != null) { + int amount = (Integer) getValue("damage"); + if (amount > 0) { + player.drawCards(amount, game); + } + return true; + } + return false; + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/commander2015/KalemnesCaptain.java b/Mage.Sets/src/mage/sets/commander2015/KalemnesCaptain.java new file mode 100644 index 0000000000..f6db27fa06 --- /dev/null +++ b/Mage.Sets/src/mage/sets/commander2015/KalemnesCaptain.java @@ -0,0 +1,83 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.commander2015; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.BecomesMonstrousSourceTriggeredAbility; +import mage.abilities.effects.common.ExileAllEffect; +import mage.abilities.keyword.MonstrosityAbility; +import mage.abilities.keyword.VigilanceAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.filter.FilterPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; + +/** + * + * @author fireshoes + */ +public class KalemnesCaptain extends CardImpl { + + private static final FilterPermanent filter = new FilterPermanent("artifacts and enchantments"); + + static { + filter.add(Predicates.or( + new CardTypePredicate(CardType.ARTIFACT), + new CardTypePredicate(CardType.ENCHANTMENT))); + } + + public KalemnesCaptain(UUID ownerId) { + super(ownerId, 5, "Kalemne's Captain", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{3}{W}{W}"); + this.expansionSetCode = "C15"; + this.subtype.add("Giant"); + this.subtype.add("Soldier"); + this.power = new MageInt(5); + this.toughness = new MageInt(5); + + // Vigilance + this.addAbility(VigilanceAbility.getInstance()); + + // {5}{W}{W}: Monstrosity 3. + this.addAbility(new MonstrosityAbility("{5}{W}{W}", 3)); + + // When Kalemne's Captain becomes monstrous, exile all artifacts and enchantments. + this.addAbility(new BecomesMonstrousSourceTriggeredAbility(new ExileAllEffect(filter))); + } + + public KalemnesCaptain(final KalemnesCaptain card) { + super(card); + } + + @Override + public KalemnesCaptain copy() { + return new KalemnesCaptain(this); + } +} diff --git a/Mage.Sets/src/mage/sets/commander2015/KasetoOrochiArchmage.java b/Mage.Sets/src/mage/sets/commander2015/KasetoOrochiArchmage.java new file mode 100644 index 0000000000..02f9e11197 --- /dev/null +++ b/Mage.Sets/src/mage/sets/commander2015/KasetoOrochiArchmage.java @@ -0,0 +1,108 @@ +/* + * 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.commander2015; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class KasetoOrochiArchmage extends CardImpl { + + public KasetoOrochiArchmage(UUID ownerId) { + super(ownerId, 47, "Kaseto, Orochi Archmage", Rarity.MYTHIC, new CardType[]{CardType.CREATURE}, "{1}{G}{U}"); + this.expansionSetCode = "C15"; + this.supertype.add("Legendary"); + this.subtype.add("Snake"); + this.subtype.add("Wizard"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // {G}{U}: Target creature can't be blocked this turn. If that creature is a Snake, it gets +2/+2 until end of turn. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new KasetoEffect(), new ManaCostsImpl<>("{G}{U}")); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + + public KasetoOrochiArchmage(final KasetoOrochiArchmage card) { + super(card); + } + + @Override + public KasetoOrochiArchmage copy() { + return new KasetoOrochiArchmage(this); + } +} + +class KasetoEffect extends OneShotEffect { + + public KasetoEffect() { + super(Outcome.BoostCreature); + staticText = "Target creature can't be blocked this turn. If that creature is a Snake, it gets +2/+2 until end of turn"; + } + + public KasetoEffect(final KasetoEffect effect) { + super(effect); + } + + @Override + public KasetoEffect copy() { + return new KasetoEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent permanent = game.getPermanent(getTargetPointer().getFirst(game, source)); + if (permanent != null) { + game.addEffect(new CantBeBlockedTargetEffect(Duration.EndOfTurn), source); + if (permanent.getSubtype().contains("Snake")) { + game.addEffect(new BoostTargetEffect(2,2,Duration.EndOfTurn), source); + } + return true; + } + return false; + } + +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/commander2015/MazirekKraulDeathPriest.java b/Mage.Sets/src/mage/sets/commander2015/MazirekKraulDeathPriest.java new file mode 100644 index 0000000000..522f1c383f --- /dev/null +++ b/Mage.Sets/src/mage/sets/commander2015/MazirekKraulDeathPriest.java @@ -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.sets.commander2015; + +import java.util.UUID; +import mage.MageInt; +import mage.MageObject; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.counter.AddCountersAllEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; + +/** + * + * @author fireshoes + */ +public class MazirekKraulDeathPriest extends CardImpl { + + public MazirekKraulDeathPriest(UUID ownerId) { + super(ownerId, 48, "Mazirek, Kraul Death Priest", Rarity.MYTHIC, new CardType[]{CardType.CREATURE}, "{3}{B}{G}"); + this.expansionSetCode = "C15"; + this.supertype.add("Legendary"); + this.subtype.add("Insect"); + this.subtype.add("Shaman"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Whenever a player sacrifices another permanent, put a +1/+1 counter on each creature you control. + this.addAbility(new PlayerSacrificesPermanentTriggeredAbility(new AddCountersAllEffect(CounterType.P1P1.createInstance(), new FilterControlledCreaturePermanent()), false)); + } + + public MazirekKraulDeathPriest(final MazirekKraulDeathPriest card) { + super(card); + } + + @Override + public MazirekKraulDeathPriest copy() { + return new MazirekKraulDeathPriest(this); + } +} + +class PlayerSacrificesPermanentTriggeredAbility extends TriggeredAbilityImpl { + + public PlayerSacrificesPermanentTriggeredAbility(Effect effect, boolean optional) { + super(Zone.BATTLEFIELD, effect, optional); + } + + public PlayerSacrificesPermanentTriggeredAbility(final PlayerSacrificesPermanentTriggeredAbility ability) { + super(ability); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == EventType.SACRIFICED_PERMANENT; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + MageObject mageObject = game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD); + return mageObject != null && !event.getTargetId().equals(this.getSourceId()); + } + + @Override + public String getRule() { + return "Whenever a player sacrifices a permanent, " + super.getRule(); + } + + @Override + public PlayerSacrificesPermanentTriggeredAbility copy() { + return new PlayerSacrificesPermanentTriggeredAbility(this); + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/commander2015/Scytheclaw.java b/Mage.Sets/src/mage/sets/commander2015/Scytheclaw.java new file mode 100644 index 0000000000..33aff6d710 --- /dev/null +++ b/Mage.Sets/src/mage/sets/commander2015/Scytheclaw.java @@ -0,0 +1,154 @@ +/* + * 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.commander2015; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.Effect; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.continuous.BoostEquippedEffect; +import mage.abilities.keyword.EquipAbility; +import mage.abilities.keyword.LivingWeaponAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.DamagedPlayerEvent; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.game.permanent.Permanent; +import mage.players.Player; +import mage.target.targetpointer.FixedTarget; + +/** + * + * @author fireshoes + */ +public class Scytheclaw extends CardImpl { + + public Scytheclaw(UUID ownerId) { + super(ownerId, 53, "Scytheclaw", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{5}"); + this.expansionSetCode = "C15"; + this.subtype.add("Equipment"); + + // Living weapon + this.addAbility(new LivingWeaponAbility()); + + // Equipped creature gets +1/+1. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 1))); + + // Whenever equipped creature deals combat damage to a player, that player loses half of his or her life, round up. + this.addAbility(new ScytheclawTriggeredAbility()); + + // Equip {3} + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3))); + } + + public Scytheclaw(final Scytheclaw card) { + super(card); + } + + @Override + public Scytheclaw copy() { + return new Scytheclaw(this); + } +} + +class ScytheclawTriggeredAbility extends TriggeredAbilityImpl { + + public ScytheclawTriggeredAbility() { + super(Zone.BATTLEFIELD, new ScytheclawEffect()); + } + + public ScytheclawTriggeredAbility(final ScytheclawTriggeredAbility ability) { + super(ability); + } + + @Override + public ScytheclawTriggeredAbility copy() { + return new ScytheclawTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == EventType.DAMAGED_PLAYER; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + DamagedPlayerEvent damageEvent = (DamagedPlayerEvent) event; + Permanent p = game.getPermanent(event.getSourceId()); + if (damageEvent.isCombatDamage() && p != null && p.getAttachments().contains(this.getSourceId())) { + for (Effect effect : this.getEffects()) { + effect.setTargetPointer(new FixedTarget(event.getPlayerId())); + } + return true; + } + return false; + } + + @Override + public String getRule() { + return "Whenever equipped creature deals combat damage to a player, " + super.getRule(); + } +} + +class ScytheclawEffect extends OneShotEffect { + + public ScytheclawEffect() { + super(Outcome.Damage); + this.staticText = "that player loses half his or her life, rounded up"; + } + + public ScytheclawEffect(final ScytheclawEffect effect) { + super(effect); + } + + @Override + public ScytheclawEffect copy() { + return new ScytheclawEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player player = game.getPlayer(getTargetPointer().getFirst(game, source)); + if (player != null) { + Integer amount = (int) Math.ceil(player.getLife() / 2f); + if (amount > 0) { + player.loseLife(amount, game); + } + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/commander2015/SpiderSpawning.java b/Mage.Sets/src/mage/sets/commander2015/SpiderSpawning.java new file mode 100644 index 0000000000..d91b5c51fe --- /dev/null +++ b/Mage.Sets/src/mage/sets/commander2015/SpiderSpawning.java @@ -0,0 +1,52 @@ +/* + * 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.commander2015; + +import java.util.UUID; + +/** + * + * @author fireshoes + */ +public class SpiderSpawning extends mage.sets.innistrad.SpiderSpawning { + + public SpiderSpawning(UUID ownerId) { + super(ownerId); + this.cardNumber = 202; + this.expansionSetCode = "C15"; + } + + public SpiderSpawning(final SpiderSpawning card) { + super(card); + } + + @Override + public SpiderSpawning copy() { + return new SpiderSpawning(this); + } +} diff --git a/Utils/mtg-cards-data.txt b/Utils/mtg-cards-data.txt index d1d7531390..88fdf29179 100644 --- a/Utils/mtg-cards-data.txt +++ b/Utils/mtg-cards-data.txt @@ -27631,17 +27631,32 @@ Swamp|Battle for Zendikar|262|L||Basic Land - Swamp|||<i>({t}: Add {B} to your m Swamp|Battle for Zendikar|264|L||Basic Land - Swamp|||<i>({t}: Add {B} to your mana pool.)</i>| Swamp|Battle for Zendikar|260|L||Basic Land - Swamp|||<i>({t}: Add {B} to your mana pool.)</i>| Swamp|Battle for Zendikar|261|L||Basic Land - Swamp|||<i>({t}: Add {B} to your mana pool.)</i>| +Dawnbreak Reclaimer|Commander 2015|2|{4}{W}{W}|Creature - Angel|5|5|Flying$At the beginning of your end step, choose a creature card in an opponent's graveyard, then that player chooses a creature card in your graveyard. You may return those cards to the battlefield under their owners' control.| Kalemne's Captain|Commander 2015|5|R|{3}{W}{W}|Creature - Giant Soldier|5|5|Vigilance${5}{W}{W}: Monstrosity 3. <i>(If this creature isn't monstrous, put three +1/+1 counters on it and it becomes monstrous.)</i>$When Kalemne's Captain becomes monstrous, exile all artifacts and enchantments.| +Viper's Brood|Commander 2015|10|U|{4}{U}|Creature - Snake|3|3|Myriad <i>(Whenever this creature attacks, for each opponent other than defending player, you may put a token that's a copy of this creature onto the battlefield tapped and attacking that player or a planeswalker he or she controls. Exile the tokens at end of combat.)</i>$Whenever Viper's Brood deals combat damage to a player, you may draw a card.| Gigantoplasm|Commander 2015|11|R|{3}{U}|Creature - Shapeshifter|0|0|You may have Gigantoplasm enter the battlefield as a copy of any creature on the battlefield except it gains "{X}: This creature has base power and toughness X/X."| Illusory Ambusher|Commander 2015|12|U|{4}{U}|Creature - Cat Illusion|4|1|Flash <i>(You may cast this spell any time you could cast an instant.)</i>$Whenever Illusory Ambusher is dealt damage, draw that many cards.| -Banshee of the Dread Choir|16|U|{3}{B}{B}|Creature - Spirit|4|4|Myriad <i>(Whenever this creature attacks, for each opponent other than defending player, you may put a token that's a copy of this creature onto the battlefield tapped and attacking that player or a planeswalker he or she controls. Exile the tokens at end of combat.)</i>$Whenever Banshee of the Dread Choir deals combat damage to a player, that player discards a card.| +Banshee of the Dread Choir|Commander 2015|16|U|{3}{B}{B}|Creature - Spirit|4|4|Myriad <i>(Whenever this creature attacks, for each opponent other than defending player, you may put a token that's a copy of this creature onto the battlefield tapped and attacking that player or a planeswalker he or she controls. Exile the tokens at end of combat.)</i>$Whenever Banshee of the Dread Choir deals combat damage to a player, that player discards a card.| +Deadly Tempest|Commander 2015|19|R|{4}{B}{B}|Sorcery|||Destroy all creatures. Each player loses life equal to the number of creatures he or she controlled that were destroyed this way.| +Awaken the Sky Tyrant|Commander 2015|24|R|{3}{R}|Enchantment|||When a source an oppponent controls deals damage to you, sacrifice Awaken the Sky Tyrant. If you do, put a 5/5 red Dragon creature token with flying onto the battlefield.| +Dream Pillager|Commander 2015|25|R|{5}{R}{R}|Creature - Dragon|4|4|Flying$Whenever Dream Pillager deals combat damage to a player, exile that many cards from the top of your library. Until end of turn, you may play nonland cards exiled this way.| Fiery Confluence|Commander 2015|26|R|{2}{R}{R}|Sorcery|||Choose three. You may choose the same mode more than once. - Fiery Confluence deals 1 damage to each creature; Fiery Confluence deals 2 damage to each opponent; Destroy target artifact.| +Vine Centaur|Commander 2015|33|R|{3}{G}|Creature - Centaur Plant|1|1|Trample$Vine Centaur enters the battlefield with a +1/+1 counter on it for each land in all graveyards.$Whenever a land is put into a graveyard from anywhere, you may pay {G}{G}. If you do, return Vine Centaur from your graveyard to the battlefield.| +Ezuri's Predation|Commander 2015|36|{5}{G}{G}{G}|Sorcery|||For each creature your opponents control, put a 4/4 green Beast creature token onto the battlefield. Each of those Beasts fights a different one of those creatures.| Skullwinder|Commander 2015|39|U|{2}{G}|Creature - Snake|1|3|Deathtouch <i>(Any amount of damage this creature deals to a creature is enough to destroy it.)</i>$When Skullwinder enters the battlefield, return target card from your graveyard to your hand, then choose an opponent. That player returns a card from his or her graveyard to his or her hand.| Daxos the Returned|Commander 2015|43|M|{1}{W}{B}|Legendary Creature - Zombie Soldier|2|2|Whenever you cast an enchantment spell, you get an experience counter.${1}{W}{B}: Put a white and black Spirit enchantment creature token onto the battlefield. It has "This creature's power and toughness are each equal to the number of experience counters you have."| +Ezuri, Claw of Progress|Commander 2015|44|M|{2}{G}{U}|Legendary Creature - Elf Warrior|3|3|Whenever a creature with power 2 or less enters the battlefield under your control, you get an experience counter.$At the beginning of combat on your turn, put X +1/+1 counters on another target creature you control, where X is the number of experience counters you have.| Kalemne, Disciple of Iroas|Commander 2015|45|M|{2}{R}{W}|Legendary Creature - Giant Soldier|3|3|Double strike, vigilance$Whenever you cast a creature spell with converted mana cost 5 or greater, you get an experience counter.$Kalemne, Disciple of Iroas gets +1/+1 for each experience counter you have.| Kaseto, Orochi Archmage|Commander 2015|47|M|{1}{G}{U}|Legendary Creature - Snake Wizard|2|2|{G}{U}: Target creature can't be blocked this turn. If that creature is a Snake, it gets +2/+2 until end of turn.| Mazirek, Kraul Death Priest|Commander 2015|48|M|{3}{B}{G}|Legendary Creature - Insect Shaman|2|2|Flying$Whenever a player sacrifices another permanent, put a +1/+1 counter on each creature you control.| Mizzix of the Izmagnus|Commander 2015|50|M|{2}{U}{R}|Legendary Creature - Goblin Wizard|2|2|Whenever you cast an instant or sorcery spell with converted mana cost greater than the number of experience counters you have, you get an experience counter.$Instant and sorcery spells you cast cost {1} less to cast for each experience counter you have.| Blade of Selves|Commander 2015|51|R|{2}|Artifact - Equipment|||Equipped creature has myriad. <i>(Whenever it attacks, for each opponent other than defending player, you may put a token that's a copy of that creature onto the battlefield tapped and attacking that player or a planeswalker he or she controls. Exile the tokens at end of combat.)</i>$Equip {4}| +Sandstone Oracle|Commander 2015|52|U|{7}|Artifact Creature - Sphinx|4|4|Flying$When Sandstone Oracle enters the battlefield, choose an opponent. If that player has more cards in hand that you, draw cards equal to the difference.| Scytheclaw|Commander 2015|53|R|{5}|Artifact - Equipment|||Living weapon <i>(When this Equipment enter the battlefield, put a 0/0 black Germ creature token onto the battlefield, then attach this to it.)</i>$Equipped creature gets +1/+1.$Whenever equipped creature deals combat damage to a player, that player loses half of his or her life, round up.$Equip {3}| -Eternal Witness|Commander 2015|183|U|{1}{G}{G}|Creature - Human Shaman|2|1|When Eternal Witness enters the battlefield, you may return target card from your graveyard to your hand.| \ No newline at end of file +Seal of the Guildpact|Commander 2015|R|{5}|Artifact|||As Seal of the Guildpact enters the battlefield, choose two colors.$Each spell you cast costs {1} less to cast for each of the chosen colors it is.| +Eternal Witness|Commander 2015|183|U|{1}{G}{G}|Creature - Human Shaman|2|1|When Eternal Witness enters the battlefield, you may return target card from your graveyard to your hand.| +Spider Spawning|Commander 2015|202|U|{4}{G}|Sorcery|||Put a 1/2 green Spider creature token with reach onto the battlefield for each creature card in your graveyard.$Flashback {6}{B} <i>(You may cast this card from your graveyard for its flashback cost. Then exile it.)</i>| +Coiling Oracle|Commander 2015|213|C|{U}{G}|Creature - Snake Elf Druid|1|1|When Coiling Oracle enters the battlefield, reveal the top card of your library. If it's a land card, put it onto the battlefield. Otherwise, put that card into your hand.| +Counterflux|Commander 2015|214|R|{U}{U}{R}|Instant|||Counterflux can't be countered by spells or abilities.$Counter target spell you don't control.$Overload {1}{U}{U}{R} <i>(You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.")</i>| +Death Grasp|Commander 2015|215|R|{X}{W}{B}|Sorcery|||Death Grasp deals X damage to target creature or player. You gain X life.| +Gisela, Blade of Goldnight|Commander 2015|219|M|{4}{R}{W}{W}|Legendary Creature - Angel|5|5|Flying, first strike$If a source would deal damage to an opponent or a permanent an opponent controls, that source deals double that damage to that player or permanent instead.$If a source would deal damage to you or a permanent you control, prevent half that damage, rounded up.| \ No newline at end of file