From 78cb3c10d90418be1522f7295054fc02387c1e50 Mon Sep 17 00:00:00 2001 From: North Date: Wed, 11 Jul 2012 08:38:03 +0300 Subject: [PATCH] Added cards submitted by Backfir3 --- .../sets/eighthedition/BloodshotCyclops.java | 52 ++++++++ .../src/mage/sets/eighthedition/LoneWolf.java | 54 ++++++++ .../src/mage/sets/eighthedition/Rhox.java | 1 + .../sets/eighthedition/ThornElemental.java | 52 ++++++++ .../sets/ninthedition/AncientSilverback.java | 52 ++++++++ .../src/mage/sets/tenth/ChimericStaff.java | 52 ++++++++ Mage.Sets/src/mage/sets/tenth/Rhox.java | 70 ++++++++++ .../src/mage/sets/timeshifted/HuntingMoa.java | 54 ++++++++ .../mage/sets/urzasdestiny/AetherSting.java | 99 ++++++++++++++ .../sets/urzasdestiny/AncientSilverback.java | 65 +++++++++ .../src/mage/sets/urzasdestiny/Attrition.java | 77 +++++++++++ .../sets/urzasdestiny/BlizzardElemental.java | 68 ++++++++++ .../sets/urzasdestiny/BloodshotCyclops.java | 1 + .../mage/sets/urzasdestiny/BraidwoodCup.java | 63 +++++++++ .../sets/urzasdestiny/BrassSecretary.java | 69 ++++++++++ .../sets/urzasdestiny/BubblingBeebles.java | 96 ++++++++++++++ .../sets/urzasdestiny/CapashenKnight.java | 70 ++++++++++ .../sets/urzasdestiny/CapashenTemplar.java | 68 ++++++++++ .../src/mage/sets/urzasdestiny/Extruder.java | 82 ++++++++++++ .../mage/sets/urzasdestiny/GoblinMarshal.java | 74 +++++++++++ .../mage/sets/urzasdestiny/HuntingMoa.java | 77 +++++++++++ .../sets/urzasdestiny/ThornElemental.java | 63 +++++++++ .../mage/sets/urzaslegacy/GhituSlinger.java | 72 ++++++++++ .../mage/sets/urzaslegacy/KarmicGuide.java | 88 +++++++++++++ .../src/mage/sets/urzaslegacy/LoneWolf.java | 63 +++++++++ .../src/mage/sets/urzassaga/CaveTiger.java | 65 +++++++++ .../mage/sets/urzassaga/ChimericStaff.java | 124 ++++++++++++++++++ 27 files changed, 1771 insertions(+) create mode 100644 Mage.Sets/src/mage/sets/eighthedition/BloodshotCyclops.java create mode 100644 Mage.Sets/src/mage/sets/eighthedition/LoneWolf.java create mode 100644 Mage.Sets/src/mage/sets/eighthedition/Rhox.java create mode 100644 Mage.Sets/src/mage/sets/eighthedition/ThornElemental.java create mode 100644 Mage.Sets/src/mage/sets/ninthedition/AncientSilverback.java create mode 100644 Mage.Sets/src/mage/sets/tenth/ChimericStaff.java create mode 100644 Mage.Sets/src/mage/sets/tenth/Rhox.java create mode 100644 Mage.Sets/src/mage/sets/timeshifted/HuntingMoa.java create mode 100644 Mage.Sets/src/mage/sets/urzasdestiny/AetherSting.java create mode 100644 Mage.Sets/src/mage/sets/urzasdestiny/AncientSilverback.java create mode 100644 Mage.Sets/src/mage/sets/urzasdestiny/Attrition.java create mode 100644 Mage.Sets/src/mage/sets/urzasdestiny/BlizzardElemental.java create mode 100644 Mage.Sets/src/mage/sets/urzasdestiny/BloodshotCyclops.java create mode 100644 Mage.Sets/src/mage/sets/urzasdestiny/BraidwoodCup.java create mode 100644 Mage.Sets/src/mage/sets/urzasdestiny/BrassSecretary.java create mode 100644 Mage.Sets/src/mage/sets/urzasdestiny/BubblingBeebles.java create mode 100644 Mage.Sets/src/mage/sets/urzasdestiny/CapashenKnight.java create mode 100644 Mage.Sets/src/mage/sets/urzasdestiny/CapashenTemplar.java create mode 100644 Mage.Sets/src/mage/sets/urzasdestiny/Extruder.java create mode 100644 Mage.Sets/src/mage/sets/urzasdestiny/GoblinMarshal.java create mode 100644 Mage.Sets/src/mage/sets/urzasdestiny/HuntingMoa.java create mode 100644 Mage.Sets/src/mage/sets/urzasdestiny/ThornElemental.java create mode 100644 Mage.Sets/src/mage/sets/urzaslegacy/GhituSlinger.java create mode 100644 Mage.Sets/src/mage/sets/urzaslegacy/KarmicGuide.java create mode 100644 Mage.Sets/src/mage/sets/urzaslegacy/LoneWolf.java create mode 100644 Mage.Sets/src/mage/sets/urzassaga/CaveTiger.java create mode 100644 Mage.Sets/src/mage/sets/urzassaga/ChimericStaff.java diff --git a/Mage.Sets/src/mage/sets/eighthedition/BloodshotCyclops.java b/Mage.Sets/src/mage/sets/eighthedition/BloodshotCyclops.java new file mode 100644 index 0000000000..6aebd3228c --- /dev/null +++ b/Mage.Sets/src/mage/sets/eighthedition/BloodshotCyclops.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.eighthedition; + +import java.util.UUID; + +/** + * + * @author Backfir3 + */ +public class BloodshotCyclops extends mage.sets.urzasdestiny.BloodshotCyclops { + + public BloodshotCyclops(UUID ownerId) { + super(ownerId); + this.cardNumber = 179; + this.expansionSetCode = "8ED"; + } + + public BloodshotCyclops(final BloodshotCyclops card) { + super(card); + } + + @Override + public BloodshotCyclops copy() { + return new BloodshotCyclops(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eighthedition/LoneWolf.java b/Mage.Sets/src/mage/sets/eighthedition/LoneWolf.java new file mode 100644 index 0000000000..1b379b9e1f --- /dev/null +++ b/Mage.Sets/src/mage/sets/eighthedition/LoneWolf.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.eighthedition; + +import java.util.UUID; +import mage.Constants.Rarity; + +/** + * + * @author Backfir3 + */ +public class LoneWolf extends mage.sets.urzaslegacy.LoneWolf { + + public LoneWolf(UUID ownerId) { + super(ownerId); + this.cardNumber = 262; + this.expansionSetCode = "8ED"; + this.rarity = Rarity.COMMON; + } + + public LoneWolf(final LoneWolf card) { + super(card); + } + + @Override + public LoneWolf copy() { + return new LoneWolf(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eighthedition/Rhox.java b/Mage.Sets/src/mage/sets/eighthedition/Rhox.java new file mode 100644 index 0000000000..a777e7c80a --- /dev/null +++ b/Mage.Sets/src/mage/sets/eighthedition/Rhox.java @@ -0,0 +1 @@ +/* * 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.eighthedition; import java.util.UUID; /** * * @author Backfir3 */ public class Rhox extends mage.sets.tenth.Rhox { public Rhox(UUID ownerId) { super(ownerId); this.cardNumber = 277; this.expansionSetCode = "8ED"; } public Rhox(final Rhox card) { super(card); } @Override public Rhox copy() { return new Rhox(this); } } \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/eighthedition/ThornElemental.java b/Mage.Sets/src/mage/sets/eighthedition/ThornElemental.java new file mode 100644 index 0000000000..2236137372 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eighthedition/ThornElemental.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.eighthedition; + +import java.util.UUID; + +/** + * + * @author Backfir3 + */ +public class ThornElemental extends mage.sets.urzasdestiny.ThornElemental { + + public ThornElemental(UUID ownerId) { + super(ownerId); + this.cardNumber = 283; + this.expansionSetCode = "8ED"; + } + + public ThornElemental(final ThornElemental card) { + super(card); + } + + @Override + public ThornElemental copy() { + return new ThornElemental(this); + } +} diff --git a/Mage.Sets/src/mage/sets/ninthedition/AncientSilverback.java b/Mage.Sets/src/mage/sets/ninthedition/AncientSilverback.java new file mode 100644 index 0000000000..079ace9b77 --- /dev/null +++ b/Mage.Sets/src/mage/sets/ninthedition/AncientSilverback.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.ninthedition; + +import java.util.UUID; + +/** + * + * @author Backfir3 + */ +public class AncientSilverback extends mage.sets.urzasdestiny.AncientSilverback { + + public AncientSilverback(UUID ownerId) { + super(ownerId); + this.cardNumber = 230; + this.expansionSetCode = "9ED"; + } + + public AncientSilverback(final AncientSilverback card) { + super(card); + } + + @Override + public AncientSilverback copy() { + return new AncientSilverback(this); + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/tenth/ChimericStaff.java b/Mage.Sets/src/mage/sets/tenth/ChimericStaff.java new file mode 100644 index 0000000000..eba49f545e --- /dev/null +++ b/Mage.Sets/src/mage/sets/tenth/ChimericStaff.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.tenth; + +import java.util.UUID; + +/** + * + * @author Backfir3 + */ +public class ChimericStaff extends mage.sets.urzassaga.ChimericStaff { + + public ChimericStaff(UUID ownerId) { + super(ownerId); + this.cardNumber = 313; + this.expansionSetCode = "10E"; + } + + public ChimericStaff(final ChimericStaff card) { + super(card); + } + + @Override + public ChimericStaff copy() { + return new ChimericStaff(this); + } +} diff --git a/Mage.Sets/src/mage/sets/tenth/Rhox.java b/Mage.Sets/src/mage/sets/tenth/Rhox.java new file mode 100644 index 0000000000..8955dbd591 --- /dev/null +++ b/Mage.Sets/src/mage/sets/tenth/Rhox.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.tenth; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.Constants.Zone; +import mage.MageInt; +import mage.abilities.common.DamageAsThoughNotBlockedAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.RegenerateSourceEffect; +import mage.cards.CardImpl; + +/** + * + * @author Backfir3 + */ +public class Rhox extends CardImpl { + + public Rhox(UUID ownerId) { + super(ownerId, 291, "Rhox", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{G}{G}"); + this.expansionSetCode = "10E"; + this.subtype.add("Rhino"); + this.subtype.add("Beast"); + this.color.setGreen(true); + this.power = new MageInt(5); + this.toughness = new MageInt(5); + + // You may have Rhox assign its combat damage as though it weren't blocked. + this.addAbility(DamageAsThoughNotBlockedAbility.getInstance()); + // {2}{G}: Regenerate Rhox. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{2}{G}"))); + } + + public Rhox(final Rhox card) { + super(card); + } + + @Override + public Rhox copy() { + return new Rhox(this); + } +} diff --git a/Mage.Sets/src/mage/sets/timeshifted/HuntingMoa.java b/Mage.Sets/src/mage/sets/timeshifted/HuntingMoa.java new file mode 100644 index 0000000000..7d315cba28 --- /dev/null +++ b/Mage.Sets/src/mage/sets/timeshifted/HuntingMoa.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.timeshifted; + +import java.util.UUID; +import mage.Constants.Rarity; + +/** + * + * @author Backfir3 + */ +public class HuntingMoa extends mage.sets.urzasdestiny.HuntingMoa { + + public HuntingMoa(UUID ownerId) { + super(ownerId); + this.cardNumber = 80; + this.expansionSetCode = "TSB"; + this.rarity = Rarity.COMMON; + } + + public HuntingMoa(final HuntingMoa card) { + super(card); + } + + @Override + public HuntingMoa copy() { + return new HuntingMoa(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzasdestiny/AetherSting.java b/Mage.Sets/src/mage/sets/urzasdestiny/AetherSting.java new file mode 100644 index 0000000000..675091290a --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzasdestiny/AetherSting.java @@ -0,0 +1,99 @@ +/* + * 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.urzasdestiny; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.Constants.Zone; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.target.targetpointer.FixedTarget; + +/** + * + * @author Backfir3 + */ +public class AetherSting extends CardImpl { + + public AetherSting(UUID ownerId) { + super(ownerId, 76, "AEther Sting", Rarity.UNCOMMON, new CardType[]{CardType.ENCHANTMENT}, "{3}{R}"); + this.expansionSetCode = "UDS"; + this.color.setRed(true); + + // Whenever an opponent casts a creature spell, AEther Sting deals 1 damage to that player. + this.addAbility(new AetherStingTriggeredAbility()); + } + + public AetherSting(final AetherSting card) { + super(card); + } + + @Override + public AetherSting copy() { + return new AetherSting(this); + } +} + +class AetherStingTriggeredAbility extends TriggeredAbilityImpl { + + public AetherStingTriggeredAbility() { + super(Zone.BATTLEFIELD, new DamageTargetEffect(1), false); + } + + public AetherStingTriggeredAbility(final AetherStingTriggeredAbility ability) { + super(ability); + } + + @Override + public AetherStingTriggeredAbility copy() { + return new AetherStingTriggeredAbility(this); + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (event.getType() == GameEvent.EventType.SPELL_CAST + && game.getOpponents(controllerId).contains(event.getPlayerId())) { + Card card = game.getCard(event.getSourceId()); + if (card != null && card.getCardType().contains(CardType.CREATURE)) { + this.getEffects().get(0).setTargetPointer(new FixedTarget(event.getPlayerId())); + return true; + } + } + return false; + } + + @Override + public String getRule() { + return "Whenever an opponent casts a creature spell, {this} deals 1 damage to that player."; + } +} diff --git a/Mage.Sets/src/mage/sets/urzasdestiny/AncientSilverback.java b/Mage.Sets/src/mage/sets/urzasdestiny/AncientSilverback.java new file mode 100644 index 0000000000..420b9b4488 --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzasdestiny/AncientSilverback.java @@ -0,0 +1,65 @@ +/* + * 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.urzasdestiny; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.Constants.Zone; +import mage.MageInt; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.RegenerateSourceEffect; +import mage.cards.CardImpl; + +/** + * + * @author Backfir3 + */ +public class AncientSilverback extends CardImpl { + + public AncientSilverback(UUID ownerId) { + super(ownerId, 101, "Ancient Silverback", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{G}{G}"); + this.expansionSetCode = "UDS"; + this.subtype.add("Ape"); + this.color.setGreen(true); + this.power = new MageInt(6); + this.toughness = new MageInt(5); + + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{G}"))); + } + + public AncientSilverback(final AncientSilverback card) { + super(card); + } + + @Override + public AncientSilverback copy() { + return new AncientSilverback(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzasdestiny/Attrition.java b/Mage.Sets/src/mage/sets/urzasdestiny/Attrition.java new file mode 100644 index 0000000000..6a0f1ff383 --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzasdestiny/Attrition.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.urzasdestiny; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.Constants.Zone; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.cards.CardImpl; +import mage.filter.common.FilterCreaturePermanent; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author Backfir3 + */ +public class Attrition extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("nonblack creature"); + + static { + filter.getColor().setBlack(true); + filter.setUseColor(true); + filter.setNotColor(true); + } + + public Attrition(UUID ownerId) { + super(ownerId, 52, "Attrition", Rarity.RARE, new CardType[]{CardType.ENCHANTMENT}, "{1}{B}{B}"); + this.expansionSetCode = "UDS"; + this.color.setBlack(true); + + //{B}, Sacrifice a creature: Destroy target nonblack creature. + SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{B}")); + ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent())); + ability.addTarget(new TargetCreaturePermanent(filter)); + this.addAbility(ability); + } + + public Attrition(final Attrition card) { + super(card); + } + + @Override + public Attrition copy() { + return new Attrition(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzasdestiny/BlizzardElemental.java b/Mage.Sets/src/mage/sets/urzasdestiny/BlizzardElemental.java new file mode 100644 index 0000000000..8237b5304a --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzasdestiny/BlizzardElemental.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.urzasdestiny; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.Constants.Zone; +import mage.MageInt; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.UntapSourceEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; + +/** + * + * @author Backfir3 + */ +public class BlizzardElemental extends CardImpl { + + public BlizzardElemental(UUID ownerId) { + super(ownerId, 27, "Blizzard Elemental", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{5}{U}{U}"); + this.expansionSetCode = "UDS"; + this.subtype.add("Elemental"); + this.color.setBlue(true); + this.power = new MageInt(5); + this.toughness = new MageInt(5); + + this.addAbility(FlyingAbility.getInstance()); + // {3}{U}: Untap Blizzard Elemental. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new ManaCostsImpl("{3}{U}"))); + } + + public BlizzardElemental(final BlizzardElemental card) { + super(card); + } + + @Override + public BlizzardElemental copy() { + return new BlizzardElemental(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzasdestiny/BloodshotCyclops.java b/Mage.Sets/src/mage/sets/urzasdestiny/BloodshotCyclops.java new file mode 100644 index 0000000000..4efaf17fe7 --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzasdestiny/BloodshotCyclops.java @@ -0,0 +1 @@ +/* * 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.urzasdestiny; import java.util.UUID; import mage.Constants.CardType; import mage.Constants.Outcome; import mage.Constants.Rarity; import mage.Constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.Cost; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; /** * * @author Backfir3 */ public class BloodshotCyclops extends CardImpl { public BloodshotCyclops(UUID ownerId) { super(ownerId, 77, "Bloodshot Cyclops", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{5}{R}"); this.expansionSetCode = "UDS"; this.subtype.add("Cyclops"); this.subtype.add("Giant"); this.color.setRed(true); this.power = new MageInt(4); this.toughness = new MageInt(4); // {T}, Sacrifice a creature: Bloodshot Cyclops deals damage equal to the sacrificed // creature's power to target creature or player. SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BloodshotCyclopsEffect(), new SacrificeTargetCost(new TargetControlledCreaturePermanent())); ability.addTarget(new TargetCreatureOrPlayer()); this.addAbility(ability); } public BloodshotCyclops(final BloodshotCyclops card) { super(card); } @Override public BloodshotCyclops copy() { return new BloodshotCyclops(this); } } class BloodshotCyclopsEffect extends OneShotEffect { public BloodshotCyclopsEffect() { super(Outcome.Damage); staticText = "{this} deals damage equal to the sacrificed creature's power to target creature or player"; } public BloodshotCyclopsEffect(final BloodshotCyclopsEffect effect) { super(effect); } @Override public boolean apply(Game game, Ability source) { int amount = 0; for (Cost cost : source.getCosts()) { if (cost instanceof SacrificeTargetCost && ((SacrificeTargetCost) cost).getPermanents().size() > 0) { amount = ((SacrificeTargetCost) cost).getPermanents().get(0).getPower().getValue(); break; } } if (amount > 0) { Permanent permanent = game.getPermanent(source.getFirstTarget()); if (permanent != null) { permanent.damage(amount, source.getSourceId(), game, true, false); return true; } Player player = game.getPlayer(source.getFirstTarget()); if (player != null) { player.damage(amount, source.getSourceId(), game, false, true); return true; } } return false; } @Override public BloodshotCyclopsEffect copy() { return new BloodshotCyclopsEffect(this); } } \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/urzasdestiny/BraidwoodCup.java b/Mage.Sets/src/mage/sets/urzasdestiny/BraidwoodCup.java new file mode 100644 index 0000000000..0e38451dbd --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzasdestiny/BraidwoodCup.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.urzasdestiny; + +import java.util.UUID; +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.GainLifeEffect; +import mage.cards.CardImpl; + +/** + * + * @author Backfir3 + */ +public class BraidwoodCup extends CardImpl { + + public BraidwoodCup(UUID ownerId) { + super(ownerId, 126, "Braidwood Cup", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{3}"); + this.expansionSetCode = "UDS"; + + // {T}: You gain 1 life. + Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new GainLifeEffect(1), new TapSourceCost()); + this.addAbility(ability); + } + + public BraidwoodCup(final BraidwoodCup card) { + super(card); + } + + @Override + public BraidwoodCup copy() { + return new BraidwoodCup(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzasdestiny/BrassSecretary.java b/Mage.Sets/src/mage/sets/urzasdestiny/BrassSecretary.java new file mode 100644 index 0000000000..a39d4db1ed --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzasdestiny/BrassSecretary.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.urzasdestiny; + +import java.util.UUID; +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +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.DrawCardControllerEffect; +import mage.cards.CardImpl; + +/** + * + * @author Backfir3 + */ +public class BrassSecretary extends CardImpl { + + public BrassSecretary(UUID ownerId) { + super(ownerId, 128, "Brass Secretary", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}"); + this.expansionSetCode = "UDS"; + this.subtype.add("Construct"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // {2}, Sacrifice Brass Secretary: Draw a card. + Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new DrawCardControllerEffect(1), new GenericManaCost(2)); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + } + + public BrassSecretary(final BrassSecretary card) { + super(card); + } + + @Override + public BrassSecretary copy() { + return new BrassSecretary(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzasdestiny/BubblingBeebles.java b/Mage.Sets/src/mage/sets/urzasdestiny/BubblingBeebles.java new file mode 100644 index 0000000000..b2347590e5 --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzasdestiny/BubblingBeebles.java @@ -0,0 +1,96 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.urzasdestiny; + +import java.util.UUID; +import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.Condition; +import mage.abilities.decorator.ConditionalContinousEffect; +import mage.abilities.effects.ContinuousEffect; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continious.GainAbilitySourceEffect; +import mage.abilities.keyword.UnblockableAbility; +import mage.cards.CardImpl; +import mage.filter.Filter; +import mage.filter.FilterPermanent; +import mage.game.Game; + +/** + * + * @author Backfir3 + */ +public class BubblingBeebles extends CardImpl { + + private static final String rule = "{this} is unblockable as long as defending player controls an enchantment"; + private static final FilterPermanent filter = new FilterPermanent(); + + static { + filter.getCardType().add(Constants.CardType.ENCHANTMENT); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } + + private class DefendingPlayerControlsEnchantment implements Condition { + + @Override + public boolean apply(Game game, Ability source) { + UUID defendingPlayer = game.getCombat().getDefendingPlayer(source.getSourceId()); + if (defendingPlayer != null) { + return game.getBattlefield().countAll(filter, defendingPlayer, game) > 0; + } + return false; + } + } + + public BubblingBeebles(UUID ownerId) { + super(ownerId, 29, "Bubbling Beebles", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{4}{U}"); + this.expansionSetCode = "UDS"; + this.subtype.add("Beeble"); + this.color.setBlue(true); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // Bubbling Beebles is unblockable as long as defending player controls an enchantment. + ContinuousEffect gainAbility = new GainAbilitySourceEffect(UnblockableAbility.getInstance(), Constants.Duration.WhileOnBattlefield); + Effect effect = new ConditionalContinousEffect(gainAbility, new DefendingPlayerControlsEnchantment(), rule); + this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, effect)); + } + + public BubblingBeebles(final BubblingBeebles card) { + super(card); + } + + @Override + public BubblingBeebles copy() { + return new BubblingBeebles(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzasdestiny/CapashenKnight.java b/Mage.Sets/src/mage/sets/urzasdestiny/CapashenKnight.java new file mode 100644 index 0000000000..429fbc7b23 --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzasdestiny/CapashenKnight.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.urzasdestiny; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Duration; +import mage.Constants.Rarity; +import mage.Constants.Zone; +import mage.MageInt; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continious.BoostSourceEffect; +import mage.abilities.keyword.FirstStrikeAbility; +import mage.cards.CardImpl; + +/** + * + * @author Backfir3 + */ +public class CapashenKnight extends CardImpl { + + public CapashenKnight(UUID ownerId) { + super(ownerId, 3, "Capashen Knight", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{W}"); + this.expansionSetCode = "UDS"; + this.subtype.add("Human"); + this.subtype.add("Knight"); + this.color.setWhite(true); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + this.addAbility(FirstStrikeAbility.getInstance()); + // {1}{W}: Capashen Knight gets +1/+0 until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{1}{W}"))); + } + + public CapashenKnight(final CapashenKnight card) { + super(card); + } + + @Override + public CapashenKnight copy() { + return new CapashenKnight(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzasdestiny/CapashenTemplar.java b/Mage.Sets/src/mage/sets/urzasdestiny/CapashenTemplar.java new file mode 100644 index 0000000000..bbf429affa --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzasdestiny/CapashenTemplar.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.urzasdestiny; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Duration; +import mage.Constants.Rarity; +import mage.Constants.Zone; +import mage.MageInt; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continious.BoostSourceEffect; +import mage.cards.CardImpl; + +/** + * + * @author Backfir3 + */ +public class CapashenTemplar extends CardImpl { + + public CapashenTemplar(UUID ownerId) { + super(ownerId, 5, "Capashen Templar", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{W}"); + this.expansionSetCode = "UDS"; + this.subtype.add("Human"); + this.subtype.add("Knight"); + this.color.setWhite(true); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // {W}: Capashen Templar gets +0/+1 until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0, 1, Duration.EndOfTurn), new ManaCostsImpl("{W}"))); + } + + public CapashenTemplar(final CapashenTemplar card) { + super(card); + } + + @Override + public CapashenTemplar copy() { + return new CapashenTemplar(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzasdestiny/Extruder.java b/Mage.Sets/src/mage/sets/urzasdestiny/Extruder.java new file mode 100644 index 0000000000..d88e880b86 --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzasdestiny/Extruder.java @@ -0,0 +1,82 @@ +/* + * 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.urzasdestiny; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.Constants.Zone; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.abilities.keyword.EchoAbility; +import mage.cards.CardImpl; +import mage.counters.CounterType; +import mage.filter.Filter; +import mage.filter.common.FilterControlledPermanent; +import mage.target.common.TargetControlledPermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author Backfir3 + */ +public class Extruder extends CardImpl { + + private static final FilterControlledPermanent filter = new FilterControlledPermanent("an artifact"); + + static { + filter.getCardType().add(CardType.ARTIFACT); + filter.setScopeCardType(Filter.ComparisonScope.Any); + } + + public Extruder(UUID ownerId) { + super(ownerId, 130, "Extruder", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{4}"); + this.expansionSetCode = "UDS"; + this.subtype.add("Juggernaut"); + this.power = new MageInt(4); + this.toughness = new MageInt(3); + + this.addAbility(new EchoAbility("{4}")); + // Sacrifice an artifact: Put a +1/+1 counter on target creature. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new SacrificeTargetCost(new TargetControlledPermanent(filter))); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + + public Extruder(final Extruder card) { + super(card); + } + + @Override + public Extruder copy() { + return new Extruder(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzasdestiny/GoblinMarshal.java b/Mage.Sets/src/mage/sets/urzasdestiny/GoblinMarshal.java new file mode 100644 index 0000000000..628afd06d3 --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzasdestiny/GoblinMarshal.java @@ -0,0 +1,74 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.urzasdestiny; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.keyword.EchoAbility; +import mage.cards.CardImpl; +import mage.game.permanent.token.GoblinToken; + +/** + * + * @author Backfir3 + */ +public class GoblinMarshal extends CardImpl { + + public GoblinMarshal(UUID ownerId) { + super(ownerId, 85, "Goblin Marshal", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{R}{R}"); + this.expansionSetCode = "UDS"; + this.subtype.add("Goblin"); + this.subtype.add("Warrior"); + this.color.setRed(true); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + this.addAbility(new EchoAbility("{4}{R}{R}")); + // When Goblin Marshal enters the battlefield or dies, put two 1/1 red Goblin creature tokens onto the battlefield. + Ability enterAbility = new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new GoblinToken(), 2), false); + this.addAbility(enterAbility); + // When Goblin Marshal enters the battlefield or dies, put two 1/1 red Goblin creature tokens onto the battlefield. + Ability diesAbility = new DiesTriggeredAbility(new CreateTokenEffect(new GoblinToken(), 2), false); + this.addAbility(diesAbility); + } + + public GoblinMarshal(final GoblinMarshal card) { + super(card); + } + + @Override + public GoblinMarshal copy() { + return new GoblinMarshal(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzasdestiny/HuntingMoa.java b/Mage.Sets/src/mage/sets/urzasdestiny/HuntingMoa.java new file mode 100644 index 0000000000..bea6822bc0 --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzasdestiny/HuntingMoa.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.urzasdestiny; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.abilities.keyword.EchoAbility; +import mage.cards.CardImpl; +import mage.counters.CounterType; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author Backfir3 + */ +public class HuntingMoa extends CardImpl { + + public HuntingMoa(UUID ownerId) { + super(ownerId, 109, "Hunting Moa", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{G}"); + this.expansionSetCode = "UDS"; + this.subtype.add("Bird"); + this.subtype.add("Beast"); + this.color.setGreen(true); + this.power = new MageInt(3); + this.toughness = new MageInt(2); + + this.addAbility(new EchoAbility("{2}{G}")); + // When Hunting Moa enters the battlefield or dies, put a +1/+1 counter on target creature. + Ability enterAbility = new EntersBattlefieldTriggeredAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance()), false); + enterAbility.addTarget(new TargetCreaturePermanent()); + this.addAbility(enterAbility); + // When Hunting Moa enters the battlefield or dies, put a +1/+1 counter on target creature. + Ability diesAbility = new DiesTriggeredAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance()), false); + diesAbility.addTarget(new TargetCreaturePermanent()); + this.addAbility(diesAbility); + } + + public HuntingMoa(final HuntingMoa card) { + super(card); + } + + @Override + public HuntingMoa copy() { + return new HuntingMoa(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzasdestiny/ThornElemental.java b/Mage.Sets/src/mage/sets/urzasdestiny/ThornElemental.java new file mode 100644 index 0000000000..9305ef56ca --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzasdestiny/ThornElemental.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.urzasdestiny; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.abilities.common.DamageAsThoughNotBlockedAbility; +import mage.cards.CardImpl; + +/** + * + * @author Backfir3 + */ +public class ThornElemental extends CardImpl { + + public ThornElemental(UUID ownerId) { + super(ownerId, 123, "Thorn Elemental", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{5}{G}{G}"); + this.expansionSetCode = "UDS"; + this.subtype.add("Elemental"); + this.color.setGreen(true); + this.power = new MageInt(7); + this.toughness = new MageInt(7); + + // You may have Thorn Elemental assign its combat damage as though it weren't blocked. + this.addAbility(DamageAsThoughNotBlockedAbility.getInstance()); + } + + public ThornElemental(final ThornElemental card) { + super(card); + } + + @Override + public ThornElemental copy() { + return new ThornElemental(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzaslegacy/GhituSlinger.java b/Mage.Sets/src/mage/sets/urzaslegacy/GhituSlinger.java new file mode 100644 index 0000000000..a0b25bc0f1 --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzaslegacy/GhituSlinger.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.urzaslegacy; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.keyword.EchoAbility; +import mage.cards.CardImpl; +import mage.target.common.TargetCreatureOrPlayer; + +/** + * + * @author Backfir3 + */ +public class GhituSlinger extends CardImpl { + + public GhituSlinger(UUID ownerId) { + super(ownerId, 77, "Ghitu Slinger", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{R}"); + this.expansionSetCode = "ULG"; + this.subtype.add("Human"); + this.subtype.add("Nomad"); + this.color.setRed(true); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Echo {2}{R} + this.addAbility(new EchoAbility("{2}{R}")); + // When Ghitu Slinger enters the battlefield, it deals 2 damage to target creature or player. + Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2), false); + ability.addTarget(new TargetCreatureOrPlayer()); + this.addAbility(ability); + } + + public GhituSlinger(final GhituSlinger card) { + super(card); + } + + @Override + public GhituSlinger copy() { + return new GhituSlinger(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzaslegacy/KarmicGuide.java b/Mage.Sets/src/mage/sets/urzaslegacy/KarmicGuide.java new file mode 100644 index 0000000000..edf56eabcd --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzaslegacy/KarmicGuide.java @@ -0,0 +1,88 @@ +/* + * 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.urzaslegacy; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; +import mage.abilities.keyword.EchoAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.ProtectionAbility; +import mage.cards.CardImpl; +import mage.filter.Filter.ComparisonScope; +import mage.filter.FilterCard; +import mage.filter.common.FilterCreatureCard; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author Backfir3 + */ +public class KarmicGuide extends CardImpl { + + private static final FilterCard filter = new FilterCard("Black"); + + static { + filter.setUseColor(true); + filter.getColor().setBlack(true); + filter.setScopeColor(ComparisonScope.Any); + } + + public KarmicGuide(UUID ownerId) { + super(ownerId, 11, "Karmic Guide", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{3}{W}{W}"); + this.expansionSetCode = "ULG"; + this.subtype.add("Angel"); + this.subtype.add("Spirit"); + this.color.setWhite(true); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + this.addAbility(FlyingAbility.getInstance()); + // protection from black + this.addAbility(new ProtectionAbility(filter)); + // Echo {3}{W}{W} + this.addAbility(new EchoAbility("{3}{W}{W}")); + // When Karmic Guide enters the battlefield, return target creature card from your graveyard to the battlefield. + Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect(), false); + ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard"))); + this.addAbility(ability); + } + + public KarmicGuide(final KarmicGuide card) { + super(card); + } + + @Override + public KarmicGuide copy() { + return new KarmicGuide(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzaslegacy/LoneWolf.java b/Mage.Sets/src/mage/sets/urzaslegacy/LoneWolf.java new file mode 100644 index 0000000000..b76b658afd --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzaslegacy/LoneWolf.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.urzaslegacy; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.abilities.common.DamageAsThoughNotBlockedAbility; +import mage.cards.CardImpl; + +/** + * + * @author Backfir3 + */ +public class LoneWolf extends CardImpl { + + public LoneWolf(UUID ownerId) { + super(ownerId, 105, "Lone Wolf", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{G}"); + this.expansionSetCode = "ULG"; + this.subtype.add("Wolf"); + this.color.setGreen(true); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // You may have Lone Wolf assign its combat damage as though it weren't blocked. + this.addAbility(DamageAsThoughNotBlockedAbility.getInstance()); + } + + public LoneWolf(final LoneWolf card) { + super(card); + } + + @Override + public LoneWolf copy() { + return new LoneWolf(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzassaga/CaveTiger.java b/Mage.Sets/src/mage/sets/urzassaga/CaveTiger.java new file mode 100644 index 0000000000..b0e2cb395f --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzassaga/CaveTiger.java @@ -0,0 +1,65 @@ +/* + * 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.Constants.CardType; +import mage.Constants.Duration; +import mage.Constants.Rarity; +import mage.MageInt; +import mage.abilities.common.BecomesBlockedByCreatureTriggeredAbility; +import mage.abilities.effects.common.continious.BoostSourceEffect; +import mage.cards.CardImpl; + +/** + * + * @author Backfir3 + */ +public class CaveTiger extends CardImpl { + + public CaveTiger(UUID ownerId) { + super(ownerId, 241, "Cave Tiger", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{G}"); + this.expansionSetCode = "USG"; + this.subtype.add("Cat"); + this.color.setGreen(true); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Whenever Cave Tiger becomes blocked by a creature, Cave Tiger gets +1/+1 until end of turn. + this.addAbility(new BecomesBlockedByCreatureTriggeredAbility(new BoostSourceEffect(1, 1, Duration.EndOfTurn), false)); + } + + public CaveTiger(final CaveTiger card) { + super(card); + } + + @Override + public CaveTiger copy() { + return new CaveTiger(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzassaga/ChimericStaff.java b/Mage.Sets/src/mage/sets/urzassaga/ChimericStaff.java new file mode 100644 index 0000000000..b115490c68 --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzassaga/ChimericStaff.java @@ -0,0 +1,124 @@ +/* + * 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.Constants.CardType; +import mage.Constants.Duration; +import mage.Constants.Layer; +import mage.Constants.Outcome; +import mage.Constants.Rarity; +import mage.Constants.SubLayer; +import mage.Constants.Zone; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.ContinuousEffectImpl; +import mage.cards.CardImpl; +import mage.game.Game; +import mage.game.permanent.Permanent; + +/** + * + * @author Backfir3 + */ +public class ChimericStaff extends CardImpl { + + public ChimericStaff(UUID ownerId) { + super(ownerId, 288, "Chimeric Staff", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{4}"); + this.expansionSetCode = "USG"; + + // {X}: Chimeric Staff becomes an X/X Construct artifact creature until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ChimericStaffEffect(), new ManaCostsImpl("{X}"))); + } + + public ChimericStaff(final ChimericStaff card) { + super(card); + } + + @Override + public ChimericStaff copy() { + return new ChimericStaff(this); + } +} + +class ChimericStaffEffect extends ContinuousEffectImpl { + + public ChimericStaffEffect() { + super(Duration.EndOfTurn, Outcome.BecomeCreature); + setText(); + } + + public ChimericStaffEffect(final ChimericStaffEffect effect) { + super(effect); + } + + @Override + public ChimericStaffEffect copy() { + return new ChimericStaffEffect(this); + } + + @Override + public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { + Permanent permanent = game.getPermanent(source.getSourceId()); + if (permanent != null) { + switch (layer) { + case TypeChangingEffects_4: + if (sublayer == SubLayer.NA) { + permanent.getCardType().add(CardType.CREATURE); + permanent.getSubtype().add("Construct"); + } + break; + case PTChangingEffects_7: + if (sublayer == SubLayer.SetPT_7b) { + int xValue = source.getManaCostsToPay().getX(); + if (xValue != 0) { + permanent.getPower().setValue(xValue); + permanent.getToughness().setValue(xValue); + } + } + } + return true; + } + return false; + } + + @Override + public boolean apply(Game game, Ability source) { + return false; + } + + private void setText() { + staticText = duration.toString() + " {this} becomes an X/X Construct artifact creature"; + } + + @Override + public boolean hasLayer(Layer layer) { + return layer == Layer.PTChangingEffects_7 || layer == Layer.TypeChangingEffects_4; + } +}