diff --git a/Mage.Sets/src/mage/sets/Unglued.java b/Mage.Sets/src/mage/sets/Unglued.java new file mode 100644 index 00000000000..476d4c34e3d --- /dev/null +++ b/Mage.Sets/src/mage/sets/Unglued.java @@ -0,0 +1,22 @@ +package mage.sets; + +import mage.cards.ExpansionSet; +import mage.constants.SetType; + +import java.util.GregorianCalendar; + +/** + * + * @author lopho + */ +public class Unglued extends ExpansionSet { + private static final Unglued fINSTANCE = new Unglued(); + + public static Unglued getInstance() { + return fINSTANCE; + } + + private Unglued() { + super("Unglued", "UGL", "mage.sets.unglued", new GregorianCalendar(1998, 8, 11).getTime(), SetType.JOKESET); + } +} diff --git a/Mage.Sets/src/mage/sets/guildpact/HissingMiasma.java b/Mage.Sets/src/mage/sets/guildpact/HissingMiasma.java new file mode 100644 index 00000000000..143746bbd9a --- /dev/null +++ b/Mage.Sets/src/mage/sets/guildpact/HissingMiasma.java @@ -0,0 +1,62 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.guildpact; + +import java.util.UUID; +import mage.abilities.common.AttackedByCreatureTriggeredAbility; +import mage.abilities.effects.common.LoseLifeTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.SetTargetPointer; + +/** + * + * @author lopho + */ +public class HissingMiasma extends CardImpl { + + private static final String RULE = "Whenever a creature attacks you, its controller loses 1 life."; + + public HissingMiasma(UUID ownerId) { + super(ownerId, 51, "Hissing Miasma", Rarity.UNCOMMON, new CardType[]{CardType.ENCHANTMENT}, "{1}{B}{B}"); + this.expansionSetCode = "GPT"; + + // Whenever a creature attacks you, its controller loses 1 life. + this.addAbility(new AttackedByCreatureTriggeredAbility(new LoseLifeTargetEffect(1), false, SetTargetPointer.PLAYER)); + } + + public HissingMiasma(final HissingMiasma card) { + super(card); + } + + @Override + public HissingMiasma copy() { + return new HissingMiasma(this); + } +} diff --git a/Mage.Sets/src/mage/sets/guildpact/PoisonbellyOgre.java b/Mage.Sets/src/mage/sets/guildpact/PoisonbellyOgre.java new file mode 100644 index 00000000000..1709d59d7e6 --- /dev/null +++ b/Mage.Sets/src/mage/sets/guildpact/PoisonbellyOgre.java @@ -0,0 +1,76 @@ +/* + * 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.guildpact; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; +import mage.abilities.effects.common.LoseLifeTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.SetTargetPointer; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.permanent.AnotherPredicate; + +/** + * + * @author lopho + */ +public class PoisonbellyOgre extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature"); + static { + filter.add(new AnotherPredicate()); + } + + private final static String RULE = "Whenever another creature enters the battlefield, its controller loses 1 life."; + + public PoisonbellyOgre(UUID ownerId) { + super(ownerId, 57, "Poisonbelly Ogre", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{4}{B}"); + this.expansionSetCode = "GPT"; + this.subtype.add("Ogre"); + this.subtype.add("Warrior"); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // Whenever another creature enters the battlefield, its controller loses 1 life. + this.addAbility(new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD, new LoseLifeTargetEffect(1), filter, false, SetTargetPointer.PLAYER, RULE, false)); + + } + + public PoisonbellyOgre(final PoisonbellyOgre card) { + super(card); + } + + @Override + public PoisonbellyOgre copy() { + return new PoisonbellyOgre(this); + } +} diff --git a/Mage.Sets/src/mage/sets/magic2015/GarrukApexPredator.java b/Mage.Sets/src/mage/sets/magic2015/GarrukApexPredator.java index b9426713347..7bcaa7023c1 100644 --- a/Mage.Sets/src/mage/sets/magic2015/GarrukApexPredator.java +++ b/Mage.Sets/src/mage/sets/magic2015/GarrukApexPredator.java @@ -48,6 +48,7 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.Rarity; +import mage.constants.SetTargetPointer; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.FilterPermanent; @@ -169,7 +170,7 @@ class GarrukApexPredatorEmblem extends Emblem { setName("EMBLEM: Garruk, Apex Predator"); Effect effect = new BoostTargetEffect(5,5,Duration.EndOfTurn); effect.setText("it gets +5/+5"); - Ability ability = new AttackedByCreatureTriggeredAbility(Zone.COMMAND, effect, false, true); + Ability ability = new AttackedByCreatureTriggeredAbility(Zone.COMMAND, effect, false, SetTargetPointer.PERMANENT); effect = new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, "and gains trample until end of turn"); ability.addEffect(effect); diff --git a/Mage.Sets/src/mage/sets/ravnica/StrandsOfUndeath.java b/Mage.Sets/src/mage/sets/ravnica/StrandsOfUndeath.java new file mode 100644 index 00000000000..07c8f337ceb --- /dev/null +++ b/Mage.Sets/src/mage/sets/ravnica/StrandsOfUndeath.java @@ -0,0 +1,83 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.ravnica; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.RegenerateAttachedEffect; +import mage.abilities.effects.common.discard.DiscardTargetEffect; +import mage.abilities.keyword.EnchantAbility; +import mage.cards.CardImpl; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.target.TargetPermanent; +import mage.target.TargetPlayer; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author lopho + */ +public class StrandsOfUndeath extends CardImpl { + + public StrandsOfUndeath(UUID ownerId) { + super(ownerId, 108, "Strands of Undeath", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{3}{B}"); + this.expansionSetCode = "RAV"; + this.subtype.add("Aura"); + + // Enchant creature + // When Strands of Undeath enters the battlefield, target player discards two cards. + // {B}: Regenerate enchanted creature. + TargetPermanent auraTarget = new TargetCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.AddAbility)); + this.addAbility(new EnchantAbility(auraTarget.getTargetName())); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateAttachedEffect(AttachmentType.AURA), new ManaCostsImpl("{B}"))); + + Ability abilityDiscard = new EntersBattlefieldTriggeredAbility(new DiscardTargetEffect(2)); + abilityDiscard.addTarget(new TargetPlayer()); + this.addAbility(abilityDiscard); + } + + public StrandsOfUndeath(final StrandsOfUndeath card) { + super(card); + } + + @Override + public StrandsOfUndeath copy() { + return new StrandsOfUndeath(this); + } +} diff --git a/Mage.Sets/src/mage/sets/unglued/Forest.java b/Mage.Sets/src/mage/sets/unglued/Forest.java new file mode 100644 index 00000000000..0a2419e89fa --- /dev/null +++ b/Mage.Sets/src/mage/sets/unglued/Forest.java @@ -0,0 +1,51 @@ +/* + * Copyright 2014 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.unglued; + +import java.util.UUID; + +/** + * @author lopho + */ +public class Forest extends mage.cards.basiclands.Forest { + + public Forest(UUID ownerId) { + super(ownerId, 88); + this.expansionSetCode = "UGL"; + } + + public Forest(final Forest card) { + super(card); + } + + @Override + public Forest copy() { + return new Forest(this); + } +} diff --git a/Mage.Sets/src/mage/sets/unglued/Island.java b/Mage.Sets/src/mage/sets/unglued/Island.java new file mode 100644 index 00000000000..920b04f02fb --- /dev/null +++ b/Mage.Sets/src/mage/sets/unglued/Island.java @@ -0,0 +1,52 @@ +/* + * Copyright 2014 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.unglued; + +import java.util.UUID; + +/** + * @author lopho + */ +public class Island extends mage.cards.basiclands.Island { + + public Island(UUID ownerId) { + super(ownerId, 85); + this.expansionSetCode = "UGL"; + } + + public Island(final Island card) { + super(card); + } + + @Override + public Island copy() { + return new Island(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/unglued/Mountain.java b/Mage.Sets/src/mage/sets/unglued/Mountain.java new file mode 100644 index 00000000000..d5d44f093d2 --- /dev/null +++ b/Mage.Sets/src/mage/sets/unglued/Mountain.java @@ -0,0 +1,53 @@ +/* + * Copyright 2014 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.unglued; + +import java.util.UUID; + +/** + * @author lopho + */ +public class Mountain extends mage.cards.basiclands.Mountain { + + public Mountain(UUID ownerId) { + super(ownerId, 87); + this.expansionSetCode = "UGL"; + } + + public Mountain(final Mountain card) { + super(card); + } + + @Override + public Mountain copy() { + return new Mountain(this); + } + +} + diff --git a/Mage.Sets/src/mage/sets/unglued/Plains.java b/Mage.Sets/src/mage/sets/unglued/Plains.java new file mode 100644 index 00000000000..227e3382501 --- /dev/null +++ b/Mage.Sets/src/mage/sets/unglued/Plains.java @@ -0,0 +1,52 @@ +/* + * Copyright 2014 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.unglued; + +import java.util.UUID; + +/** + * @author lopho + */ +public class Plains extends mage.cards.basiclands.Plains { + + public Plains(UUID ownerId) { + super(ownerId, 84); + this.expansionSetCode = "UGL"; + } + + public Plains(final Plains card) { + super(card); + } + + @Override + public Plains copy() { + return new Plains(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/unglued/Swamp.java b/Mage.Sets/src/mage/sets/unglued/Swamp.java new file mode 100644 index 00000000000..9b697185af2 --- /dev/null +++ b/Mage.Sets/src/mage/sets/unglued/Swamp.java @@ -0,0 +1,52 @@ +/* + * Copyright 2014 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.unglued; + +import java.util.UUID; + +/** + * @author lopho + */ +public class Swamp extends mage.cards.basiclands.Swamp { + + public Swamp(UUID ownerId) { + super(ownerId, 86); + this.expansionSetCode = "UGL"; + } + + public Swamp(final Swamp card) { + super(card); + } + + @Override + public Swamp copy() { + return new Swamp(this); + } + +} diff --git a/Mage/src/mage/abilities/common/AttackedByCreatureTriggeredAbility.java b/Mage/src/mage/abilities/common/AttackedByCreatureTriggeredAbility.java index 478672b0b32..5b4e3053bf7 100644 --- a/Mage/src/mage/abilities/common/AttackedByCreatureTriggeredAbility.java +++ b/Mage/src/mage/abilities/common/AttackedByCreatureTriggeredAbility.java @@ -31,6 +31,7 @@ package mage.abilities.common; import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; +import mage.constants.SetTargetPointer; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; @@ -43,25 +44,25 @@ import mage.target.targetpointer.FixedTarget; */ public class AttackedByCreatureTriggeredAbility extends TriggeredAbilityImpl { - protected boolean setTargetPointer; + protected SetTargetPointer setTargetPointer; public AttackedByCreatureTriggeredAbility(Effect effect) { this(effect, false); } public AttackedByCreatureTriggeredAbility(Effect effect, boolean optional) { - this(effect, optional, false); + this(effect, optional, SetTargetPointer.PERMANENT); } - public AttackedByCreatureTriggeredAbility(Effect effect, boolean optional, boolean setTargetPointer) { + public AttackedByCreatureTriggeredAbility(Effect effect, boolean optional, SetTargetPointer setTargetPointer) { this(Zone.BATTLEFIELD, effect, optional, setTargetPointer); } - public AttackedByCreatureTriggeredAbility(Zone zone, Effect effect, boolean optional, boolean setTargetPointer) { + public AttackedByCreatureTriggeredAbility(Zone zone, Effect effect, boolean optional, SetTargetPointer setTargetPointer) { super(zone, effect, optional); this.setTargetPointer = setTargetPointer; } - + public AttackedByCreatureTriggeredAbility(AttackedByCreatureTriggeredAbility ability) { super(ability); this.setTargetPointer = ability.setTargetPointer; @@ -77,9 +78,17 @@ public class AttackedByCreatureTriggeredAbility extends TriggeredAbilityImpl { UUID playerId = game.getCombat().getDefendingPlayerId(event.getSourceId(), game); Permanent attackingCreature = game.getPermanent(event.getSourceId()); if (getControllerId().equals(playerId) && attackingCreature != null) { - if (setTargetPointer) { + if (!setTargetPointer.equals(SetTargetPointer.NONE)) { for (Effect effect : this.getEffects()) { - effect.setTargetPointer(new FixedTarget(event.getSourceId())); + switch(setTargetPointer) { + case PERMANENT: + effect.setTargetPointer(new FixedTarget(event.getTargetId())); + break; + case PLAYER: + effect.setTargetPointer(new FixedTarget(attackingCreature.getControllerId())); + break; + } + } } return true;