From 931803f7bf19d3bbe082b715f95371b87cd087d5 Mon Sep 17 00:00:00 2001 From: North Date: Thu, 2 Jun 2011 22:54:44 +0300 Subject: [PATCH] Added Cards. --- .../sets/mirrodinbesieged/FlayerHusk.java | 66 +++++++++ .../mage/sets/mirrodinbesieged/Mortarpod.java | 77 ++++++++++ .../mage/sets/mirrodinbesieged/Skinwing.java | 70 +++++++++ .../sets/mirrodinbesieged/SpineOfIshSah.java | 64 +++++++++ .../sets/mirrodinbesieged/Strandwalker.java | 70 +++++++++ .../sets/newphyrexia/CaressOfPhyrexia.java | 65 +++++++++ .../mage/sets/newphyrexia/DarksteelRelic.java | 57 ++++++++ .../mage/sets/newphyrexia/EvilPresence.java | 135 ++++++++++++++++++ .../mage/sets/newphyrexia/GrimAffliction.java | 64 +++++++++ .../src/mage/sets/newphyrexia/Lashwrithe.java | 77 ++++++++++ .../mage/sets/newphyrexia/MarrowShards.java | 60 ++++++++ .../mage/sets/newphyrexia/Necropouncer.java | 70 +++++++++ .../sets/newphyrexia/PristineTalisman.java | 60 ++++++++ .../sets/newphyrexia/TezzeretsGambit.java | 60 ++++++++ .../sets/newphyrexia/TriumphOfTheHordes.java | 65 +++++++++ .../src/mage/sets/newphyrexia/Whipflare.java | 66 +++++++++ .../sets/riseoftheeldrazi/PennonBlade.java | 67 +++++++++ .../sets/riseoftheeldrazi/PropheticPrism.java | 81 +++++++++++ .../scarsofmirrodin/HandOfThePraetors.java | 51 +------ .../sets/scarsofmirrodin/LivewireLash.java | 106 ++++++++++++++ .../sets/scarsofmirrodin/SylvokLifestaff.java | 70 +++++++++ .../common/AddPoisonCounterTargetEffect.java | 78 ++++++++++ .../continious/BoostEquippedEffect.java | 2 +- 23 files changed, 1531 insertions(+), 50 deletions(-) create mode 100644 Mage.Sets/src/mage/sets/mirrodinbesieged/FlayerHusk.java create mode 100644 Mage.Sets/src/mage/sets/mirrodinbesieged/Mortarpod.java create mode 100644 Mage.Sets/src/mage/sets/mirrodinbesieged/Skinwing.java create mode 100644 Mage.Sets/src/mage/sets/mirrodinbesieged/SpineOfIshSah.java create mode 100644 Mage.Sets/src/mage/sets/mirrodinbesieged/Strandwalker.java create mode 100644 Mage.Sets/src/mage/sets/newphyrexia/CaressOfPhyrexia.java create mode 100644 Mage.Sets/src/mage/sets/newphyrexia/DarksteelRelic.java create mode 100644 Mage.Sets/src/mage/sets/newphyrexia/EvilPresence.java create mode 100644 Mage.Sets/src/mage/sets/newphyrexia/GrimAffliction.java create mode 100644 Mage.Sets/src/mage/sets/newphyrexia/Lashwrithe.java create mode 100644 Mage.Sets/src/mage/sets/newphyrexia/MarrowShards.java create mode 100644 Mage.Sets/src/mage/sets/newphyrexia/Necropouncer.java create mode 100644 Mage.Sets/src/mage/sets/newphyrexia/PristineTalisman.java create mode 100644 Mage.Sets/src/mage/sets/newphyrexia/TezzeretsGambit.java create mode 100644 Mage.Sets/src/mage/sets/newphyrexia/TriumphOfTheHordes.java create mode 100644 Mage.Sets/src/mage/sets/newphyrexia/Whipflare.java create mode 100644 Mage.Sets/src/mage/sets/riseoftheeldrazi/PennonBlade.java create mode 100644 Mage.Sets/src/mage/sets/riseoftheeldrazi/PropheticPrism.java create mode 100644 Mage.Sets/src/mage/sets/scarsofmirrodin/LivewireLash.java create mode 100644 Mage.Sets/src/mage/sets/scarsofmirrodin/SylvokLifestaff.java create mode 100644 Mage/src/mage/abilities/effects/common/AddPoisonCounterTargetEffect.java diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/FlayerHusk.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/FlayerHusk.java new file mode 100644 index 0000000000..21c6c5cbcd --- /dev/null +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/FlayerHusk.java @@ -0,0 +1,66 @@ +/* + * 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.mirrodinbesieged; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Outcome; +import mage.Constants.Rarity; +import mage.Constants.Zone; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.continious.BoostEquippedEffect; +import mage.abilities.keyword.EquipAbility; +import mage.abilities.keyword.LivingWeaponAbility; +import mage.cards.CardImpl; + +/** + * + * @author North + */ +public class FlayerHusk extends CardImpl { + + public FlayerHusk(UUID ownerId) { + super(ownerId, 107, "Flayer Husk", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{1}"); + this.expansionSetCode = "MBS"; + this.subtype.add("Equipment"); + + this.addAbility(new LivingWeaponAbility()); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 1))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2))); + } + + public FlayerHusk(final FlayerHusk card) { + super(card); + } + + @Override + public FlayerHusk copy() { + return new FlayerHusk(this); + } +} diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/Mortarpod.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/Mortarpod.java new file mode 100644 index 0000000000..3afd1b4141 --- /dev/null +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/Mortarpod.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.mirrodinbesieged; + +import java.util.UUID; +import mage.Constants.AttachmentType; +import mage.Constants.CardType; +import mage.Constants.Outcome; +import mage.Constants.Rarity; +import mage.Constants.Zone; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.effects.common.continious.BoostEquippedEffect; +import mage.abilities.effects.common.continious.GainAbilityAttachedEffect; +import mage.abilities.keyword.EquipAbility; +import mage.abilities.keyword.LivingWeaponAbility; +import mage.cards.CardImpl; +import mage.target.common.TargetCreatureOrPlayer; + +/** + * + * @author North + */ +public class Mortarpod extends CardImpl { + + public Mortarpod(UUID ownerId) { + super(ownerId, 115, "Mortarpod", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{2}"); + this.expansionSetCode = "MBS"; + this.subtype.add("Equipment"); + + this.addAbility(new LivingWeaponAbility()); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(0, 1))); + SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, + new DamageTargetEffect(1), + new SacrificeSourceCost()); + ability.addTarget(new TargetCreatureOrPlayer()); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability, AttachmentType.EQUIPMENT))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2))); + } + + public Mortarpod(final Mortarpod card) { + super(card); + } + + @Override + public Mortarpod copy() { + return new Mortarpod(this); + } +} diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/Skinwing.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/Skinwing.java new file mode 100644 index 0000000000..3c3395f01f --- /dev/null +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/Skinwing.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.mirrodinbesieged; + +import java.util.UUID; +import mage.Constants.AttachmentType; +import mage.Constants.CardType; +import mage.Constants.Outcome; +import mage.Constants.Rarity; +import mage.Constants.Zone; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.continious.BoostEquippedEffect; +import mage.abilities.effects.common.continious.GainAbilityAttachedEffect; +import mage.abilities.keyword.EquipAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.LivingWeaponAbility; +import mage.cards.CardImpl; + +/** + * + * @author North + */ +public class Skinwing extends CardImpl { + + public Skinwing(UUID ownerId) { + super(ownerId, 133, "Skinwing", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{4}"); + this.expansionSetCode = "MBS"; + this.subtype.add("Equipment"); + + this.addAbility(new LivingWeaponAbility()); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(FlyingAbility.getInstance(), AttachmentType.EQUIPMENT))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(6))); + } + + public Skinwing(final Skinwing card) { + super(card); + } + + @Override + public Skinwing copy() { + return new Skinwing(this); + } +} diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/SpineOfIshSah.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/SpineOfIshSah.java new file mode 100644 index 0000000000..940fcf7312 --- /dev/null +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/SpineOfIshSah.java @@ -0,0 +1,64 @@ +/* + * 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.mirrodinbesieged; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.PutIntoGraveFromBattlefieldTriggeredAbility; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.abilities.effects.common.ReturnToHandSourceEffect; +import mage.cards.CardImpl; +import mage.target.TargetPermanent; + +/** + * + * @author North + */ +public class SpineOfIshSah extends CardImpl { + + public SpineOfIshSah(UUID ownerId) { + super(ownerId, 136, "Spine of Ish Sah", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{7}"); + this.expansionSetCode = "MBS"; + + EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect()); + ability.addTarget(new TargetPermanent()); + this.addAbility(ability); + this.addAbility(new PutIntoGraveFromBattlefieldTriggeredAbility(new ReturnToHandSourceEffect())); + } + + public SpineOfIshSah(final SpineOfIshSah card) { + super(card); + } + + @Override + public SpineOfIshSah copy() { + return new SpineOfIshSah(this); + } +} diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/Strandwalker.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/Strandwalker.java new file mode 100644 index 0000000000..6716266fb6 --- /dev/null +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/Strandwalker.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.mirrodinbesieged; + +import java.util.UUID; +import mage.Constants.AttachmentType; +import mage.Constants.CardType; +import mage.Constants.Outcome; +import mage.Constants.Rarity; +import mage.Constants.Zone; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.continious.BoostEquippedEffect; +import mage.abilities.effects.common.continious.GainAbilityAttachedEffect; +import mage.abilities.keyword.EquipAbility; +import mage.abilities.keyword.LivingWeaponAbility; +import mage.abilities.keyword.ReachAbility; +import mage.cards.CardImpl; + +/** + * + * @author North + */ +public class Strandwalker extends CardImpl { + + public Strandwalker(UUID ownerId) { + super(ownerId, 137, "Strandwalker", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{5}"); + this.expansionSetCode = "MBS"; + this.subtype.add("Equipment"); + + this.addAbility(new LivingWeaponAbility()); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 4))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ReachAbility.getInstance(), AttachmentType.EQUIPMENT))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(4))); + } + + public Strandwalker(final Strandwalker card) { + super(card); + } + + @Override + public Strandwalker copy() { + return new Strandwalker(this); + } +} diff --git a/Mage.Sets/src/mage/sets/newphyrexia/CaressOfPhyrexia.java b/Mage.Sets/src/mage/sets/newphyrexia/CaressOfPhyrexia.java new file mode 100644 index 0000000000..456873a404 --- /dev/null +++ b/Mage.Sets/src/mage/sets/newphyrexia/CaressOfPhyrexia.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.newphyrexia; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.AddPoisonCounterTargetEffect; +import mage.abilities.effects.common.DrawCardTargetEffect; +import mage.abilities.effects.common.LoseLifeTargetEffect; +import mage.cards.CardImpl; +import mage.target.TargetPlayer; + +/** + * + * @author North + */ +public class CaressOfPhyrexia extends CardImpl { + + public CaressOfPhyrexia(UUID ownerId) { + super(ownerId, 53, "Caress of Phyrexia", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{3}{B}{B}"); + this.expansionSetCode = "NPH"; + + this.color.setBlack(true); + + this.getSpellAbility().addEffect(new DrawCardTargetEffect(3)); + this.getSpellAbility().addEffect(new LoseLifeTargetEffect(3)); + this.getSpellAbility().addEffect(new AddPoisonCounterTargetEffect(3)); + this.getSpellAbility().addTarget(new TargetPlayer()); + } + + public CaressOfPhyrexia(final CaressOfPhyrexia card) { + super(card); + } + + @Override + public CaressOfPhyrexia copy() { + return new CaressOfPhyrexia(this); + } +} diff --git a/Mage.Sets/src/mage/sets/newphyrexia/DarksteelRelic.java b/Mage.Sets/src/mage/sets/newphyrexia/DarksteelRelic.java new file mode 100644 index 0000000000..ac0c124331 --- /dev/null +++ b/Mage.Sets/src/mage/sets/newphyrexia/DarksteelRelic.java @@ -0,0 +1,57 @@ +/* + * 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.newphyrexia; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.keyword.IndestructibleAbility; +import mage.cards.CardImpl; + +/** + * + * @author North + */ +public class DarksteelRelic extends CardImpl { + + public DarksteelRelic(UUID ownerId) { + super(ownerId, 134, "Darksteel Relic", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{0}"); + this.expansionSetCode = "NPH"; + + this.addAbility(IndestructibleAbility.getInstance()); + } + + public DarksteelRelic(final DarksteelRelic card) { + super(card); + } + + @Override + public DarksteelRelic copy() { + return new DarksteelRelic(this); + } +} diff --git a/Mage.Sets/src/mage/sets/newphyrexia/EvilPresence.java b/Mage.Sets/src/mage/sets/newphyrexia/EvilPresence.java new file mode 100644 index 0000000000..8b1a892a21 --- /dev/null +++ b/Mage.Sets/src/mage/sets/newphyrexia/EvilPresence.java @@ -0,0 +1,135 @@ +/* + * 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.newphyrexia; + +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.SimpleStaticAbility; +import mage.abilities.effects.ContinuousEffectImpl; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.keyword.EnchantAbility; +import mage.abilities.mana.BlackManaAbility; +import mage.cards.CardImpl; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.target.TargetPermanent; +import mage.target.common.TargetLandPermanent; + +/** + * + * @author North + */ +public class EvilPresence extends CardImpl { + + public EvilPresence(UUID ownerId) { + super(ownerId, 60, "Evil Presence", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{B}"); + this.expansionSetCode = "NPH"; + this.subtype.add("Aura"); + + this.color.setBlack(true); + + TargetPermanent auraTarget = new TargetLandPermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.Detriment)); + this.addAbility(new EnchantAbility(auraTarget.getTargetName())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new EvilPresenceEffect())); + } + + public EvilPresence(final EvilPresence card) { + super(card); + } + + @Override + public EvilPresence copy() { + return new EvilPresence(this); + } +} + +class EvilPresenceEffect extends ContinuousEffectImpl { + + public EvilPresenceEffect() { + super(Duration.WhileOnBattlefield, Outcome.Detriment); + } + + public EvilPresenceEffect(final EvilPresenceEffect effect) { + super(effect); + } + + @Override + public EvilPresenceEffect copy() { + return new EvilPresenceEffect(this); + } + + @Override + public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { + Permanent enchantment = game.getPermanent(source.getSourceId()); + if (enchantment != null && enchantment.getAttachedTo() != null) { + Permanent land = game.getPermanent(enchantment.getAttachedTo()); + if (land != null) { + switch (layer) { + case TypeChangingEffects_4: + if (sublayer == SubLayer.NA) { + land.getSubtype().clear(); + land.getSubtype().add("Swamp"); + } + break; + case AbilityAddingRemovingEffects_6: + if (sublayer == SubLayer.NA) { + land.getAbilities().clear(); + land.addAbility(new BlackManaAbility()); + } + break; + } + return true; + } + } + return false; + } + + @Override + public boolean apply(Game game, Ability source) { + return false; + } + + @Override + public boolean hasLayer(Layer layer) { + return layer == Layer.AbilityAddingRemovingEffects_6 || layer == layer.TypeChangingEffects_4; + } + + @Override + public String getText(Ability source) { + return "Enchanted land is a Swamp"; + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/newphyrexia/GrimAffliction.java b/Mage.Sets/src/mage/sets/newphyrexia/GrimAffliction.java new file mode 100644 index 0000000000..9b79a4b50f --- /dev/null +++ b/Mage.Sets/src/mage/sets/newphyrexia/GrimAffliction.java @@ -0,0 +1,64 @@ +/* + * 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.newphyrexia; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.abilities.effects.common.counter.ProliferateEffect; +import mage.cards.CardImpl; +import mage.counters.CounterType; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author North + */ +public class GrimAffliction extends CardImpl { + + public GrimAffliction(UUID ownerId) { + super(ownerId, 63, "Grim Affliction", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{B}"); + this.expansionSetCode = "NPH"; + + this.color.setBlack(true); + + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + this.getSpellAbility().addEffect(new AddCountersTargetEffect(CounterType.M1M1.createInstance())); + this.getSpellAbility().addEffect(new ProliferateEffect()); + } + + public GrimAffliction(final GrimAffliction card) { + super(card); + } + + @Override + public GrimAffliction copy() { + return new GrimAffliction(this); + } +} diff --git a/Mage.Sets/src/mage/sets/newphyrexia/Lashwrithe.java b/Mage.Sets/src/mage/sets/newphyrexia/Lashwrithe.java new file mode 100644 index 0000000000..b6814d9a44 --- /dev/null +++ b/Mage.Sets/src/mage/sets/newphyrexia/Lashwrithe.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.newphyrexia; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Outcome; +import mage.Constants.Rarity; +import mage.Constants.TargetController; +import mage.Constants.Zone; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.effects.common.continious.BoostEquippedEffect; +import mage.abilities.keyword.EquipAbility; +import mage.abilities.keyword.LivingWeaponAbility; +import mage.cards.CardImpl; +import mage.filter.common.FilterLandPermanent; + +/** + * + * @author North + */ +public class Lashwrithe extends CardImpl { + + private static final FilterLandPermanent filter = new FilterLandPermanent("Swamp you control"); + + static { + filter.getName().add("Swamp"); + filter.setTargetController(TargetController.YOU); + } + + public Lashwrithe(UUID ownerId) { + super(ownerId, 143, "Lashwrithe", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{4}"); + this.expansionSetCode = "NPH"; + this.subtype.add("Equipment"); + + this.addAbility(new LivingWeaponAbility()); + PermanentsOnBattlefieldCount value = new PermanentsOnBattlefieldCount(filter); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(value, value))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl("{BP}{BP}"))); + } + + public Lashwrithe(final Lashwrithe card) { + super(card); + } + + @Override + public Lashwrithe copy() { + return new Lashwrithe(this); + } +} diff --git a/Mage.Sets/src/mage/sets/newphyrexia/MarrowShards.java b/Mage.Sets/src/mage/sets/newphyrexia/MarrowShards.java new file mode 100644 index 0000000000..31705f02db --- /dev/null +++ b/Mage.Sets/src/mage/sets/newphyrexia/MarrowShards.java @@ -0,0 +1,60 @@ +/* + * 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.newphyrexia; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.DamageAllEffect; +import mage.cards.CardImpl; +import mage.filter.common.FilterAttackingCreature; + +/** + * + * @author North + */ +public class MarrowShards extends CardImpl { + + public MarrowShards(UUID ownerId) { + super(ownerId, 15, "Marrow Shards", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{WP}"); + this.expansionSetCode = "NPH"; + + this.color.setWhite(true); + + this.getSpellAbility().addEffect(new DamageAllEffect(1, new FilterAttackingCreature())); + } + + public MarrowShards(final MarrowShards card) { + super(card); + } + + @Override + public MarrowShards copy() { + return new MarrowShards(this); + } +} diff --git a/Mage.Sets/src/mage/sets/newphyrexia/Necropouncer.java b/Mage.Sets/src/mage/sets/newphyrexia/Necropouncer.java new file mode 100644 index 0000000000..ae610f8265 --- /dev/null +++ b/Mage.Sets/src/mage/sets/newphyrexia/Necropouncer.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.newphyrexia; + +import java.util.UUID; +import mage.Constants.AttachmentType; +import mage.Constants.CardType; +import mage.Constants.Outcome; +import mage.Constants.Rarity; +import mage.Constants.Zone; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.continious.BoostEquippedEffect; +import mage.abilities.effects.common.continious.GainAbilityAttachedEffect; +import mage.abilities.keyword.EquipAbility; +import mage.abilities.keyword.HasteAbility; +import mage.abilities.keyword.LivingWeaponAbility; +import mage.cards.CardImpl; + +/** + * + * @author North + */ +public class Necropouncer extends CardImpl { + + public Necropouncer(UUID ownerId) { + super(ownerId, 147, "Necropouncer", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{6}"); + this.expansionSetCode = "NPH"; + this.subtype.add("Equipment"); + + this.addAbility(new LivingWeaponAbility()); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(3, 1))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(HasteAbility.getInstance(), AttachmentType.EQUIPMENT))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2))); + } + + public Necropouncer(final Necropouncer card) { + super(card); + } + + @Override + public Necropouncer copy() { + return new Necropouncer(this); + } +} diff --git a/Mage.Sets/src/mage/sets/newphyrexia/PristineTalisman.java b/Mage.Sets/src/mage/sets/newphyrexia/PristineTalisman.java new file mode 100644 index 0000000000..1e150cbedd --- /dev/null +++ b/Mage.Sets/src/mage/sets/newphyrexia/PristineTalisman.java @@ -0,0 +1,60 @@ +/* + * 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.newphyrexia; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; + +/** + * + * @author North + */ +public class PristineTalisman extends CardImpl { + + public PristineTalisman(UUID ownerId) { + super(ownerId, 151, "Pristine Talisman", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{3}"); + this.expansionSetCode = "NPH"; + + ColorlessManaAbility ability = new ColorlessManaAbility(); + ability.addEffect(new GainLifeEffect(1)); + this.addAbility(ability); + } + + public PristineTalisman(final PristineTalisman card) { + super(card); + } + + @Override + public PristineTalisman copy() { + return new PristineTalisman(this); + } +} diff --git a/Mage.Sets/src/mage/sets/newphyrexia/TezzeretsGambit.java b/Mage.Sets/src/mage/sets/newphyrexia/TezzeretsGambit.java new file mode 100644 index 0000000000..22b2fe3a8b --- /dev/null +++ b/Mage.Sets/src/mage/sets/newphyrexia/TezzeretsGambit.java @@ -0,0 +1,60 @@ +/* + * 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.newphyrexia; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.DrawCardControllerEffect; +import mage.abilities.effects.common.counter.ProliferateEffect; +import mage.cards.CardImpl; + +/** + * + * @author North + */ +public class TezzeretsGambit extends CardImpl { + + public TezzeretsGambit(UUID ownerId) { + super(ownerId, 47, "Tezzeret's Gambit", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{3}{UP}"); + this.expansionSetCode = "NPH"; + + this.color.setBlue(true); + this.getSpellAbility().addEffect(new DrawCardControllerEffect(2)); + this.getSpellAbility().addEffect(new ProliferateEffect()); + } + + public TezzeretsGambit(final TezzeretsGambit card) { + super(card); + } + + @Override + public TezzeretsGambit copy() { + return new TezzeretsGambit(this); + } +} diff --git a/Mage.Sets/src/mage/sets/newphyrexia/TriumphOfTheHordes.java b/Mage.Sets/src/mage/sets/newphyrexia/TriumphOfTheHordes.java new file mode 100644 index 0000000000..08be8cf6fe --- /dev/null +++ b/Mage.Sets/src/mage/sets/newphyrexia/TriumphOfTheHordes.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.newphyrexia; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Duration; +import mage.Constants.Rarity; +import mage.abilities.effects.common.continious.BoostControlledEffect; +import mage.abilities.effects.common.continious.GainAbilityControlledEffect; +import mage.abilities.keyword.InfectAbility; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; + +/** + * + * @author North + */ +public class TriumphOfTheHordes extends CardImpl { + + public TriumphOfTheHordes(UUID ownerId) { + super(ownerId, 123, "Triumph of the Hordes", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{2}{G}{G}"); + this.expansionSetCode = "NPH"; + + this.color.setGreen(true); + + this.getSpellAbility().addEffect(new BoostControlledEffect(1, 1, Duration.EndOfTurn)); + this.getSpellAbility().addEffect(new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.EndOfTurn)); + this.getSpellAbility().addEffect(new GainAbilityControlledEffect(InfectAbility.getInstance(), Duration.EndOfTurn)); + } + + public TriumphOfTheHordes(final TriumphOfTheHordes card) { + super(card); + } + + @Override + public TriumphOfTheHordes copy() { + return new TriumphOfTheHordes(this); + } +} diff --git a/Mage.Sets/src/mage/sets/newphyrexia/Whipflare.java b/Mage.Sets/src/mage/sets/newphyrexia/Whipflare.java new file mode 100644 index 0000000000..b84275e11c --- /dev/null +++ b/Mage.Sets/src/mage/sets/newphyrexia/Whipflare.java @@ -0,0 +1,66 @@ +/* + * 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.newphyrexia; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.effects.common.DamageAllEffect; +import mage.cards.CardImpl; +import mage.filter.common.FilterCreaturePermanent; + +/** + * + * @author North + */ +public class Whipflare extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("nonartifact creature"); + + static { + filter.getNotCardType().add(CardType.ARTIFACT); + filter.setNotCardType(true); + } + + public Whipflare(UUID ownerId) { + super(ownerId, 102, "Whipflare", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{1}{R}"); + this.expansionSetCode = "NPH"; + + this.color.setRed(true); + this.getSpellAbility().addEffect(new DamageAllEffect(2, filter)); + } + + public Whipflare(final Whipflare card) { + super(card); + } + + @Override + public Whipflare copy() { + return new Whipflare(this); + } +} diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/PennonBlade.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/PennonBlade.java new file mode 100644 index 0000000000..94cd9319f0 --- /dev/null +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/PennonBlade.java @@ -0,0 +1,67 @@ +/* + * 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.riseoftheeldrazi; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Outcome; +import mage.Constants.Rarity; +import mage.Constants.Zone; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.effects.common.continious.BoostEquippedEffect; +import mage.abilities.keyword.EquipAbility; +import mage.cards.CardImpl; +import mage.filter.common.FilterControlledCreaturePermanent; + +/** + * + * @author North + */ +public class PennonBlade extends CardImpl { + + public PennonBlade(UUID ownerId) { + super(ownerId, 221, "Pennon Blade", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{3}"); + this.expansionSetCode = "ROE"; + this.subtype.add("Equipment"); + + PermanentsOnBattlefieldCount value = new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent()); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(value, value))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(4))); + } + + public PennonBlade(final PennonBlade card) { + super(card); + } + + @Override + public PennonBlade copy() { + return new PennonBlade(this); + } +} diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/PropheticPrism.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/PropheticPrism.java new file mode 100644 index 0000000000..ffcb73b86b --- /dev/null +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/PropheticPrism.java @@ -0,0 +1,81 @@ +/* + * 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.riseoftheeldrazi; + +import java.util.UUID; +import mage.Constants.CardType; +import mage.Constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.DrawCardControllerEffect; +import mage.abilities.mana.BlackManaAbility; +import mage.abilities.mana.BlueManaAbility; +import mage.abilities.mana.GreenManaAbility; +import mage.abilities.mana.RedManaAbility; +import mage.abilities.mana.WhiteManaAbility; +import mage.cards.CardImpl; + +/** + * + * @author North + */ +public class PropheticPrism extends CardImpl { + + public PropheticPrism(UUID ownerId) { + super(ownerId, 222, "Prophetic Prism", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{2}"); + this.expansionSetCode = "ROE"; + + this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardControllerEffect(1))); + Ability ability = new BlackManaAbility(); + ability.addCost(new GenericManaCost(1)); + this.addAbility(ability); + ability = new RedManaAbility(); + ability.addCost(new GenericManaCost(1)); + this.addAbility(ability); + ability = new BlueManaAbility(); + ability.addCost(new GenericManaCost(1)); + this.addAbility(ability); + ability = new GreenManaAbility(); + ability.addCost(new GenericManaCost(1)); + this.addAbility(ability); + ability = new WhiteManaAbility(); + ability.addCost(new GenericManaCost(1)); + this.addAbility(ability); + + } + + public PropheticPrism(final PropheticPrism card) { + super(card); + } + + @Override + public PropheticPrism copy() { + return new PropheticPrism(this); + } +} diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/HandOfThePraetors.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/HandOfThePraetors.java index 8cf91669e7..32a9903ad2 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/HandOfThePraetors.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/HandOfThePraetors.java @@ -32,7 +32,6 @@ import java.util.UUID; import mage.Constants.CardType; import mage.Constants.Duration; -import mage.Constants.Outcome; import mage.Constants.Rarity; import mage.Constants.Zone; import mage.MageInt; @@ -40,17 +39,14 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.abilities.keyword.InfectAbility; import mage.cards.CardImpl; -import mage.counters.CounterType; import mage.game.Game; import mage.game.stack.Spell; -import mage.players.Player; import mage.target.TargetPlayer; import mage.filter.common.FilterCreaturePermanent; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continious.BoostControlledEffect; -import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.common.AddPoisonCounterTargetEffect; /** * @@ -58,12 +54,11 @@ import mage.abilities.TriggeredAbilityImpl; */ public class HandOfThePraetors extends CardImpl { - private static FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with infect"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with infect"); static { filter.getAbilities().add(InfectAbility.getInstance()); filter.setNotAbilities(false); - } public HandOfThePraetors (UUID ownerId) { @@ -121,46 +116,4 @@ class HandOfThePraetorsAbility extends TriggeredAbilityImpl { - - protected int amount; - - public AddPoisonCounterTargetEffect(int amount) { - super(Outcome.Damage); - this.amount = amount; - } - - public int getAmount() { - return amount; - } - - public AddPoisonCounterTargetEffect(final AddPoisonCounterTargetEffect effect) { - super(effect); - this.amount = effect.amount; - } - - @Override - public AddPoisonCounterTargetEffect copy() { - return new AddPoisonCounterTargetEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(source.getFirstTarget()); - if (player != null) { - player.getCounters().addCounter(CounterType.POISON.createInstance(amount)); - return true; - } - return false; - } - - @Override - public String getText(Ability source) { - return "Target " + source.getTargets().get(0).getTargetName() + " gets " + Integer.toString(amount) + " poison counter(s)."; - } - - } diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/LivewireLash.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/LivewireLash.java new file mode 100644 index 0000000000..041b24598c --- /dev/null +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/LivewireLash.java @@ -0,0 +1,106 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.scarsofmirrodin; + +import java.util.UUID; +import mage.Constants.AttachmentType; +import mage.Constants.CardType; +import mage.Constants.Outcome; +import mage.Constants.Rarity; +import mage.Constants.Zone; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.effects.common.continious.BoostEquippedEffect; +import mage.abilities.effects.common.continious.GainAbilityAttachedEffect; +import mage.abilities.keyword.EquipAbility; +import mage.cards.CardImpl; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.target.common.TargetCreatureOrPlayer; + +/** + * + * @author North + */ +public class LivewireLash extends CardImpl { + + public LivewireLash(UUID ownerId) { + super(ownerId, 172, "Livewire Lash", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{2}"); + this.expansionSetCode = "SOM"; + this.subtype.add("Equipment"); + + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 0))); + LivewireLashAbility ability = new LivewireLashAbility(); + ability.addTarget(new TargetCreatureOrPlayer()); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability, AttachmentType.EQUIPMENT))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2))); + } + + public LivewireLash(final LivewireLash card) { + super(card); + } + + @Override + public LivewireLash copy() { + return new LivewireLash(this); + } +} + +class LivewireLashAbility extends TriggeredAbilityImpl { + + public LivewireLashAbility() { + super(Zone.BATTLEFIELD, new DamageTargetEffect(2)); + } + + public LivewireLashAbility(final LivewireLashAbility ability) { + super(ability); + } + + @Override + public LivewireLashAbility copy() { + return new LivewireLashAbility(this); + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (event.getType() == EventType.TARGETED && event.getTargetId().equals(sourceId)) { + if (game.getCard(event.getSourceId()).getCardType().contains(CardType.SORCERY)) { + return true; + } + } + return false; + } + + @Override + public String getRule() { + return "Whenever this creature becomes the target of a spell, this creature deals 2 damage to target creature or player."; + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/SylvokLifestaff.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/SylvokLifestaff.java new file mode 100644 index 0000000000..310d3359ab --- /dev/null +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/SylvokLifestaff.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.scarsofmirrodin; + +import java.util.UUID; +import mage.Constants.AttachmentType; +import mage.Constants.CardType; +import mage.Constants.Outcome; +import mage.Constants.Rarity; +import mage.Constants.Zone; +import mage.abilities.common.PutIntoGraveFromBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.effects.common.continious.BoostEquippedEffect; +import mage.abilities.effects.common.continious.GainAbilityAttachedEffect; +import mage.abilities.keyword.EquipAbility; +import mage.cards.CardImpl; + +/** + * + * @author North + */ +public class SylvokLifestaff extends CardImpl { + + public SylvokLifestaff(UUID ownerId) { + super(ownerId, 209, "Sylvok Lifestaff", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{1}"); + this.expansionSetCode = "SOM"; + this.subtype.add("Equipment"); + + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 0))); + PutIntoGraveFromBattlefieldTriggeredAbility ability = new PutIntoGraveFromBattlefieldTriggeredAbility(new GainLifeEffect(3)); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability, AttachmentType.EQUIPMENT))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(1))); + } + + public SylvokLifestaff(final SylvokLifestaff card) { + super(card); + } + + @Override + public SylvokLifestaff copy() { + return new SylvokLifestaff(this); + } +} diff --git a/Mage/src/mage/abilities/effects/common/AddPoisonCounterTargetEffect.java b/Mage/src/mage/abilities/effects/common/AddPoisonCounterTargetEffect.java new file mode 100644 index 0000000000..60d97ae094 --- /dev/null +++ b/Mage/src/mage/abilities/effects/common/AddPoisonCounterTargetEffect.java @@ -0,0 +1,78 @@ +/* + * 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.abilities.effects.common; + +import mage.Constants.Outcome; +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.counters.CounterType; +import mage.game.Game; +import mage.players.Player; + +/** + * + * @author North + */ +public class AddPoisonCounterTargetEffect extends OneShotEffect { + + protected int amount; + + public AddPoisonCounterTargetEffect(int amount) { + super(Outcome.Damage); + this.amount = amount; + } + + public int getAmount() { + return amount; + } + + public AddPoisonCounterTargetEffect(final AddPoisonCounterTargetEffect effect) { + super(effect); + this.amount = effect.amount; + } + + @Override + public AddPoisonCounterTargetEffect copy() { + return new AddPoisonCounterTargetEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player player = game.getPlayer(source.getFirstTarget()); + if (player != null) { + player.getCounters().addCounter(CounterType.POISON.createInstance(amount)); + return true; + } + return false; + } + + @Override + public String getText(Ability source) { + return "Target " + source.getTargets().get(0).getTargetName() + " gets " + Integer.toString(amount) + " poison counter(s)."; + } +} \ No newline at end of file diff --git a/Mage/src/mage/abilities/effects/common/continious/BoostEquippedEffect.java b/Mage/src/mage/abilities/effects/common/continious/BoostEquippedEffect.java index 16def5cc47..e3709309dd 100644 --- a/Mage/src/mage/abilities/effects/common/continious/BoostEquippedEffect.java +++ b/Mage/src/mage/abilities/effects/common/continious/BoostEquippedEffect.java @@ -93,7 +93,7 @@ public class BoostEquippedEffect extends ContinuousEffectImpl