* Fixed a bug of PlayTheTopCardEffect that alloed all players to play the card. (Concerns Oracle of Mul-Daya, Garruk's Horde, Future Sight, Courser of Kruphix, Melek Izzet Paragon, Magus of the Future).

This commit is contained in:
LevelX2 2014-12-31 14:26:57 +01:00
parent d0c0a7391d
commit 41b6a41fda
2 changed files with 19 additions and 11 deletions

View file

@ -29,13 +29,14 @@
package mage.sets.magic2011; package mage.sets.magic2011;
import java.util.UUID; import java.util.UUID;
import mage.constants.CardType; import mage.abilities.effects.Effect;
import mage.constants.Duration;
import mage.constants.Rarity;
import mage.abilities.effects.common.continious.BoostTargetEffect; import mage.abilities.effects.common.continious.BoostTargetEffect;
import mage.abilities.effects.common.continious.GainAbilityTargetEffect; import mage.abilities.effects.common.continious.GainAbilityTargetEffect;
import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Rarity;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
/** /**
@ -47,10 +48,15 @@ public class MightyLeap extends CardImpl {
public MightyLeap(UUID ownerId) { public MightyLeap(UUID ownerId) {
super(ownerId, 22, "Mighty Leap", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{1}{W}"); super(ownerId, 22, "Mighty Leap", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{1}{W}");
this.expansionSetCode = "M11"; this.expansionSetCode = "M11";
this.color.setWhite(true);
// Target creature gets +2/+2 and gains flying until end of turn.
Effect effect = new BoostTargetEffect(2, 2, Duration.EndOfTurn);
effect.setText("Target creature gets +2/+2");
this.getSpellAbility().addEffect(effect);
effect = new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn);
effect.setText("and gains flying until end of turn");
this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addTarget(new TargetCreaturePermanent());
this.getSpellAbility().addEffect(new BoostTargetEffect(2, 2, Duration.EndOfTurn));
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn));
} }
public MightyLeap(final MightyLeap card) { public MightyLeap(final MightyLeap card) {

View file

@ -73,11 +73,13 @@ public class PlayTheTopCardEffect extends AsThoughEffectImpl {
} }
@Override @Override
public boolean applies(UUID sourceId, Ability source, UUID affectedControllerId, Game game) { public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) {
Card card = game.getCard(sourceId); Card cardOnTop = game.getCard(objectId);
if (card != null && filter.match(card, game)) { if (cardOnTop != null &&
Player player = game.getPlayer(card.getOwnerId()); affectedControllerId.equals(source.getControllerId()) &&
if (player != null && card.equals(player.getLibrary().getFromTop(game))) { filter.match(cardOnTop, game)) {
Player player = game.getPlayer(cardOnTop.getOwnerId());
if (player != null && cardOnTop.equals(player.getLibrary().getFromTop(game))) {
return true; return true;
} }
} }