diff --git a/Mage.Sets/src/mage/sets/magic2010/LilianaVess.java b/Mage.Sets/src/mage/sets/magic2010/LilianaVess.java index 6d6ad8afad..03f626d055 100644 --- a/Mage.Sets/src/mage/sets/magic2010/LilianaVess.java +++ b/Mage.Sets/src/mage/sets/magic2010/LilianaVess.java @@ -62,7 +62,7 @@ public class LilianaVess extends CardImpl { this.color.setBlack(true); this.loyalty = new MageInt(5); - LoyaltyAbility ability1 = new LoyaltyAbility(new DiscardTargetEffect(1), -1); + LoyaltyAbility ability1 = new LoyaltyAbility(new DiscardTargetEffect(1), 1); ability1.addTarget(new TargetPlayer()); this.addAbility(ability1); diff --git a/Mage.Sets/src/mage/sets/magic2010/ProteanHydra.java b/Mage.Sets/src/mage/sets/magic2010/ProteanHydra.java index 37f5a8dfa4..0479978404 100644 --- a/Mage.Sets/src/mage/sets/magic2010/ProteanHydra.java +++ b/Mage.Sets/src/mage/sets/magic2010/ProteanHydra.java @@ -171,7 +171,7 @@ public class ProteanHydra extends CardImpl { class ProteanHydraAbility extends TriggeredAbilityImpl { public ProteanHydraAbility() { - super(Zone.GRAVEYARD, new CreateDelayedTriggeredAbilityEffect(new ProteanHydraDelayedTriggeredAbility()), true); + super(Zone.BATTLEFIELD, new CreateDelayedTriggeredAbilityEffect(new ProteanHydraDelayedTriggeredAbility()), true); } public ProteanHydraAbility(final ProteanHydraAbility ability) { diff --git a/Mage.Sets/src/mage/sets/magic2011/LeylineOfAnticipation.java b/Mage.Sets/src/mage/sets/magic2011/LeylineOfAnticipation.java index 5aa15a3ded..e970d76a26 100644 --- a/Mage.Sets/src/mage/sets/magic2011/LeylineOfAnticipation.java +++ b/Mage.Sets/src/mage/sets/magic2011/LeylineOfAnticipation.java @@ -104,4 +104,9 @@ class LeylineOfAnticipationEffect extends AsThoughEffectImpl { this.color.setRed(true); this.addAbility(LeylineAbility.getInstance()); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new LeylineOfPunishmentEffect1())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new LeylineOfPunishmentEffect2())); } public LeylineOfPunishment(final LeylineOfPunishment card) { diff --git a/Mage.Sets/src/mage/sets/magic2011/LeylineOfTheVoid.java b/Mage.Sets/src/mage/sets/magic2011/LeylineOfTheVoid.java index 3197671c50..90a4f6a180 100644 --- a/Mage.Sets/src/mage/sets/magic2011/LeylineOfTheVoid.java +++ b/Mage.Sets/src/mage/sets/magic2011/LeylineOfTheVoid.java @@ -104,7 +104,6 @@ class LeylineOfTheVoidEffect extends ReplacementEffectImpl { class LilianasCaressAbility extends TriggeredAbilityImpl { public LilianasCaressAbility() { - super(Zone.GRAVEYARD, new LoseLifeTargetEffect(2), true); + super(Zone.BATTLEFIELD, new LoseLifeTargetEffect(2), false); } public LilianasCaressAbility(final LilianasCaressAbility ability) { diff --git a/Mage.Sets/src/mage/sets/magic2011/LilianasSpecter.java b/Mage.Sets/src/mage/sets/magic2011/LilianasSpecter.java index 569099aa6f..057a9bb47c 100644 --- a/Mage.Sets/src/mage/sets/magic2011/LilianasSpecter.java +++ b/Mage.Sets/src/mage/sets/magic2011/LilianasSpecter.java @@ -56,7 +56,7 @@ public class LilianasSpecter extends CardImpl { this.toughness = new MageInt(1); this.addAbility(FlyingAbility.getInstance()); - this.addAbility(new EntersBattlefieldTriggeredAbility(new LilianasSpecterEffect(), true)); + this.addAbility(new EntersBattlefieldTriggeredAbility(new LilianasSpecterEffect(), false)); } public LilianasSpecter(final LilianasSpecter card) { diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/Vengevine.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/Vengevine.java index 723e05dd4f..a19fa45f94 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/Vengevine.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/Vengevine.java @@ -135,7 +135,7 @@ class VengevineWatcher extends WatcherImpl { public void watch(GameEvent event, Game game) { if (event.getType() == EventType.SPELL_CAST && event.getPlayerId().equals(controllerId)) { Spell spell = (Spell)game.getStack().getStackObject(event.getTargetId()); - if (spell.getCardType().contains(CardType.CREATURE)) { + if (spell != null && spell.getCardType().contains(CardType.CREATURE)) { creatureSpellCount++; if (creatureSpellCount == 2) condition = true; diff --git a/Mage/src/mage/abilities/effects/common/CantTargetControllerEffect.java b/Mage/src/mage/abilities/effects/common/CantTargetControllerEffect.java index 1bbb65c14d..1d7955fbc3 100644 --- a/Mage/src/mage/abilities/effects/common/CantTargetControllerEffect.java +++ b/Mage/src/mage/abilities/effects/common/CantTargetControllerEffect.java @@ -76,7 +76,7 @@ public class CantTargetControllerEffect extends ReplacementEffectImpl cards = new ArrayList(); if (target.getTargets().size() > 0) { for (UUID cardId: (List)target.getTargets()) { Card card = player.getLibrary().remove(cardId, game); - if (card != null){ - card.moveToZone(Zone.LIBRARY, game, true); - } + if (card != null) + cards.add(card); } player.shuffleLibrary(game); + for (Card card: cards) { + card.moveToZone(Zone.LIBRARY, game, true); + } } return true; } diff --git a/Mage/src/mage/game/GameImpl.java b/Mage/src/mage/game/GameImpl.java index a28ef0714a..2757c932f7 100644 --- a/Mage/src/mage/game/GameImpl.java +++ b/Mage/src/mage/game/GameImpl.java @@ -355,7 +355,7 @@ public abstract class GameImpl> implements Game, Serializa Player player = getPlayer(playerId); for (Card card: player.getHand().getCards(this)) { if (card.getAbilities().containsKey(LeylineAbility.getInstance().getId())) { - if (!player.chooseUse(Outcome.PutCardInPlay, "Do you wish to put " + card.getName() + " on the battlefield?", this)) { + if (player.chooseUse(Outcome.PutCardInPlay, "Do you wish to put " + card.getName() + " on the battlefield?", this)) { player.getHand().remove(card); card.putOntoBattlefield(this, Zone.HAND, player.getId()); } diff --git a/Mage/src/mage/game/permanent/PermanentImpl.java b/Mage/src/mage/game/permanent/PermanentImpl.java index dfedf6c8f1..8ca173c404 100644 --- a/Mage/src/mage/game/permanent/PermanentImpl.java +++ b/Mage/src/mage/game/permanent/PermanentImpl.java @@ -116,7 +116,7 @@ public abstract class PermanentImpl> extends CardImpl @Override public void reset(Game game) { - this.controllerId = ownerId; +// this.controllerId = ownerId; this.maxBlocks = 1; } diff --git a/Mage/src/mage/players/PlayerImpl.java b/Mage/src/mage/players/PlayerImpl.java index 0386ca70b9..3fc016c88f 100644 --- a/Mage/src/mage/players/PlayerImpl.java +++ b/Mage/src/mage/players/PlayerImpl.java @@ -359,7 +359,7 @@ public abstract class PlayerImpl> implements Player, Ser //20091005 - 601.2a Card card = game.getCard(ability.getSourceId()); if (card != null) { - if (!game.replaceEvent(GameEvent.getEvent(GameEvent.EventType.CAST_SPELL, card.getId(), playerId))) { + if (!game.replaceEvent(GameEvent.getEvent(GameEvent.EventType.CAST_SPELL, ability.getId(), playerId))) { game.bookmarkState(); removeFromHand(card, game); game.getStack().push(new Spell(card, ability, playerId)); @@ -367,7 +367,7 @@ public abstract class PlayerImpl> implements Player, Ser for (KickerAbility kicker: card.getAbilities().getKickerAbilities()) { kicker.activate(game, false); } - game.fireEvent(GameEvent.getEvent(GameEvent.EventType.SPELL_CAST, card.getId(), playerId)); + game.fireEvent(GameEvent.getEvent(GameEvent.EventType.SPELL_CAST, ability.getId(), playerId)); game.fireInformEvent(name + " casts " + card.getName()); game.removeLastBookmark(); return true;