diff --git a/Mage.Sets/src/mage/sets/commander/ScavengingOoze.java b/Mage.Sets/src/mage/sets/commander/ScavengingOoze.java index b24250c5e2..1ef1fa2c41 100644 --- a/Mage.Sets/src/mage/sets/commander/ScavengingOoze.java +++ b/Mage.Sets/src/mage/sets/commander/ScavengingOoze.java @@ -32,9 +32,7 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.GainLifeEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.constants.CardType; @@ -65,9 +63,6 @@ public class ScavengingOoze extends CardImpl { // {G}: Exile target card from a graveyard. If it was a creature card, put a +1/+1 counter on Scavenging Ooze and you gain 1 life. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScavengingOozeEffect(), new ManaCostsImpl("{G}")); ability.addTarget(new TargetCardInGraveyard()); - Effect effect = new GainLifeEffect(1); - effect.setText("and you gain 1 life"); - ability.addEffect(effect); this.addAbility(ability); } @@ -85,7 +80,7 @@ class ScavengingOozeEffect extends OneShotEffect { public ScavengingOozeEffect() { super(Outcome.Benefit); - this.staticText = "Exile target card from a graveyard. If it was a creature card, put a +1/+1 counter on {this}"; + this.staticText = "Exile target card from a graveyard. If it was a creature card, put a +1/+1 counter on {this} and you gain 1 life"; } public ScavengingOozeEffect(final ScavengingOozeEffect effect) { @@ -108,6 +103,7 @@ class ScavengingOozeEffect extends OneShotEffect { if (sourcePermanent != null) { sourcePermanent.addCounters(CounterType.P1P1.createInstance(), game); } + controller.gainLife(1, game); } return true; } diff --git a/Mage.Sets/src/mage/sets/urzaslegacy/Snap.java b/Mage.Sets/src/mage/sets/urzaslegacy/Snap.java index e076d9eb28..db185a648b 100644 --- a/Mage.Sets/src/mage/sets/urzaslegacy/Snap.java +++ b/Mage.Sets/src/mage/sets/urzaslegacy/Snap.java @@ -28,11 +28,11 @@ package mage.sets.urzaslegacy; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.effects.common.UntapLandsEffect; import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; import mage.target.common.TargetCreaturePermanent; /** diff --git a/Mage/src/mage/abilities/effects/common/UntapLandsEffect.java b/Mage/src/mage/abilities/effects/common/UntapLandsEffect.java index bd4fc402a2..bc46e3f58b 100644 --- a/Mage/src/mage/abilities/effects/common/UntapLandsEffect.java +++ b/Mage/src/mage/abilities/effects/common/UntapLandsEffect.java @@ -1,20 +1,48 @@ +/* + * 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 java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.constants.Outcome; import mage.filter.common.FilterLandPermanent; import mage.game.Game; import mage.game.permanent.Permanent; +import mage.players.Player; import mage.target.common.TargetLandPermanent; -import java.util.UUID; - /** * "Untap up to X lands" effect */ public class UntapLandsEffect extends OneShotEffect { - private int amount; + private final int amount; public UntapLandsEffect(int amount) { super(Outcome.Untap); @@ -29,15 +57,20 @@ public class UntapLandsEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - TargetLandPermanent target = new TargetLandPermanent(0, amount, new FilterLandPermanent(), true); - if (target.canChoose(source.getControllerId(), game)) { - if (target.choose(Outcome.Untap, source.getControllerId(), source.getSourceId(), game)) { - for (Object targetId : target.getTargets()) { - Permanent p = game.getPermanent((UUID) targetId); - if (p.isTapped()) - p.untap(game); + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + TargetLandPermanent target = new TargetLandPermanent(0, amount, new FilterLandPermanent(), true); + if (target.canChoose(source.getControllerId(), game)) { + if (target.choose(Outcome.Untap, source.getControllerId(), source.getSourceId(), game)) { + for (Object targetId : target.getTargets()) { + Permanent p = game.getPermanent((UUID) targetId); + if (p != null) { + p.untap(game); + } + } } } + return true; } return false; }