From c34dd275e164db8e493a470e8f76190c646ca19e Mon Sep 17 00:00:00 2001 From: LoneFox Date: Thu, 11 Jun 2015 08:38:43 +0300 Subject: [PATCH 01/10] Implement some Portal cards: Fire Ambush, Fire Imp, Jungle Lion, Mercenary Knight, Ogre Arsonist, and Ravaging Horde --- .../sets/masterseditioniii/FireAmbush.java | 53 ++++++++++++++ .../sets/masterseditioniii/JungleLion.java | 53 ++++++++++++++ .../mage/sets/masterseditioniv/FireImp.java | 53 ++++++++++++++ .../mage/sets/mediainserts/OgreArsonist.java | 55 +++++++++++++++ Mage.Sets/src/mage/sets/portal/FireImp.java | 69 ++++++++++++++++++ .../src/mage/sets/portal/JungleLion.java | 63 +++++++++++++++++ .../src/mage/sets/portal/MercenaryKnight.java | 69 ++++++++++++++++++ .../sets/portalsecondage/OgreArsonist.java | 70 +++++++++++++++++++ .../sets/portalthreekingdoms/FireAmbush.java | 61 ++++++++++++++++ .../portalthreekingdoms/RavagingHorde.java | 70 +++++++++++++++++++ 10 files changed, 616 insertions(+) create mode 100644 Mage.Sets/src/mage/sets/masterseditioniii/FireAmbush.java create mode 100644 Mage.Sets/src/mage/sets/masterseditioniii/JungleLion.java create mode 100644 Mage.Sets/src/mage/sets/masterseditioniv/FireImp.java create mode 100644 Mage.Sets/src/mage/sets/mediainserts/OgreArsonist.java create mode 100644 Mage.Sets/src/mage/sets/portal/FireImp.java create mode 100644 Mage.Sets/src/mage/sets/portal/JungleLion.java create mode 100644 Mage.Sets/src/mage/sets/portal/MercenaryKnight.java create mode 100644 Mage.Sets/src/mage/sets/portalsecondage/OgreArsonist.java create mode 100644 Mage.Sets/src/mage/sets/portalthreekingdoms/FireAmbush.java create mode 100644 Mage.Sets/src/mage/sets/portalthreekingdoms/RavagingHorde.java diff --git a/Mage.Sets/src/mage/sets/masterseditioniii/FireAmbush.java b/Mage.Sets/src/mage/sets/masterseditioniii/FireAmbush.java new file mode 100644 index 00000000000..20a2913cdb7 --- /dev/null +++ b/Mage.Sets/src/mage/sets/masterseditioniii/FireAmbush.java @@ -0,0 +1,53 @@ +/* + * 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.masterseditioniii; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class FireAmbush extends mage.sets.portalthreekingdoms.FireAmbush { + + public FireAmbush(UUID ownerId) { + super(ownerId); + this.cardNumber = 97; + this.expansionSetCode = "ME3"; + } + + public FireAmbush(final FireAmbush card) { + super(card); + } + + @Override + public FireAmbush copy() { + return new FireAmbush(this); + } +} diff --git a/Mage.Sets/src/mage/sets/masterseditioniii/JungleLion.java b/Mage.Sets/src/mage/sets/masterseditioniii/JungleLion.java new file mode 100644 index 00000000000..3dee958c18a --- /dev/null +++ b/Mage.Sets/src/mage/sets/masterseditioniii/JungleLion.java @@ -0,0 +1,53 @@ +/* + * 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.masterseditioniii; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class JungleLion extends mage.sets.portal.JungleLion { + + public JungleLion(UUID ownerId) { + super(ownerId); + this.cardNumber = 125; + this.expansionSetCode = "ME3"; + } + + public JungleLion(final JungleLion card) { + super(card); + } + + @Override + public JungleLion copy() { + return new JungleLion(this); + } +} diff --git a/Mage.Sets/src/mage/sets/masterseditioniv/FireImp.java b/Mage.Sets/src/mage/sets/masterseditioniv/FireImp.java new file mode 100644 index 00000000000..5a61e3c4634 --- /dev/null +++ b/Mage.Sets/src/mage/sets/masterseditioniv/FireImp.java @@ -0,0 +1,53 @@ +/* + * 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.masterseditioniv; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class FireImp extends mage.sets.portal.FireImp { + + public FireImp(UUID ownerId) { + super(ownerId); + this.cardNumber = 113; + this.expansionSetCode = "ME4"; + } + + public FireImp(final FireImp card) { + super(card); + } + + @Override + public FireImp copy() { + return new FireImp(this); + } +} diff --git a/Mage.Sets/src/mage/sets/mediainserts/OgreArsonist.java b/Mage.Sets/src/mage/sets/mediainserts/OgreArsonist.java new file mode 100644 index 00000000000..c832c8d75a3 --- /dev/null +++ b/Mage.Sets/src/mage/sets/mediainserts/OgreArsonist.java @@ -0,0 +1,55 @@ +/* + * 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.mediainserts; + +import java.util.UUID; +import mage.constants.Rarity; + +/** + * + * @author LoneFox + + */ +public class OgreArsonist extends mage.sets.portalsecondage.OgreArsonist { + + public OgreArsonist(UUID ownerId) { + super(ownerId); + this.cardNumber = 63; + this.expansionSetCode = "MBP"; + this.rarity = Rarity.SPECIAL; + } + + public OgreArsonist(final OgreArsonist card) { + super(card); + } + + @Override + public OgreArsonist copy() { + return new OgreArsonist(this); + } +} diff --git a/Mage.Sets/src/mage/sets/portal/FireImp.java b/Mage.Sets/src/mage/sets/portal/FireImp.java new file mode 100644 index 00000000000..790dc35e352 --- /dev/null +++ b/Mage.Sets/src/mage/sets/portal/FireImp.java @@ -0,0 +1,69 @@ +/* + * 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.portal; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LoneFox + + */ +public class FireImp extends CardImpl { + + public FireImp(UUID ownerId) { + super(ownerId, 131, "Fire Imp", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{R}"); + this.expansionSetCode = "POR"; + this.subtype.add("Imp"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // When Fire Imp enters the battlefield, it deals 2 damage to target creature. + Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2), false); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + + public FireImp(final FireImp card) { + super(card); + } + + @Override + public FireImp copy() { + return new FireImp(this); + } +} diff --git a/Mage.Sets/src/mage/sets/portal/JungleLion.java b/Mage.Sets/src/mage/sets/portal/JungleLion.java new file mode 100644 index 00000000000..96cc8628217 --- /dev/null +++ b/Mage.Sets/src/mage/sets/portal/JungleLion.java @@ -0,0 +1,63 @@ +/* + * 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.portal; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.CantBlockAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; + +/** + * + * @author LoneFox + + */ +public class JungleLion extends CardImpl { + + public JungleLion(UUID ownerId) { + super(ownerId, 96, "Jungle Lion", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{G}"); + this.expansionSetCode = "POR"; + this.subtype.add("Cat"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // Jungle Lion can't block. + this.addAbility(new CantBlockAbility()); + } + + public JungleLion(final JungleLion card) { + super(card); + } + + @Override + public JungleLion copy() { + return new JungleLion(this); + } +} diff --git a/Mage.Sets/src/mage/sets/portal/MercenaryKnight.java b/Mage.Sets/src/mage/sets/portal/MercenaryKnight.java new file mode 100644 index 00000000000..7aba7fa471e --- /dev/null +++ b/Mage.Sets/src/mage/sets/portal/MercenaryKnight.java @@ -0,0 +1,69 @@ +/* + * 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.portal; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.costs.common.DiscardTargetCost; +import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.filter.common.FilterCreatureCard; +import mage.target.common.TargetCardInHand; + +/** + * + * @author LoneFox + + */ +public class MercenaryKnight extends CardImpl { + + public MercenaryKnight(UUID ownerId) { + super(ownerId, 22, "Mercenary Knight", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{2}{B}"); + this.expansionSetCode = "POR"; + this.subtype.add("Human"); + this.subtype.add("Mercenary"); + this.subtype.add("Knight"); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // When Mercenary Knight enters the battlefield, sacrifice it unless you discard a creature card. + this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new DiscardTargetCost(new TargetCardInHand(new FilterCreatureCard("a creature card")))))); + } + + public MercenaryKnight(final MercenaryKnight card) { + super(card); + } + + @Override + public MercenaryKnight copy() { + return new MercenaryKnight(this); + } +} diff --git a/Mage.Sets/src/mage/sets/portalsecondage/OgreArsonist.java b/Mage.Sets/src/mage/sets/portalsecondage/OgreArsonist.java new file mode 100644 index 00000000000..cb8e78b43f1 --- /dev/null +++ b/Mage.Sets/src/mage/sets/portalsecondage/OgreArsonist.java @@ -0,0 +1,70 @@ +/* + * 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.portalsecondage; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.abilities.keyword.EchoAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.target.common.TargetLandPermanent; + +/** + * + * @author LoneFox + + */ +public class OgreArsonist extends CardImpl { + + public OgreArsonist(UUID ownerId) { + super(ownerId, 110, "Ogre Arsonist", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{4}{R}"); + this.expansionSetCode = "PO2"; + this.subtype.add("Ogre"); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // When Ogre Arsonist enters the battlefield, destroy target land. + Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect()); + ability.addTarget(new TargetLandPermanent()); + this.addAbility(ability); + + } + + public OgreArsonist(final OgreArsonist card) { + super(card); + } + + @Override + public OgreArsonist copy() { + return new OgreArsonist(this); + } +} diff --git a/Mage.Sets/src/mage/sets/portalthreekingdoms/FireAmbush.java b/Mage.Sets/src/mage/sets/portalthreekingdoms/FireAmbush.java new file mode 100644 index 00000000000..336a88dc4ca --- /dev/null +++ b/Mage.Sets/src/mage/sets/portalthreekingdoms/FireAmbush.java @@ -0,0 +1,61 @@ +/* + * 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.portalthreekingdoms; + +import java.util.UUID; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.target.common.TargetCreatureOrPlayer; + +/** + * + * @author LoneFox + + */ +public class FireAmbush extends CardImpl { + + public FireAmbush(UUID ownerId) { + super(ownerId, 111, "Fire Ambush", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{1}{R}"); + this.expansionSetCode = "PTK"; + + // Fire Ambush deals 3 damage to target creature or player. + this.getSpellAbility().addEffect(new DamageTargetEffect(3)); + this.getSpellAbility().addTarget(new TargetCreatureOrPlayer()); + } + + public FireAmbush(final FireAmbush card) { + super(card); + } + + @Override + public FireAmbush copy() { + return new FireAmbush(this); + } +} diff --git a/Mage.Sets/src/mage/sets/portalthreekingdoms/RavagingHorde.java b/Mage.Sets/src/mage/sets/portalthreekingdoms/RavagingHorde.java new file mode 100644 index 00000000000..33c5af074f1 --- /dev/null +++ b/Mage.Sets/src/mage/sets/portalthreekingdoms/RavagingHorde.java @@ -0,0 +1,70 @@ +/* + * 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.portalthreekingdoms; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.abilities.keyword.EchoAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.target.common.TargetLandPermanent; + +/** + * + * @author LoneFox + + */ +public class RavagingHorde extends CardImpl { + + public RavagingHorde(UUID ownerId) { + super(ownerId, 118, "Ravaging Horde", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{3}{R}{R}"); + this.expansionSetCode = "PTK"; + this.subtype.add("Human"); + this.subtype.add("Soldier"); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // When Ravaging Horde enters the battlefield, destroy target land. + Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect()); + ability.addTarget(new TargetLandPermanent()); + this.addAbility(ability); + } + + public RavagingHorde(final RavagingHorde card) { + super(card); + } + + @Override + public RavagingHorde copy() { + return new RavagingHorde(this); + } +} From 0008ac01cef1bfbdabb88a4a5802c6ca729d7446 Mon Sep 17 00:00:00 2001 From: LoneFox Date: Thu, 11 Jun 2015 08:40:48 +0300 Subject: [PATCH 02/10] Implement pump knights: Knight of Stromgald, Order of Leitbur, Order of the Ebon Hand, Order of the White Shield, and White Shield Crusader --- .../sets/coldsnap/WhiteShieldCrusader.java | 86 ++++++++++++++++++ .../sets/fallenempires/OrderOfLeitbur1.java | 53 +++++++++++ .../sets/fallenempires/OrderOfLeitbur2.java | 53 +++++++++++ .../sets/fallenempires/OrderOfLeitbur3.java | 53 +++++++++++ .../fallenempires/OrderOfTheEbonHand1.java | 53 +++++++++++ .../fallenempires/OrderOfTheEbonHand2.java | 53 +++++++++++ .../fallenempires/OrderOfTheEbonHand3.java | 53 +++++++++++ .../sets/fifthedition/KnightOfStromgald.java | 53 +++++++++++ .../fifthedition/OrderOfTheWhiteShield.java | 53 +++++++++++ .../mage/sets/iceage/KnightOfStromgald.java | 86 ++++++++++++++++++ .../sets/iceage/OrderOfTheWhiteShield.java | 86 ++++++++++++++++++ .../sets/mastersedition/OrderOfLeitbur.java | 87 +++++++++++++++++++ .../mastersedition/OrderOfTheEbonHand.java | 86 ++++++++++++++++++ .../masterseditionii/KnightOfStromgald.java | 53 +++++++++++ .../OrderOfTheWhiteShield.java | 53 +++++++++++ 15 files changed, 961 insertions(+) create mode 100644 Mage.Sets/src/mage/sets/coldsnap/WhiteShieldCrusader.java create mode 100644 Mage.Sets/src/mage/sets/fallenempires/OrderOfLeitbur1.java create mode 100644 Mage.Sets/src/mage/sets/fallenempires/OrderOfLeitbur2.java create mode 100644 Mage.Sets/src/mage/sets/fallenempires/OrderOfLeitbur3.java create mode 100644 Mage.Sets/src/mage/sets/fallenempires/OrderOfTheEbonHand1.java create mode 100644 Mage.Sets/src/mage/sets/fallenempires/OrderOfTheEbonHand2.java create mode 100644 Mage.Sets/src/mage/sets/fallenempires/OrderOfTheEbonHand3.java create mode 100644 Mage.Sets/src/mage/sets/fifthedition/KnightOfStromgald.java create mode 100644 Mage.Sets/src/mage/sets/fifthedition/OrderOfTheWhiteShield.java create mode 100644 Mage.Sets/src/mage/sets/iceage/KnightOfStromgald.java create mode 100644 Mage.Sets/src/mage/sets/iceage/OrderOfTheWhiteShield.java create mode 100644 Mage.Sets/src/mage/sets/mastersedition/OrderOfLeitbur.java create mode 100644 Mage.Sets/src/mage/sets/mastersedition/OrderOfTheEbonHand.java create mode 100644 Mage.Sets/src/mage/sets/masterseditionii/KnightOfStromgald.java create mode 100644 Mage.Sets/src/mage/sets/masterseditionii/OrderOfTheWhiteShield.java diff --git a/Mage.Sets/src/mage/sets/coldsnap/WhiteShieldCrusader.java b/Mage.Sets/src/mage/sets/coldsnap/WhiteShieldCrusader.java new file mode 100644 index 00000000000..72f0081f091 --- /dev/null +++ b/Mage.Sets/src/mage/sets/coldsnap/WhiteShieldCrusader.java @@ -0,0 +1,86 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.coldsnap; + +import java.util.UUID; +import mage.MageInt; +import mage.ObjectColor; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.ProtectionAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.predicate.mageobject.ColorPredicate; + +/** + * + * @author LoneFox + + */ +public class WhiteShieldCrusader extends CardImpl { + + private static final FilterCard filter = new FilterCard("Black"); + + static { + filter.add(new ColorPredicate(ObjectColor.BLACK)); + } + + public WhiteShieldCrusader(UUID ownerId) { + super(ownerId, 24, "White Shield Crusader", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{W}{W}"); + this.expansionSetCode = "CSP"; + this.subtype.add("Human"); + this.subtype.add("Knight"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // Protection from black + this.addAbility(new ProtectionAbility(filter)); + + // {W}: White Shield Crusader gains flying until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{W}"))); + + // {W}{W}: White Shield Crusader gets +1/+0 until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1,0, Duration.EndOfTurn), new ManaCostsImpl("{W}{W}"))); + } + + public WhiteShieldCrusader(final WhiteShieldCrusader card) { + super(card); + } + + @Override + public WhiteShieldCrusader copy() { + return new WhiteShieldCrusader(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/OrderOfLeitbur1.java b/Mage.Sets/src/mage/sets/fallenempires/OrderOfLeitbur1.java new file mode 100644 index 00000000000..194a0bd052c --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/OrderOfLeitbur1.java @@ -0,0 +1,53 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class OrderOfLeitbur1 extends mage.sets.mastersedition.OrderOfLeitbur { + + public OrderOfLeitbur1(UUID ownerId) { + super(ownerId); + this.cardNumber = 163; + this.expansionSetCode = "FEM"; + } + + public OrderOfLeitbur1(final OrderOfLeitbur1 card) { + super(card); + } + + @Override + public OrderOfLeitbur1 copy() { + return new OrderOfLeitbur1(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/OrderOfLeitbur2.java b/Mage.Sets/src/mage/sets/fallenempires/OrderOfLeitbur2.java new file mode 100644 index 00000000000..360fdfe329b --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/OrderOfLeitbur2.java @@ -0,0 +1,53 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class OrderOfLeitbur2 extends mage.sets.mastersedition.OrderOfLeitbur { + + public OrderOfLeitbur2(UUID ownerId) { + super(ownerId); + this.cardNumber = 164; + this.expansionSetCode = "FEM"; + } + + public OrderOfLeitbur2(final OrderOfLeitbur2 card) { + super(card); + } + + @Override + public OrderOfLeitbur2 copy() { + return new OrderOfLeitbur2(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/OrderOfLeitbur3.java b/Mage.Sets/src/mage/sets/fallenempires/OrderOfLeitbur3.java new file mode 100644 index 00000000000..1f71602dbc4 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/OrderOfLeitbur3.java @@ -0,0 +1,53 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class OrderOfLeitbur3 extends mage.sets.mastersedition.OrderOfLeitbur { + + public OrderOfLeitbur3(UUID ownerId) { + super(ownerId); + this.cardNumber = 165; + this.expansionSetCode = "FEM"; + } + + public OrderOfLeitbur3(final OrderOfLeitbur3 card) { + super(card); + } + + @Override + public OrderOfLeitbur3 copy() { + return new OrderOfLeitbur3(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/OrderOfTheEbonHand1.java b/Mage.Sets/src/mage/sets/fallenempires/OrderOfTheEbonHand1.java new file mode 100644 index 00000000000..221a35d91d7 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/OrderOfTheEbonHand1.java @@ -0,0 +1,53 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class OrderOfTheEbonHand1 extends mage.sets.mastersedition.OrderOfTheEbonHand { + + public OrderOfTheEbonHand1(UUID ownerId) { + super(ownerId); + this.cardNumber = 25; + this.expansionSetCode = "FEM"; + } + + public OrderOfTheEbonHand1(final OrderOfTheEbonHand1 card) { + super(card); + } + + @Override + public OrderOfTheEbonHand1 copy() { + return new OrderOfTheEbonHand1(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/OrderOfTheEbonHand2.java b/Mage.Sets/src/mage/sets/fallenempires/OrderOfTheEbonHand2.java new file mode 100644 index 00000000000..28270bc6488 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/OrderOfTheEbonHand2.java @@ -0,0 +1,53 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class OrderOfTheEbonHand2 extends mage.sets.mastersedition.OrderOfTheEbonHand { + + public OrderOfTheEbonHand2(UUID ownerId) { + super(ownerId); + this.cardNumber = 26; + this.expansionSetCode = "FEM"; + } + + public OrderOfTheEbonHand2(final OrderOfTheEbonHand2 card) { + super(card); + } + + @Override + public OrderOfTheEbonHand2 copy() { + return new OrderOfTheEbonHand2(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/OrderOfTheEbonHand3.java b/Mage.Sets/src/mage/sets/fallenempires/OrderOfTheEbonHand3.java new file mode 100644 index 00000000000..85e25ae3f45 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/OrderOfTheEbonHand3.java @@ -0,0 +1,53 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class OrderOfTheEbonHand3 extends mage.sets.mastersedition.OrderOfTheEbonHand { + + public OrderOfTheEbonHand3(UUID ownerId) { + super(ownerId); + this.cardNumber = 27; + this.expansionSetCode = "FEM"; + } + + public OrderOfTheEbonHand3(final OrderOfTheEbonHand3 card) { + super(card); + } + + @Override + public OrderOfTheEbonHand3 copy() { + return new OrderOfTheEbonHand3(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fifthedition/KnightOfStromgald.java b/Mage.Sets/src/mage/sets/fifthedition/KnightOfStromgald.java new file mode 100644 index 00000000000..af5cc58290f --- /dev/null +++ b/Mage.Sets/src/mage/sets/fifthedition/KnightOfStromgald.java @@ -0,0 +1,53 @@ +/* + * 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.fifthedition; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class KnightOfStromgald extends mage.sets.iceage.KnightOfStromgald { + + public KnightOfStromgald(UUID ownerId) { + super(ownerId); + this.cardNumber = 33; + this.expansionSetCode = "5ED"; + } + + public KnightOfStromgald(final KnightOfStromgald card) { + super(card); + } + + @Override + public KnightOfStromgald copy() { + return new KnightOfStromgald(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fifthedition/OrderOfTheWhiteShield.java b/Mage.Sets/src/mage/sets/fifthedition/OrderOfTheWhiteShield.java new file mode 100644 index 00000000000..b131da9beef --- /dev/null +++ b/Mage.Sets/src/mage/sets/fifthedition/OrderOfTheWhiteShield.java @@ -0,0 +1,53 @@ +/* + * 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.fifthedition; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class OrderOfTheWhiteShield extends mage.sets.iceage.OrderOfTheWhiteShield { + + public OrderOfTheWhiteShield(UUID ownerId) { + super(ownerId); + this.cardNumber = 325; + this.expansionSetCode = "5ED"; + } + + public OrderOfTheWhiteShield(final OrderOfTheWhiteShield card) { + super(card); + } + + @Override + public OrderOfTheWhiteShield copy() { + return new OrderOfTheWhiteShield(this); + } +} diff --git a/Mage.Sets/src/mage/sets/iceage/KnightOfStromgald.java b/Mage.Sets/src/mage/sets/iceage/KnightOfStromgald.java new file mode 100644 index 00000000000..c923743d0be --- /dev/null +++ b/Mage.Sets/src/mage/sets/iceage/KnightOfStromgald.java @@ -0,0 +1,86 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.iceage; + +import java.util.UUID; +import mage.MageInt; +import mage.ObjectColor; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.keyword.FirstStrikeAbility; +import mage.abilities.keyword.ProtectionAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.predicate.mageobject.ColorPredicate; + +/** + * + * @author LoneFox + + */ +public class KnightOfStromgald extends CardImpl { + + private static final FilterCard filter = new FilterCard("White"); + + static { + filter.add(new ColorPredicate(ObjectColor.WHITE)); + } + + public KnightOfStromgald(UUID ownerId) { + super(ownerId, 26, "Knight of Stromgald", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{B}{B}"); + this.expansionSetCode = "ICE"; + this.subtype.add("Human"); + this.subtype.add("Knight"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // Protection from white + this.addAbility(new ProtectionAbility(filter)); + + // {B}: Knight of Stromgald gains first strike until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{B}"))); + + // {B}{B}: Knight of Stromgald gets +1/+0 until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1,0, Duration.EndOfTurn), new ManaCostsImpl("{B}{B}"))); + } + + public KnightOfStromgald(final KnightOfStromgald card) { + super(card); + } + + @Override + public KnightOfStromgald copy() { + return new KnightOfStromgald(this); + } +} diff --git a/Mage.Sets/src/mage/sets/iceage/OrderOfTheWhiteShield.java b/Mage.Sets/src/mage/sets/iceage/OrderOfTheWhiteShield.java new file mode 100644 index 00000000000..dc31f84840d --- /dev/null +++ b/Mage.Sets/src/mage/sets/iceage/OrderOfTheWhiteShield.java @@ -0,0 +1,86 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.iceage; + +import java.util.UUID; +import mage.MageInt; +import mage.ObjectColor; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.keyword.FirstStrikeAbility; +import mage.abilities.keyword.ProtectionAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.predicate.mageobject.ColorPredicate; + +/** + * + * @author LoneFox + + */ +public class OrderOfTheWhiteShield extends CardImpl { + + private static final FilterCard filter = new FilterCard("Black"); + + static { + filter.add(new ColorPredicate(ObjectColor.BLACK)); + } + + public OrderOfTheWhiteShield(UUID ownerId) { + super(ownerId, 270, "Order of the White Shield", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{W}{W}"); + this.expansionSetCode = "ICE"; + this.subtype.add("Human"); + this.subtype.add("Knight"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // Protection from black + this.addAbility(new ProtectionAbility(filter)); + + // {W}: Order of the White Shield gains first strike until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{W}"))); + + // {W}{W}: Order of the White Shield gets +1/+0 until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1,0, Duration.EndOfTurn), new ManaCostsImpl("{W}{W}"))); + } + + public OrderOfTheWhiteShield(final OrderOfTheWhiteShield card) { + super(card); + } + + @Override + public OrderOfTheWhiteShield copy() { + return new OrderOfTheWhiteShield(this); + } +} diff --git a/Mage.Sets/src/mage/sets/mastersedition/OrderOfLeitbur.java b/Mage.Sets/src/mage/sets/mastersedition/OrderOfLeitbur.java new file mode 100644 index 00000000000..fae1e77830f --- /dev/null +++ b/Mage.Sets/src/mage/sets/mastersedition/OrderOfLeitbur.java @@ -0,0 +1,87 @@ +/* + * 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.mastersedition; + +import java.util.UUID; +import mage.MageInt; +import mage.ObjectColor; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.keyword.FirstStrikeAbility; +import mage.abilities.keyword.ProtectionAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.predicate.mageobject.ColorPredicate; + +/** + * + * @author LoneFox + + */ +public class OrderOfLeitbur extends CardImpl { + + private static final FilterCard filter = new FilterCard("Black"); + + static { + filter.add(new ColorPredicate(ObjectColor.BLACK)); + } + + public OrderOfLeitbur(UUID ownerId) { + super(ownerId, 22, "Order of Leitbur", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{W}{W}"); + this.expansionSetCode = "MED"; + this.subtype.add("Human"); + this.subtype.add("Cleric"); + this.subtype.add("Knight"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // Protection from black + this.addAbility(new ProtectionAbility(filter)); + + // {W}: Order of Leitbur gains first strike until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{W}"))); + + // {W}{W}: Order of Leitbur gets +1/+0 until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1,0, Duration.EndOfTurn), new ManaCostsImpl("{W}{W}"))); + } + + public OrderOfLeitbur(final OrderOfLeitbur card) { + super(card); + } + + @Override + public OrderOfLeitbur copy() { + return new OrderOfLeitbur(this); + } +} diff --git a/Mage.Sets/src/mage/sets/mastersedition/OrderOfTheEbonHand.java b/Mage.Sets/src/mage/sets/mastersedition/OrderOfTheEbonHand.java new file mode 100644 index 00000000000..2bbbd28ddca --- /dev/null +++ b/Mage.Sets/src/mage/sets/mastersedition/OrderOfTheEbonHand.java @@ -0,0 +1,86 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.mastersedition; + +import java.util.UUID; +import mage.MageInt; +import mage.ObjectColor; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.keyword.FirstStrikeAbility; +import mage.abilities.keyword.ProtectionAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.predicate.mageobject.ColorPredicate; + +/** + * + * @author LoneFox + + */ +public class OrderOfTheEbonHand extends CardImpl { + + private static final FilterCard filter = new FilterCard("White"); + + static { + filter.add(new ColorPredicate(ObjectColor.WHITE)); + } + + public OrderOfTheEbonHand(UUID ownerId) { + super(ownerId, 78, "Order of the Ebon Hand", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{B}{B}"); + this.expansionSetCode = "MED"; + this.subtype.add("Cleric"); + this.subtype.add("Knight"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // Protection from white + this.addAbility(new ProtectionAbility(filter)); + + // {B}: Order of the Ebon Hand gains first strike until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{B}"))); + + // {B}{B}: Order of the Ebon Hand gets +1/+0 until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1,0, Duration.EndOfTurn), new ManaCostsImpl("{B}{B}"))); + } + + public OrderOfTheEbonHand(final OrderOfTheEbonHand card) { + super(card); + } + + @Override + public OrderOfTheEbonHand copy() { + return new OrderOfTheEbonHand(this); + } +} diff --git a/Mage.Sets/src/mage/sets/masterseditionii/KnightOfStromgald.java b/Mage.Sets/src/mage/sets/masterseditionii/KnightOfStromgald.java new file mode 100644 index 00000000000..221d23aee70 --- /dev/null +++ b/Mage.Sets/src/mage/sets/masterseditionii/KnightOfStromgald.java @@ -0,0 +1,53 @@ +/* + * 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.masterseditionii; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class KnightOfStromgald extends mage.sets.iceage.KnightOfStromgald { + + public KnightOfStromgald(UUID ownerId) { + super(ownerId); + this.cardNumber = 99; + this.expansionSetCode = "ME2"; + } + + public KnightOfStromgald(final KnightOfStromgald card) { + super(card); + } + + @Override + public KnightOfStromgald copy() { + return new KnightOfStromgald(this); + } +} diff --git a/Mage.Sets/src/mage/sets/masterseditionii/OrderOfTheWhiteShield.java b/Mage.Sets/src/mage/sets/masterseditionii/OrderOfTheWhiteShield.java new file mode 100644 index 00000000000..0f056198a83 --- /dev/null +++ b/Mage.Sets/src/mage/sets/masterseditionii/OrderOfTheWhiteShield.java @@ -0,0 +1,53 @@ +/* + * 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.masterseditionii; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class OrderOfTheWhiteShield extends mage.sets.iceage.OrderOfTheWhiteShield { + + public OrderOfTheWhiteShield(UUID ownerId) { + super(ownerId); + this.cardNumber = 26; + this.expansionSetCode = "ME2"; + } + + public OrderOfTheWhiteShield(final OrderOfTheWhiteShield card) { + super(card); + } + + @Override + public OrderOfTheWhiteShield copy() { + return new OrderOfTheWhiteShield(this); + } +} From 658daa65e3d86a936682992564e2e18c3a680bc1 Mon Sep 17 00:00:00 2001 From: LoneFox Date: Thu, 11 Jun 2015 08:43:12 +0300 Subject: [PATCH 03/10] Fix typo --- .../deckeditor/collection/viewer/CollectionViewerPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPane.java b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPane.java index 69563a64746..fee877ac688 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPane.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPane.java @@ -44,7 +44,7 @@ public class CollectionViewerPane extends MagePane { public CollectionViewerPane() { boolean initialized = false; - this.setTitle("Collection Viewier"); + this.setTitle("Collection Viewer"); if (Plugins.getInstance().isThemePluginLoaded()) { Map uiComponents = new HashMap(); JComponent container = Plugins.getInstance().updateTablePanel(uiComponents); From 90486afdbb53695a1da76909cdccbc4965174efe Mon Sep 17 00:00:00 2001 From: LoneFox Date: Thu, 11 Jun 2015 09:17:05 +0300 Subject: [PATCH 04/10] If saving a thumbnail image fails, delete the resulting file. OpenJDK throws "javax.imageio.IIOException: Invalid argument to native writeImage", because it does not support transparency, and that results in zero-sized thumbnail files being created. --- .../mage/plugins/card/images/ImageCache.java | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/images/ImageCache.java b/Mage.Client/src/main/java/org/mage/plugins/card/images/ImageCache.java index 08cb77829f1..33cbb1a7dbe 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/images/ImageCache.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/images/ImageCache.java @@ -27,11 +27,11 @@ import org.mage.plugins.card.utils.CardImageUtils; * This class stores ALL card images in a cache with soft values. this means * that the images may be garbage collected when they are not needed any more, but will * be kept as long as possible. - * + * * Key format: "####" - * + * * where param is: - * + * *
    *
  • #Normal: request for unrotated image
  • *
  • #Tapped: request for rotated image
  • @@ -56,7 +56,7 @@ public class ImageCache { @Override public BufferedImage apply(String key) { try { - + boolean usesVariousArt = false; if (key.endsWith("#usesVariousArt")) { usesVariousArt = true; @@ -111,7 +111,7 @@ public class ImageCache { } catch(Exception ex) { exists = false; } - } + } if (exists) { log.debug("loading thumbnail for " + key + ", path="+thumbnailPath); return loadImage(thumbnailFile); @@ -150,7 +150,7 @@ public class ImageCache { return null; } TFile file = getTFile(path); - return loadImage(file); + return loadImage(file); } public static BufferedImage getManifestImage() { @@ -159,7 +159,7 @@ public class ImageCache { String path = CardImageUtils.generateTokenImagePath(info); if (path == null) { return null; - } + } TFile file = getTFile(path); return loadImage(file); } @@ -219,7 +219,7 @@ public class ImageCache { private static BufferedImage getImage(String key) { try { BufferedImage image = imageCache.get(key); - return image; + return image; } catch (NullPointerException ex) { // unfortunately NullOutputException, thrown when apply() returns // null, is not public @@ -261,7 +261,7 @@ public class ImageCache { /** * Load image from file - * + * * @param file * file to load image from * @return {@link BufferedImage} @@ -298,6 +298,7 @@ public class ImageCache { } } catch (IOException e) { log.error(e,e); + imageFile.delete(); } return image; } @@ -382,7 +383,7 @@ public class ImageCache { return getFullSizeImage(original, scale); } - + public static TFile getTFile(String path) { try { TFile file = new TFile(path); @@ -390,6 +391,6 @@ public class ImageCache { } catch (NullPointerException ex) { log.warn("Imagefile does not exist: " + path); } - return null; + return null; } } From 0af411ff6c43af9936317ff202f4d029c4ea50ab Mon Sep 17 00:00:00 2001 From: LoneFox Date: Thu, 11 Jun 2015 10:06:58 +0300 Subject: [PATCH 05/10] Implement cards: Orcish Cannoneers, Soldevi Simulacrum, Yavimaya Ants --- .../src/mage/sets/alliances/YavimayaAnts.java | 70 ++++++++++++++++++ .../mage/sets/iceage/OrcishCannoneers.java | 72 +++++++++++++++++++ .../mage/sets/iceage/SoldeviSimulacrum.java | 53 ++++++++++++++ .../sets/mastersedition/YavimayaAnts.java | 53 ++++++++++++++ .../masterseditionii/OrcishCannoneers.java | 53 ++++++++++++++ .../masterseditionii/SoldeviSimulacrum.java | 70 ++++++++++++++++++ 6 files changed, 371 insertions(+) create mode 100644 Mage.Sets/src/mage/sets/alliances/YavimayaAnts.java create mode 100644 Mage.Sets/src/mage/sets/iceage/OrcishCannoneers.java create mode 100644 Mage.Sets/src/mage/sets/iceage/SoldeviSimulacrum.java create mode 100644 Mage.Sets/src/mage/sets/mastersedition/YavimayaAnts.java create mode 100644 Mage.Sets/src/mage/sets/masterseditionii/OrcishCannoneers.java create mode 100644 Mage.Sets/src/mage/sets/masterseditionii/SoldeviSimulacrum.java diff --git a/Mage.Sets/src/mage/sets/alliances/YavimayaAnts.java b/Mage.Sets/src/mage/sets/alliances/YavimayaAnts.java new file mode 100644 index 00000000000..db233aee603 --- /dev/null +++ b/Mage.Sets/src/mage/sets/alliances/YavimayaAnts.java @@ -0,0 +1,70 @@ +/* + * 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.alliances; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.keyword.TrampleAbility; +import mage.abilities.keyword.HasteAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.CumulativeUpkeepAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; + +/** + * + * @author LoneFox + + */ +public class YavimayaAnts extends CardImpl { + + public YavimayaAnts(UUID ownerId) { + super(ownerId, 93, "Yavimaya Ants", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{G}{G}"); + this.expansionSetCode = "ALL"; + this.subtype.add("Insect"); + this.power = new MageInt(5); + this.toughness = new MageInt(1); + + // Trample + this.addAbility(TrampleAbility.getInstance()); + // Haste + this.addAbility(HasteAbility.getInstance()); + // Cumulative upkeep {G}{G} + this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl("{G}{G}"))); + } + + public YavimayaAnts(final YavimayaAnts card) { + super(card); + } + + @Override + public YavimayaAnts copy() { + return new YavimayaAnts(this); + } +} diff --git a/Mage.Sets/src/mage/sets/iceage/OrcishCannoneers.java b/Mage.Sets/src/mage/sets/iceage/OrcishCannoneers.java new file mode 100644 index 00000000000..ef0cebf67d2 --- /dev/null +++ b/Mage.Sets/src/mage/sets/iceage/OrcishCannoneers.java @@ -0,0 +1,72 @@ +/* + * 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.iceage; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.DamageControllerEffect; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.target.common.TargetCreatureOrPlayer; + +/** + * + * @author LoneFox + + */ +public class OrcishCannoneers extends CardImpl { + + public OrcishCannoneers(UUID ownerId) { + super(ownerId, 205, "Orcish Cannoneers", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{R}{R}"); + this.expansionSetCode = "ICE"; + this.subtype.add("Orc"); + this.subtype.add("Warrior"); + this.power = new MageInt(1); + this.toughness = new MageInt(3); + + // {tap}: Orcish Cannoneers deals 2 damage to target creature or player and 3 damage to you. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new TapSourceCost()); ability.addTarget(new TargetCreatureOrPlayer()); + ability.addEffect(new DamageControllerEffect(3)); + this.addAbility(ability); + } + + public OrcishCannoneers(final OrcishCannoneers card) { + super(card); + } + + @Override + public OrcishCannoneers copy() { + return new OrcishCannoneers(this); + } +} diff --git a/Mage.Sets/src/mage/sets/iceage/SoldeviSimulacrum.java b/Mage.Sets/src/mage/sets/iceage/SoldeviSimulacrum.java new file mode 100644 index 00000000000..a79829b58e6 --- /dev/null +++ b/Mage.Sets/src/mage/sets/iceage/SoldeviSimulacrum.java @@ -0,0 +1,53 @@ +/* + * 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.iceage; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class SoldeviSimulacrum extends mage.sets.masterseditionii.SoldeviSimulacrum { + + public SoldeviSimulacrum(UUID ownerId) { + super(ownerId); + this.cardNumber = 314; + this.expansionSetCode = "ICE"; + } + + public SoldeviSimulacrum(final SoldeviSimulacrum card) { + super(card); + } + + @Override + public SoldeviSimulacrum copy() { + return new SoldeviSimulacrum(this); + } +} diff --git a/Mage.Sets/src/mage/sets/mastersedition/YavimayaAnts.java b/Mage.Sets/src/mage/sets/mastersedition/YavimayaAnts.java new file mode 100644 index 00000000000..d91f842e169 --- /dev/null +++ b/Mage.Sets/src/mage/sets/mastersedition/YavimayaAnts.java @@ -0,0 +1,53 @@ +/* + * 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.mastersedition; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class YavimayaAnts extends mage.sets.alliances.YavimayaAnts { + + public YavimayaAnts(UUID ownerId) { + super(ownerId); + this.cardNumber = 140; + this.expansionSetCode = "MED"; + } + + public YavimayaAnts(final YavimayaAnts card) { + super(card); + } + + @Override + public YavimayaAnts copy() { + return new YavimayaAnts(this); + } +} diff --git a/Mage.Sets/src/mage/sets/masterseditionii/OrcishCannoneers.java b/Mage.Sets/src/mage/sets/masterseditionii/OrcishCannoneers.java new file mode 100644 index 00000000000..ad2ace68f89 --- /dev/null +++ b/Mage.Sets/src/mage/sets/masterseditionii/OrcishCannoneers.java @@ -0,0 +1,53 @@ +/* + * 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.masterseditionii; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class OrcishCannoneers extends mage.sets.iceage.OrcishCannoneers { + + public OrcishCannoneers(UUID ownerId) { + super(ownerId); + this.cardNumber = 138; + this.expansionSetCode = "ME2"; + } + + public OrcishCannoneers(final OrcishCannoneers card) { + super(card); + } + + @Override + public OrcishCannoneers copy() { + return new OrcishCannoneers(this); + } +} diff --git a/Mage.Sets/src/mage/sets/masterseditionii/SoldeviSimulacrum.java b/Mage.Sets/src/mage/sets/masterseditionii/SoldeviSimulacrum.java new file mode 100644 index 00000000000..9dd318919b9 --- /dev/null +++ b/Mage.Sets/src/mage/sets/masterseditionii/SoldeviSimulacrum.java @@ -0,0 +1,70 @@ +/* + * 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.masterseditionii; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.keyword.CumulativeUpkeepAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; + +/** + * + * @author LoneFox + + */ +public class SoldeviSimulacrum extends CardImpl { + + public SoldeviSimulacrum(UUID ownerId) { + super(ownerId, 222, "Soldevi Simulacrum", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{4}"); + this.expansionSetCode = "ME2"; + this.subtype.add("Soldier"); + this.power = new MageInt(2); + this.toughness = new MageInt(4); + + // Cumulative upkeep {1} + this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl("{1}"))); + // {1}: Soldevi Simulacrum gets +1/+0 until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1,0, Duration.EndOfTurn), new ManaCostsImpl("{1}"))); + } + + public SoldeviSimulacrum(final SoldeviSimulacrum card) { + super(card); + } + + @Override + public SoldeviSimulacrum copy() { + return new SoldeviSimulacrum(this); + } +} From 18cc8735d660d73db68860beccb2bf1eb2c781e3 Mon Sep 17 00:00:00 2001 From: LoneFox Date: Thu, 11 Jun 2015 11:08:55 +0300 Subject: [PATCH 06/10] Implement cards: Disrupt, Guided Strike, Spiketail Drakeling, Symbiosis --- Mage.Sets/src/mage/sets/invasion/Disrupt.java | 77 +++++++++++++++++++ .../src/mage/sets/judgment/GuidedStrike.java | 53 +++++++++++++ .../sets/timespiral/SpiketailDrakeling.java | 75 ++++++++++++++++++ .../src/mage/sets/urzassaga/Symbiosis.java | 62 +++++++++++++++ .../src/mage/sets/weatherlight/Disrupt.java | 55 +++++++++++++ .../mage/sets/weatherlight/GuidedStrike.java | 68 ++++++++++++++++ 6 files changed, 390 insertions(+) create mode 100644 Mage.Sets/src/mage/sets/invasion/Disrupt.java create mode 100644 Mage.Sets/src/mage/sets/judgment/GuidedStrike.java create mode 100644 Mage.Sets/src/mage/sets/timespiral/SpiketailDrakeling.java create mode 100644 Mage.Sets/src/mage/sets/urzassaga/Symbiosis.java create mode 100644 Mage.Sets/src/mage/sets/weatherlight/Disrupt.java create mode 100644 Mage.Sets/src/mage/sets/weatherlight/GuidedStrike.java diff --git a/Mage.Sets/src/mage/sets/invasion/Disrupt.java b/Mage.Sets/src/mage/sets/invasion/Disrupt.java new file mode 100644 index 00000000000..8a4718a3498 --- /dev/null +++ b/Mage.Sets/src/mage/sets/invasion/Disrupt.java @@ -0,0 +1,77 @@ +/* + * 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.invasion; + +import java.util.UUID; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.CounterTargetEffect; +import mage.abilities.effects.common.CounterUnlessPaysEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.filter.FilterSpell; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.target.TargetSpell; + +/** + * + * @author LoneFox + + */ +public class Disrupt extends CardImpl { + + private static final FilterSpell filter = new FilterSpell("instant or sorcery spell"); + + static { + filter.add(Predicates.or( + new CardTypePredicate(CardType.INSTANT), + new CardTypePredicate(CardType.SORCERY))); + } + + public Disrupt(UUID ownerId) { + super(ownerId, 51, "Disrupt", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{U}"); + this.expansionSetCode = "INV"; + + // Counter target instant or sorcery spell unless its controller pays {1}. + this.getSpellAbility().addTarget(new TargetSpell(filter)); + this.getSpellAbility().addEffect(new CounterUnlessPaysEffect(new GenericManaCost(1))); + // Draw a card. + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); + } + + public Disrupt(final Disrupt card) { + super(card); + } + + @Override + public Disrupt copy() { + return new Disrupt(this); + } +} diff --git a/Mage.Sets/src/mage/sets/judgment/GuidedStrike.java b/Mage.Sets/src/mage/sets/judgment/GuidedStrike.java new file mode 100644 index 00000000000..7545602758c --- /dev/null +++ b/Mage.Sets/src/mage/sets/judgment/GuidedStrike.java @@ -0,0 +1,53 @@ +/* + * 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.judgment; + +import java.util.UUID; + +/** + * + * @author LoneFox + + */ +public class GuidedStrike extends mage.sets.weatherlight.GuidedStrike { + + public GuidedStrike(UUID ownerId) { + super(ownerId); + this.cardNumber = 13; + this.expansionSetCode = "JUD"; + } + + public GuidedStrike(final GuidedStrike card) { + super(card); + } + + @Override + public GuidedStrike copy() { + return new GuidedStrike(this); + } +} diff --git a/Mage.Sets/src/mage/sets/timespiral/SpiketailDrakeling.java b/Mage.Sets/src/mage/sets/timespiral/SpiketailDrakeling.java new file mode 100644 index 00000000000..68b414e1ef1 --- /dev/null +++ b/Mage.Sets/src/mage/sets/timespiral/SpiketailDrakeling.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.sets.timespiral; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.CounterUnlessPaysEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.target.TargetSpell; + +/** + * + * @author LoneFox + + */ +public class SpiketailDrakeling extends CardImpl { + + public SpiketailDrakeling(UUID ownerId) { + super(ownerId, 80, "Spiketail Drakeling", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{U}{U}"); + this.expansionSetCode = "TSP"; + this.subtype.add("Drake"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + // Sacrifice Spiketail Drakeling: Counter target spell unless its controller pays {2}. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CounterUnlessPaysEffect(new GenericManaCost(2)), new SacrificeSourceCost()); ability.addTarget(new TargetSpell()); + this.addAbility(ability); + + } + + public SpiketailDrakeling(final SpiketailDrakeling card) { + super(card); + } + + @Override + public SpiketailDrakeling copy() { + return new SpiketailDrakeling(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzassaga/Symbiosis.java b/Mage.Sets/src/mage/sets/urzassaga/Symbiosis.java new file mode 100644 index 00000000000..36f382eaba4 --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzassaga/Symbiosis.java @@ -0,0 +1,62 @@ +/* + * 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.urzassaga; + +import java.util.UUID; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LoneFox + + */ +public class Symbiosis extends CardImpl { + + public Symbiosis(UUID ownerId) { + super(ownerId, 275, "Symbiosis", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{1}{G}"); + this.expansionSetCode = "USG"; + + // Two target creatures each get +2/+2 until end of turn. + this.getSpellAbility().addTarget(new TargetCreaturePermanent(2)); + this.getSpellAbility().addEffect(new BoostTargetEffect(2, 2, Duration.EndOfTurn)); + } + + public Symbiosis(final Symbiosis card) { + super(card); + } + + @Override + public Symbiosis copy() { + return new Symbiosis(this); + } +} diff --git a/Mage.Sets/src/mage/sets/weatherlight/Disrupt.java b/Mage.Sets/src/mage/sets/weatherlight/Disrupt.java new file mode 100644 index 00000000000..2e32076e0b4 --- /dev/null +++ b/Mage.Sets/src/mage/sets/weatherlight/Disrupt.java @@ -0,0 +1,55 @@ +/* + * 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.weatherlight; + +import java.util.UUID; +import mage.constants.Rarity; + +/** + * + * @author LoneFox + + */ +public class Disrupt extends mage.sets.invasion.Disrupt { + + public Disrupt(UUID ownerId) { + super(ownerId); + this.cardNumber = 37; + this.expansionSetCode = "WTH"; + this.rarity = Rarity.COMMON; + } + + public Disrupt(final Disrupt card) { + super(card); + } + + @Override + public Disrupt copy() { + return new Disrupt(this); + } +} diff --git a/Mage.Sets/src/mage/sets/weatherlight/GuidedStrike.java b/Mage.Sets/src/mage/sets/weatherlight/GuidedStrike.java new file mode 100644 index 00000000000..ed0d7f126bf --- /dev/null +++ b/Mage.Sets/src/mage/sets/weatherlight/GuidedStrike.java @@ -0,0 +1,68 @@ +/* + * 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.weatherlight; + +import java.util.UUID; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.keyword.FirstStrikeAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.target.common.TargetCreaturePermanent; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; + +/** + * + * @author LoneFox + + */ +public class GuidedStrike extends CardImpl { + + public GuidedStrike(UUID ownerId) { + super(ownerId, 132, "Guided Strike", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{1}{W}"); + this.expansionSetCode = "WTH"; + + // Target creature gets +1/+0 and gains first strike until end of turn. + this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 1)); + this.getSpellAbility().addEffect(new BoostTargetEffect(1, 0, Duration.EndOfTurn)); + this.getSpellAbility().addEffect(new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn)); + // Draw a card. + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); + } + + public GuidedStrike(final GuidedStrike card) { + super(card); + } + + @Override + public GuidedStrike copy() { + return new GuidedStrike(this); + } +} From da6209f21fdcaa08c76578d373ea83589baf3604 Mon Sep 17 00:00:00 2001 From: LoneFox Date: Thu, 11 Jun 2015 11:59:12 +0300 Subject: [PATCH 07/10] Add missing image variants for Goblin Grenade, Hymn to Tourach, Icatian Javelineers, and Night Soil --- .../mage/sets/commander2013/NightSoil.java | 2 +- .../elspethvskiora/IcatianJavelineers.java | 2 +- ...GoblinGrenade.java => GoblinGrenade1.java} | 10 ++-- .../sets/fallenempires/GoblinGrenade2.java | 54 ++++++++++++++++++ .../sets/fallenempires/GoblinGrenade3.java | 54 ++++++++++++++++++ ...HymnToTourach.java => HymnToTourach1.java} | 10 ++-- .../sets/fallenempires/HymnToTourach2.java | 56 +++++++++++++++++++ .../sets/fallenempires/HymnToTourach3.java | 56 +++++++++++++++++++ .../sets/fallenempires/HymnToTourach4.java | 56 +++++++++++++++++++ ...elineers.java => IcatianJavelineers1.java} | 10 ++-- .../fallenempires/IcatianJavelineers2.java | 52 +++++++++++++++++ .../fallenempires/IcatianJavelineers3.java | 52 +++++++++++++++++ .../{NightSoil.java => NightSoil1.java} | 10 ++-- .../mage/sets/fallenempires/NightSoil2.java | 52 +++++++++++++++++ .../mage/sets/fallenempires/NightSoil3.java | 52 +++++++++++++++++ .../sets/mastersedition/HymnToTourach.java | 2 +- .../masterseditionii/IcatianJavelineers.java | 2 +- .../mage/sets/masterseditionii/NightSoil.java | 2 +- .../sets/timeshifted/IcatianJavelineers.java | 2 +- .../sets/vintagemasters/HymnToTourach.java | 2 +- .../sets/wpngateway/IcatianJavelineers.java | 2 +- 21 files changed, 512 insertions(+), 28 deletions(-) rename Mage.Sets/src/mage/sets/fallenempires/{GoblinGrenade.java => GoblinGrenade1.java} (86%) create mode 100644 Mage.Sets/src/mage/sets/fallenempires/GoblinGrenade2.java create mode 100644 Mage.Sets/src/mage/sets/fallenempires/GoblinGrenade3.java rename Mage.Sets/src/mage/sets/fallenempires/{HymnToTourach.java => HymnToTourach1.java} (91%) create mode 100644 Mage.Sets/src/mage/sets/fallenempires/HymnToTourach2.java create mode 100644 Mage.Sets/src/mage/sets/fallenempires/HymnToTourach3.java create mode 100644 Mage.Sets/src/mage/sets/fallenempires/HymnToTourach4.java rename Mage.Sets/src/mage/sets/fallenempires/{IcatianJavelineers.java => IcatianJavelineers1.java} (93%) create mode 100644 Mage.Sets/src/mage/sets/fallenempires/IcatianJavelineers2.java create mode 100644 Mage.Sets/src/mage/sets/fallenempires/IcatianJavelineers3.java rename Mage.Sets/src/mage/sets/fallenempires/{NightSoil.java => NightSoil1.java} (91%) create mode 100644 Mage.Sets/src/mage/sets/fallenempires/NightSoil2.java create mode 100644 Mage.Sets/src/mage/sets/fallenempires/NightSoil3.java diff --git a/Mage.Sets/src/mage/sets/commander2013/NightSoil.java b/Mage.Sets/src/mage/sets/commander2013/NightSoil.java index b7e0c197361..b83edbc8648 100644 --- a/Mage.Sets/src/mage/sets/commander2013/NightSoil.java +++ b/Mage.Sets/src/mage/sets/commander2013/NightSoil.java @@ -33,7 +33,7 @@ import java.util.UUID; * * @author LevelX2 */ -public class NightSoil extends mage.sets.fallenempires.NightSoil { +public class NightSoil extends mage.sets.fallenempires.NightSoil1 { public NightSoil(UUID ownerId) { super(ownerId); diff --git a/Mage.Sets/src/mage/sets/elspethvskiora/IcatianJavelineers.java b/Mage.Sets/src/mage/sets/elspethvskiora/IcatianJavelineers.java index 259b571d0da..bbde1977f58 100644 --- a/Mage.Sets/src/mage/sets/elspethvskiora/IcatianJavelineers.java +++ b/Mage.Sets/src/mage/sets/elspethvskiora/IcatianJavelineers.java @@ -33,7 +33,7 @@ import java.util.UUID; * * @author fireshoes */ -public class IcatianJavelineers extends mage.sets.fallenempires.IcatianJavelineers { +public class IcatianJavelineers extends mage.sets.fallenempires.IcatianJavelineers1 { public IcatianJavelineers(UUID ownerId) { super(ownerId); diff --git a/Mage.Sets/src/mage/sets/fallenempires/GoblinGrenade.java b/Mage.Sets/src/mage/sets/fallenempires/GoblinGrenade1.java similarity index 86% rename from Mage.Sets/src/mage/sets/fallenempires/GoblinGrenade.java rename to Mage.Sets/src/mage/sets/fallenempires/GoblinGrenade1.java index 0396099817d..9a8e8e4cf68 100644 --- a/Mage.Sets/src/mage/sets/fallenempires/GoblinGrenade.java +++ b/Mage.Sets/src/mage/sets/fallenempires/GoblinGrenade1.java @@ -34,21 +34,21 @@ import mage.constants.Rarity; * * @author North */ -public class GoblinGrenade extends mage.sets.magic2012.GoblinGrenade { +public class GoblinGrenade1 extends mage.sets.magic2012.GoblinGrenade { - public GoblinGrenade(UUID ownerId) { + public GoblinGrenade1(UUID ownerId) { super(ownerId); this.cardNumber = 114; this.expansionSetCode = "FEM"; this.rarity = Rarity.COMMON; } - public GoblinGrenade(final GoblinGrenade card) { + public GoblinGrenade1(final GoblinGrenade1 card) { super(card); } @Override - public GoblinGrenade copy() { - return new GoblinGrenade(this); + public GoblinGrenade1 copy() { + return new GoblinGrenade1(this); } } diff --git a/Mage.Sets/src/mage/sets/fallenempires/GoblinGrenade2.java b/Mage.Sets/src/mage/sets/fallenempires/GoblinGrenade2.java new file mode 100644 index 00000000000..a62d5202ee2 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/GoblinGrenade2.java @@ -0,0 +1,54 @@ +/* + * 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.fallenempires; + +import java.util.UUID; +import mage.constants.Rarity; + +/** + * + * @author North + */ +public class GoblinGrenade2 extends mage.sets.magic2012.GoblinGrenade { + + public GoblinGrenade2(UUID ownerId) { + super(ownerId); + this.cardNumber = 115; + this.expansionSetCode = "FEM"; + this.rarity = Rarity.COMMON; + } + + public GoblinGrenade2(final GoblinGrenade2 card) { + super(card); + } + + @Override + public GoblinGrenade2 copy() { + return new GoblinGrenade2(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/GoblinGrenade3.java b/Mage.Sets/src/mage/sets/fallenempires/GoblinGrenade3.java new file mode 100644 index 00000000000..752f2d3062c --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/GoblinGrenade3.java @@ -0,0 +1,54 @@ +/* + * 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.fallenempires; + +import java.util.UUID; +import mage.constants.Rarity; + +/** + * + * @author North + */ +public class GoblinGrenade3 extends mage.sets.magic2012.GoblinGrenade { + + public GoblinGrenade3(UUID ownerId) { + super(ownerId); + this.cardNumber = 116; + this.expansionSetCode = "FEM"; + this.rarity = Rarity.COMMON; + } + + public GoblinGrenade3(final GoblinGrenade3 card) { + super(card); + } + + @Override + public GoblinGrenade3 copy() { + return new GoblinGrenade3(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/HymnToTourach.java b/Mage.Sets/src/mage/sets/fallenempires/HymnToTourach1.java similarity index 91% rename from Mage.Sets/src/mage/sets/fallenempires/HymnToTourach.java rename to Mage.Sets/src/mage/sets/fallenempires/HymnToTourach1.java index 314a045ff79..ae9ec58249c 100644 --- a/Mage.Sets/src/mage/sets/fallenempires/HymnToTourach.java +++ b/Mage.Sets/src/mage/sets/fallenempires/HymnToTourach1.java @@ -38,9 +38,9 @@ import mage.target.TargetPlayer; * * @author jonubuu */ -public class HymnToTourach extends CardImpl { +public class HymnToTourach1 extends CardImpl { - public HymnToTourach(UUID ownerId) { + public HymnToTourach1(UUID ownerId) { super(ownerId, 12, "Hymn to Tourach", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{B}{B}"); this.expansionSetCode = "FEM"; @@ -50,12 +50,12 @@ public class HymnToTourach extends CardImpl { this.getSpellAbility().addTarget(new TargetPlayer()); } - public HymnToTourach(final HymnToTourach card) { + public HymnToTourach1(final HymnToTourach1 card) { super(card); } @Override - public HymnToTourach copy() { - return new HymnToTourach(this); + public HymnToTourach1 copy() { + return new HymnToTourach1(this); } } diff --git a/Mage.Sets/src/mage/sets/fallenempires/HymnToTourach2.java b/Mage.Sets/src/mage/sets/fallenempires/HymnToTourach2.java new file mode 100644 index 00000000000..e500765ff1d --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/HymnToTourach2.java @@ -0,0 +1,56 @@ +/* + * 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.fallenempires; + +import java.util.UUID; +import mage.abilities.effects.common.discard.DiscardTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.target.TargetPlayer; + +/** + * + * @author jonubuu + */ +public class HymnToTourach2 extends mage.sets.fallenempires.HymnToTourach1 { + + public HymnToTourach2(UUID ownerId) { + super(ownerId); + this.cardNumber = 13; + } + + public HymnToTourach2(final HymnToTourach2 card) { + super(card); + } + + @Override + public HymnToTourach2 copy() { + return new HymnToTourach2(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/HymnToTourach3.java b/Mage.Sets/src/mage/sets/fallenempires/HymnToTourach3.java new file mode 100644 index 00000000000..b48d4ff5517 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/HymnToTourach3.java @@ -0,0 +1,56 @@ +/* + * 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.fallenempires; + +import java.util.UUID; +import mage.abilities.effects.common.discard.DiscardTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.target.TargetPlayer; + +/** + * + * @author jonubuu + */ +public class HymnToTourach3 extends mage.sets.fallenempires.HymnToTourach1 { + + public HymnToTourach3(UUID ownerId) { + super(ownerId); + this.cardNumber = 14; + } + + public HymnToTourach3(final HymnToTourach3 card) { + super(card); + } + + @Override + public HymnToTourach3 copy() { + return new HymnToTourach3(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/HymnToTourach4.java b/Mage.Sets/src/mage/sets/fallenempires/HymnToTourach4.java new file mode 100644 index 00000000000..591b97f8789 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/HymnToTourach4.java @@ -0,0 +1,56 @@ +/* + * 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.fallenempires; + +import java.util.UUID; +import mage.abilities.effects.common.discard.DiscardTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.target.TargetPlayer; + +/** + * + * @author jonubuu + */ +public class HymnToTourach4 extends mage.sets.fallenempires.HymnToTourach1 { + + public HymnToTourach4(UUID ownerId) { + super(ownerId); + this.cardNumber = 15; + } + + public HymnToTourach4(final HymnToTourach4 card) { + super(card); + } + + @Override + public HymnToTourach4 copy() { + return new HymnToTourach4(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/IcatianJavelineers.java b/Mage.Sets/src/mage/sets/fallenempires/IcatianJavelineers1.java similarity index 93% rename from Mage.Sets/src/mage/sets/fallenempires/IcatianJavelineers.java rename to Mage.Sets/src/mage/sets/fallenempires/IcatianJavelineers1.java index e525ddff687..a3a36e41680 100644 --- a/Mage.Sets/src/mage/sets/fallenempires/IcatianJavelineers.java +++ b/Mage.Sets/src/mage/sets/fallenempires/IcatianJavelineers1.java @@ -47,9 +47,9 @@ import mage.target.common.TargetCreatureOrPlayer; * * @author fireshoes */ -public class IcatianJavelineers extends CardImpl { +public class IcatianJavelineers1 extends CardImpl { - public IcatianJavelineers(UUID ownerId) { + public IcatianJavelineers1(UUID ownerId) { super(ownerId, 148, "Icatian Javelineers", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{W}"); this.expansionSetCode = "FEM"; this.subtype.add("Human"); @@ -67,12 +67,12 @@ public class IcatianJavelineers extends CardImpl { this.addAbility(ability); } - public IcatianJavelineers(final IcatianJavelineers card) { + public IcatianJavelineers1(final IcatianJavelineers1 card) { super(card); } @Override - public IcatianJavelineers copy() { - return new IcatianJavelineers(this); + public IcatianJavelineers1 copy() { + return new IcatianJavelineers1(this); } } diff --git a/Mage.Sets/src/mage/sets/fallenempires/IcatianJavelineers2.java b/Mage.Sets/src/mage/sets/fallenempires/IcatianJavelineers2.java new file mode 100644 index 00000000000..793fe6afae1 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/IcatianJavelineers2.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.timeshifted; + +import java.util.UUID; +import mage.constants.Rarity; + +/** + * + * @author fireshoes + */ +public class IcatianJavelineers2 extends mage.sets.fallenempires.IcatianJavelineers1 { + + public IcatianJavelineers2(UUID ownerId) { + super(ownerId); + this.cardNumber = 149; + } + + public IcatianJavelineers2(final IcatianJavelineers2 card) { + super(card); + } + + @Override + public IcatianJavelineers2 copy() { + return new IcatianJavelineers2(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/IcatianJavelineers3.java b/Mage.Sets/src/mage/sets/fallenempires/IcatianJavelineers3.java new file mode 100644 index 00000000000..85649357295 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/IcatianJavelineers3.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.timeshifted; + +import java.util.UUID; +import mage.constants.Rarity; + +/** + * + * @author fireshoes + */ +public class IcatianJavelineers3 extends mage.sets.fallenempires.IcatianJavelineers1 { + + public IcatianJavelineers3(UUID ownerId) { + super(ownerId); + this.cardNumber = 150; + } + + public IcatianJavelineers3(final IcatianJavelineers3 card) { + super(card); + } + + @Override + public IcatianJavelineers3 copy() { + return new IcatianJavelineers3(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/NightSoil.java b/Mage.Sets/src/mage/sets/fallenempires/NightSoil1.java similarity index 91% rename from Mage.Sets/src/mage/sets/fallenempires/NightSoil.java rename to Mage.Sets/src/mage/sets/fallenempires/NightSoil1.java index aa9118664a2..f31f9bfcb00 100644 --- a/Mage.Sets/src/mage/sets/fallenempires/NightSoil.java +++ b/Mage.Sets/src/mage/sets/fallenempires/NightSoil1.java @@ -45,9 +45,9 @@ import mage.target.common.TargetCardInASingleGraveyard; * * @author LevelX2 */ -public class NightSoil extends CardImpl { +public class NightSoil1 extends CardImpl { - public NightSoil(UUID ownerId) { + public NightSoil1(UUID ownerId) { super(ownerId, 80, "Night Soil", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{G}{G}"); this.expansionSetCode = "FEM"; @@ -58,12 +58,12 @@ public class NightSoil extends CardImpl { this.addAbility(ability); } - public NightSoil(final NightSoil card) { + public NightSoil1(final NightSoil1 card) { super(card); } @Override - public NightSoil copy() { - return new NightSoil(this); + public NightSoil1 copy() { + return new NightSoil1(this); } } diff --git a/Mage.Sets/src/mage/sets/fallenempires/NightSoil2.java b/Mage.Sets/src/mage/sets/fallenempires/NightSoil2.java new file mode 100644 index 00000000000..09706ba97b5 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/NightSoil2.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.masterseditionii; + +import java.util.UUID; +import mage.constants.Rarity; + +/** + * + * @author LevelX2 + */ +public class NightSoil2 extends mage.sets.fallenempires.NightSoil1 { + + public NightSoil2(UUID ownerId) { + super(ownerId); + this.cardNumber = 81; + } + + public NightSoil2(final NightSoil2 card) { + super(card); + } + + @Override + public NightSoil2 copy() { + return new NightSoil2(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/NightSoil3.java b/Mage.Sets/src/mage/sets/fallenempires/NightSoil3.java new file mode 100644 index 00000000000..7289331f5f6 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/NightSoil3.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.masterseditionii; + +import java.util.UUID; +import mage.constants.Rarity; + +/** + * + * @author LevelX2 + */ +public class NightSoil3 extends mage.sets.fallenempires.NightSoil1 { + + public NightSoil3(UUID ownerId) { + super(ownerId); + this.cardNumber = 82; + } + + public NightSoil3(final NightSoil3 card) { + super(card); + } + + @Override + public NightSoil3 copy() { + return new NightSoil3(this); + } +} diff --git a/Mage.Sets/src/mage/sets/mastersedition/HymnToTourach.java b/Mage.Sets/src/mage/sets/mastersedition/HymnToTourach.java index 1d8d6d5d373..21e4af02e9f 100644 --- a/Mage.Sets/src/mage/sets/mastersedition/HymnToTourach.java +++ b/Mage.Sets/src/mage/sets/mastersedition/HymnToTourach.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; * * @author LevelX2 */ -public class HymnToTourach extends mage.sets.fallenempires.HymnToTourach { +public class HymnToTourach extends mage.sets.fallenempires.HymnToTourach1 { public HymnToTourach(UUID ownerId) { super(ownerId); diff --git a/Mage.Sets/src/mage/sets/masterseditionii/IcatianJavelineers.java b/Mage.Sets/src/mage/sets/masterseditionii/IcatianJavelineers.java index cd8d2c60232..5df5c74144e 100644 --- a/Mage.Sets/src/mage/sets/masterseditionii/IcatianJavelineers.java +++ b/Mage.Sets/src/mage/sets/masterseditionii/IcatianJavelineers.java @@ -33,7 +33,7 @@ import java.util.UUID; * * @author LevelX2 */ -public class IcatianJavelineers extends mage.sets.fallenempires.IcatianJavelineers { +public class IcatianJavelineers extends mage.sets.fallenempires.IcatianJavelineers1 { public IcatianJavelineers(UUID ownerId) { super(ownerId); diff --git a/Mage.Sets/src/mage/sets/masterseditionii/NightSoil.java b/Mage.Sets/src/mage/sets/masterseditionii/NightSoil.java index bfd1a3da304..17998657fbb 100644 --- a/Mage.Sets/src/mage/sets/masterseditionii/NightSoil.java +++ b/Mage.Sets/src/mage/sets/masterseditionii/NightSoil.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; * * @author LevelX2 */ -public class NightSoil extends mage.sets.fallenempires.NightSoil { +public class NightSoil extends mage.sets.fallenempires.NightSoil1 { public NightSoil(UUID ownerId) { super(ownerId); diff --git a/Mage.Sets/src/mage/sets/timeshifted/IcatianJavelineers.java b/Mage.Sets/src/mage/sets/timeshifted/IcatianJavelineers.java index 39aa3d2541f..c2868996632 100644 --- a/Mage.Sets/src/mage/sets/timeshifted/IcatianJavelineers.java +++ b/Mage.Sets/src/mage/sets/timeshifted/IcatianJavelineers.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; * * @author fireshoes */ -public class IcatianJavelineers extends mage.sets.fallenempires.IcatianJavelineers { +public class IcatianJavelineers extends mage.sets.fallenempires.IcatianJavelineers1 { public IcatianJavelineers(UUID ownerId) { super(ownerId); diff --git a/Mage.Sets/src/mage/sets/vintagemasters/HymnToTourach.java b/Mage.Sets/src/mage/sets/vintagemasters/HymnToTourach.java index 8d891d3d838..c2aabdb54e0 100644 --- a/Mage.Sets/src/mage/sets/vintagemasters/HymnToTourach.java +++ b/Mage.Sets/src/mage/sets/vintagemasters/HymnToTourach.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; * * @author LevelX2 */ -public class HymnToTourach extends mage.sets.fallenempires.HymnToTourach { +public class HymnToTourach extends mage.sets.fallenempires.HymnToTourach1 { public HymnToTourach(UUID ownerId) { super(ownerId); diff --git a/Mage.Sets/src/mage/sets/wpngateway/IcatianJavelineers.java b/Mage.Sets/src/mage/sets/wpngateway/IcatianJavelineers.java index dab3bbbc363..c70e020699e 100644 --- a/Mage.Sets/src/mage/sets/wpngateway/IcatianJavelineers.java +++ b/Mage.Sets/src/mage/sets/wpngateway/IcatianJavelineers.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; * * @author fireshoes */ -public class IcatianJavelineers extends mage.sets.fallenempires.IcatianJavelineers { +public class IcatianJavelineers extends mage.sets.fallenempires.IcatianJavelineers1 { public IcatianJavelineers(UUID ownerId) { super(ownerId); From 81108be3466ad55ebbc1ae11895c512013b1f663 Mon Sep 17 00:00:00 2001 From: LoneFox Date: Thu, 11 Jun 2015 13:08:17 +0300 Subject: [PATCH 08/10] Fix Guided Strike tooltip text --- Mage.Sets/src/mage/sets/weatherlight/GuidedStrike.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Mage.Sets/src/mage/sets/weatherlight/GuidedStrike.java b/Mage.Sets/src/mage/sets/weatherlight/GuidedStrike.java index ed0d7f126bf..3728ecb59e9 100644 --- a/Mage.Sets/src/mage/sets/weatherlight/GuidedStrike.java +++ b/Mage.Sets/src/mage/sets/weatherlight/GuidedStrike.java @@ -30,6 +30,7 @@ package mage.sets.weatherlight; import java.util.UUID; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.effects.Effect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.constants.CardType; @@ -51,8 +52,12 @@ public class GuidedStrike extends CardImpl { // Target creature gets +1/+0 and gains first strike until end of turn. this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 1)); - this.getSpellAbility().addEffect(new BoostTargetEffect(1, 0, Duration.EndOfTurn)); - this.getSpellAbility().addEffect(new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn)); + Effect effect = new BoostTargetEffect(1, 0, Duration.EndOfTurn); + effect.setText("Target creature gets +1/+0"); + this.getSpellAbility().addEffect(effect); + effect = new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn); + effect.setText("and gains first strike until end of turn"); + this.getSpellAbility().addEffect(effect); // Draw a card. this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); } From 3d59c57b0e4f36ce1c003b7b374630951dda2c19 Mon Sep 17 00:00:00 2001 From: LoneFox Date: Thu, 11 Jun 2015 14:23:55 +0300 Subject: [PATCH 09/10] Fix NullPointerException when a random discard effect is applied to a player with empty hand. --- Mage/src/mage/players/PlayerImpl.java | 68 ++++++++++++++------------- 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/Mage/src/mage/players/PlayerImpl.java b/Mage/src/mage/players/PlayerImpl.java index a9fb708017f..79702411d24 100644 --- a/Mage/src/mage/players/PlayerImpl.java +++ b/Mage/src/mage/players/PlayerImpl.java @@ -216,14 +216,14 @@ public abstract class PlayerImpl implements Player, Serializable { protected boolean topCardRevealed = false; // 800.4i When a player leaves the game, any continuous effects with durations that last until that player's next turn - // or until a specific point in that turn will last until that turn would have begun. + // or until a specific point in that turn will last until that turn would have begun. // They neither expire immediately nor last indefinitely. protected boolean reachedNextTurnAfterLeaving = false; // indicates that the spell with the set sourceId can be cast with an alternate mana costs (can also be no mana costs) protected UUID castSourceIdWithAlternateMana; protected ManaCosts castSourceIdManaCosts; - + // indicates that the player is in mana payment phase protected boolean payManaMode = false; @@ -369,7 +369,7 @@ public abstract class PlayerImpl implements Player, Serializable { this.canPaySacrificeCost = player.canPaySacrificeCost(); this.loseByZeroOrLessLife = player.canLoseByZeroOrLessLife(); this.canPlayCardsFromGraveyard = player.canPlayCardsFromGraveyard(); - this.alternativeSourceCosts.addAll(player.getAlternativeSourceCosts()); + this.alternativeSourceCosts.addAll(player.getAlternativeSourceCosts()); this.topCardRevealed = player.isTopCardRevealed(); this.playersUnderYourControl.clear(); @@ -444,7 +444,7 @@ public abstract class PlayerImpl implements Player, Serializable { this.payManaMode = false; this.setLife(game.getLife(), game); this.setReachedNextTurnAfterLeaving(false); - + this.castSourceIdWithAlternateMana = null; this.castSourceIdManaCosts = null; } @@ -575,7 +575,7 @@ public abstract class PlayerImpl implements Player, Serializable { /** * returns true if the player has the control itself - false if the player is controlled by another player - * @return + * @return */ @Override public boolean isGameUnderControl() { @@ -704,8 +704,10 @@ public abstract class PlayerImpl implements Player, Serializable { if (random) { for (int i = 0; i < amount; i++) { Card card = this.getHand().getRandom(game); - discardedCards.add(card); - discard(card, source, game); + if(card != null) { + discardedCards.add(card); + discard(card, source, game); + } } } else { TargetDiscard target = new TargetDiscard(amount, amount, new FilterCard(CardUtil.numberToText(amount, "a") + " card" + (amount > 1 ? "s" : "")), playerId); @@ -802,7 +804,7 @@ public abstract class PlayerImpl implements Player, Serializable { attachedToPlayer.removeAttachment(permanent, game); } } - + } if (permanent.getPairedCard() != null) { Permanent pairedCard = game.getPermanent(permanent.getPairedCard()); @@ -876,7 +878,7 @@ public abstract class PlayerImpl implements Player, Serializable { while (isInGame() && cards.size() > 1) { this.choose(Outcome.Neutral, cards, target, game); UUID targetObjectId = target.getFirstTarget(); - cards.remove(targetObjectId); + cards.remove(targetObjectId); moveObjectToLibrary(targetObjectId, source.getSourceId(), game, true, false); target.clearChosen(); } @@ -917,7 +919,7 @@ public abstract class PlayerImpl implements Player, Serializable { return castSourceIdManaCosts; } - + @Override public boolean isInPayManaMode() { return payManaMode; @@ -947,7 +949,7 @@ public abstract class PlayerImpl implements Player, Serializable { spellAbility.getManaCosts().add(alternateCosts.copy()); spellAbility.getManaCostsToPay().clear(); spellAbility.getManaCostsToPay().add(alternateCosts.copy()); - } + } } setCastSourceIdWithAlternateMana(null, null); if (spell.activate(game, noMana)) { @@ -1528,7 +1530,7 @@ public abstract class PlayerImpl implements Player, Serializable { @Override public String getLogName() { - return GameLog.getColoredPlayerName(name); + return GameLog.getColoredPlayerName(name); } @Override @@ -1669,11 +1671,11 @@ public abstract class PlayerImpl implements Player, Serializable { sourceControllerId = ((Spell) source).getControllerId(); } else if (source instanceof Card) { sourceAbilities = ((Card) source).getAbilities(game); - sourceControllerId = ((Card) source).getOwnerId(); + sourceControllerId = ((Card) source).getOwnerId(); } else if (source instanceof CommandObject){ sourceControllerId = ((CommandObject) source).getControllerId(); sourceAbilities = ((CommandObject) source).getAbilities(); - } + } } else { sourceAbilities = ((Permanent) source).getAbilities(game); sourceControllerId = ((Permanent) source).getControllerId(); @@ -2426,7 +2428,7 @@ public abstract class PlayerImpl implements Player, Serializable { if (game.getContinuousEffects().asThough(card.getId(), AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, this.getId(), game)) { for (Ability ability : card.getAbilities()) { if (ability.getZone().match(Zone.HAND)) { - ability.setControllerId(this.getId()); // controller must be set for case owner != caster + ability.setControllerId(this.getId()); // controller must be set for case owner != caster if (ability instanceof ActivatedAbility) { if (((ActivatedAbility) ability).canActivate(playerId, game)) { playable.add(ability); @@ -2537,7 +2539,7 @@ public abstract class PlayerImpl implements Player, Serializable { * @return */ private boolean shouldSkipGettingPlayable(Game game) { - if (game.getStep() == null) { // happens at the start of the game + if (game.getStep() == null) { // happens at the start of the game return true; } for (Entry phaseStep : silentPhaseSteps.entrySet()) { @@ -2841,16 +2843,16 @@ public abstract class PlayerImpl implements Player, Serializable { cardList.addAll(cards.getCards(game)); return moveCards(cardList, fromZone, toZone, source, game); } - + @Override public boolean moveCards(Card card, Zone fromZone, Zone toZone, Ability source, Game game) { ArrayList cardList = new ArrayList<>(); if (card != null) { cardList.add(card); } - return moveCards(cardList, fromZone, toZone, source, game); + return moveCards(cardList, fromZone, toZone, source, game); } - + @Override public boolean moveCards(List cards, Zone fromZone, Zone toZone, Ability source, Game game) { if (cards.isEmpty()) { @@ -2858,13 +2860,13 @@ public abstract class PlayerImpl implements Player, Serializable { } game.fireEvent(new ZoneChangeGroupEvent(cards, source == null ? null : source.getSourceId(), this.getId(), fromZone, toZone)); switch(toZone) { - case EXILED: + case EXILED: boolean result = false; for(Card card: cards) { result |= moveCardToExileWithInfo(card, null, "", source == null ? null : source.getSourceId(), game, fromZone, true); } - return result; - case GRAVEYARD: + return result; + case GRAVEYARD: return moveCardsToGraveyardWithInfo(cards, source, game, fromZone); case HAND: result = false; @@ -2874,9 +2876,9 @@ public abstract class PlayerImpl implements Player, Serializable { return result; default: throw new UnsupportedOperationException("to Zone not supported yet"); - } + } } - + @Override public boolean moveCardToHandWithInfo(Card card, UUID sourceId, Game game, Zone fromZone) { return this.moveCardToHandWithInfo(card, sourceId, game, fromZone, true); @@ -2898,7 +2900,7 @@ public abstract class PlayerImpl implements Player, Serializable { default: sb.append(fromZone != null ? new StringBuilder(" from ").append(fromZone.toString().toLowerCase(Locale.ENGLISH)).append(" ") : ""); break; - } + } sb.append(card.getOwnerId().equals(this.getId()) ? "into his or her hand" : "into its owner's hand"); game.informPlayers(sb.toString()); } @@ -2906,10 +2908,10 @@ public abstract class PlayerImpl implements Player, Serializable { } return result; } - + @Override public boolean moveCardsToGraveyardWithInfo(List allCards, Ability source, Game game, Zone fromZone) { - boolean result = true; + boolean result = true; UUID sourceId = source == null ? null : source.getSourceId(); while (!allCards.isEmpty()) { // identify cards from one owner @@ -2943,10 +2945,10 @@ public abstract class PlayerImpl implements Player, Serializable { target.setRequired(true); while (choosingPlayer.isInGame() && cards.size() > 1) { choosingPlayer.chooseTarget(Outcome.Neutral, cards, target, source, game); - UUID targetObjectId = target.getFirstTarget(); + UUID targetObjectId = target.getFirstTarget(); Card card = cards.get(targetObjectId, game); - cards.remove(targetObjectId); - if (card != null) { + cards.remove(targetObjectId); + if (card != null) { result &= choosingPlayer.moveCardToGraveyardWithInfo(card, sourceId, game, fromZone); } target.clearChosen(); @@ -2959,11 +2961,11 @@ public abstract class PlayerImpl implements Player, Serializable { result &= choosingPlayer.moveCardToGraveyardWithInfo(card, sourceId, game, fromZone); } } - } + } } return result; } - + @Override public boolean moveCardToGraveyardWithInfo(Card card, UUID sourceId, Game game, Zone fromZone) { boolean result = false; @@ -3045,7 +3047,7 @@ public abstract class PlayerImpl implements Player, Serializable { public boolean putOntoBattlefieldWithInfo(Card card, Game game, Zone fromZone, UUID sourceId, boolean tapped) { return this.putOntoBattlefieldWithInfo(card, game, fromZone, sourceId, tapped, false); } - + @Override public boolean putOntoBattlefieldWithInfo(Card card, Game game, Zone fromZone, UUID sourceId, boolean tapped, boolean facedown) { boolean result = false; From eaf7e591831c3ab6a1e6aa4b906565a3763e29a3 Mon Sep 17 00:00:00 2001 From: LoneFox Date: Thu, 11 Jun 2015 14:25:07 +0300 Subject: [PATCH 10/10] Implement cards: Phyrexian Scuta, Power Matrix, and Sinister Strength --- .../sets/mercadianmasques/PowerMatrix.java | 83 ++++++++++++++++++ .../mage/sets/planeshift/PhyrexianScuta.java | 71 ++++++++++++++++ .../sets/planeshift/SinisterStrength.java | 85 +++++++++++++++++++ 3 files changed, 239 insertions(+) create mode 100644 Mage.Sets/src/mage/sets/mercadianmasques/PowerMatrix.java create mode 100644 Mage.Sets/src/mage/sets/planeshift/PhyrexianScuta.java create mode 100644 Mage.Sets/src/mage/sets/planeshift/SinisterStrength.java diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/PowerMatrix.java b/Mage.Sets/src/mage/sets/mercadianmasques/PowerMatrix.java new file mode 100644 index 00000000000..753c475ff9b --- /dev/null +++ b/Mage.Sets/src/mage/sets/mercadianmasques/PowerMatrix.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.mercadianmasques; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.effects.Effect; +import mage.abilities.keyword.FirstStrikeAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LoneFox + + */ +public class PowerMatrix extends CardImpl { + + public PowerMatrix(UUID ownerId) { + super(ownerId, 309, "Power Matrix", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{4}"); + this.expansionSetCode = "MMQ"; + + // {tap}: Target creature gets +1/+1 and gains flying, first strike, and trample until end of turn. + Effect effect = new BoostTargetEffect(1, 1, Duration.EndOfTurn); + effect.setText("Target creature gets +1/+1"); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new TapSourceCost()); + effect = new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn); + effect.setText("and gains flying,"); + ability.addEffect(effect); + effect = new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn); + effect.setText("first strike,"); + ability.addEffect(effect); + effect = new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn); + effect.setText("and trample until end of turn."); + ability.addEffect(effect); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + + public PowerMatrix(final PowerMatrix card) { + super(card); + } + + @Override + public PowerMatrix copy() { + return new PowerMatrix(this); + } +} diff --git a/Mage.Sets/src/mage/sets/planeshift/PhyrexianScuta.java b/Mage.Sets/src/mage/sets/planeshift/PhyrexianScuta.java new file mode 100644 index 00000000000..5a43de13839 --- /dev/null +++ b/Mage.Sets/src/mage/sets/planeshift/PhyrexianScuta.java @@ -0,0 +1,71 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.planeshift; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.condition.common.KickedCondition; +import mage.abilities.costs.common.PayLifeCost; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.keyword.KickerAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.counters.CounterType; + +/** + * + * @author LoneFox + + */ +public class PhyrexianScuta extends CardImpl { + + public PhyrexianScuta(UUID ownerId) { + super(ownerId, 51, "Phyrexian Scuta", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{3}{B}"); + this.expansionSetCode = "PLS"; + this.subtype.add("Zombie"); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // Kicker-Pay 3 life. + this.addAbility(new KickerAbility(new PayLifeCost(3))); + // If Phyrexian Scuta was kicked, it enters the battlefield with two +1/+1 counters on it. + this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), KickedCondition.getInstance(), + true, "If Phyrexian Scuta was kicked, it enters the battlefield with two +1/+1 counters on it.", "")); + } + + public PhyrexianScuta(final PhyrexianScuta card) { + super(card); + } + + @Override + public PhyrexianScuta copy() { + return new PhyrexianScuta(this); + } +} diff --git a/Mage.Sets/src/mage/sets/planeshift/SinisterStrength.java b/Mage.Sets/src/mage/sets/planeshift/SinisterStrength.java new file mode 100644 index 00000000000..56b6eda461f --- /dev/null +++ b/Mage.Sets/src/mage/sets/planeshift/SinisterStrength.java @@ -0,0 +1,85 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.planeshift; + +import java.util.UUID; +import mage.ObjectColor; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.continuous.BoostEnchantedEffect; +import mage.abilities.effects.common.continuous.SetCardColorAttachedEffect; +import mage.abilities.keyword.EnchantAbility; +import mage.cards.CardImpl; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.target.TargetPermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LoneFox + + */ +public class SinisterStrength extends CardImpl { + + public SinisterStrength(UUID ownerId) { + super(ownerId, 54, "Sinister Strength", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{1}{B}"); + this.expansionSetCode = "PLS"; + this.subtype.add("Aura"); + + // Enchant creature + TargetPermanent auraTarget = new TargetCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + // Enchanted creature gets +3/+1 and is black. + Effect effect = new BoostEnchantedEffect(3, 1); + effect.setText("Enchanted creature gets +3/+1"); + ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect); + effect = new SetCardColorAttachedEffect(ObjectColor.BLACK, Duration.WhileOnBattlefield, AttachmentType.AURA); + effect.setText("and is black"); + ability.addEffect(effect); + this.addAbility(ability); + } + + public SinisterStrength(final SinisterStrength card) { + super(card); + } + + @Override + public SinisterStrength copy() { + return new SinisterStrength(this); + } +}