From dc4168efaee35a1ea551627925e6a9e55b376bd7 Mon Sep 17 00:00:00 2001 From: wetterlicht <matthias.noetzli@sunrise.ch> Date: Sun, 22 May 2016 19:41:59 +0200 Subject: [PATCH] --- .../src/mage/sets/darksteel/DroolingOgre.java | 4 +--- .../mage/sets/darksteel/EmissaryOfDespair.java | 4 ++-- .../src/mage/sets/darksteel/MurderousSpoils.java | 4 ++-- .../src/mage/sets/darksteel/PsychicOverload.java | 15 ++++++++++----- .../src/mage/sets/darksteel/PulseOfTheTangle.java | 5 +++-- 5 files changed, 18 insertions(+), 14 deletions(-) diff --git a/Mage.Sets/src/mage/sets/darksteel/DroolingOgre.java b/Mage.Sets/src/mage/sets/darksteel/DroolingOgre.java index b2368462b4..9dba69254a 100644 --- a/Mage.Sets/src/mage/sets/darksteel/DroolingOgre.java +++ b/Mage.Sets/src/mage/sets/darksteel/DroolingOgre.java @@ -31,7 +31,6 @@ import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; -import mage.abilities.common.SpellCastAllTriggeredAbility; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; @@ -42,7 +41,6 @@ import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.Rarity; import mage.constants.Zone; -import mage.filter.common.FilterArtifactSpell; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; @@ -139,7 +137,7 @@ public class DroolingOgre extends CardImpl { @Override public String getRule() { - return "Whenever a player casts an artifact spell, that player gains control of {this}"; + return "Whenever a player casts an artifact spell, that player gains control of {this}."; } } } diff --git a/Mage.Sets/src/mage/sets/darksteel/EmissaryOfDespair.java b/Mage.Sets/src/mage/sets/darksteel/EmissaryOfDespair.java index 70a8a54d27..7647695b6e 100644 --- a/Mage.Sets/src/mage/sets/darksteel/EmissaryOfDespair.java +++ b/Mage.Sets/src/mage/sets/darksteel/EmissaryOfDespair.java @@ -75,11 +75,11 @@ class EmissaryOfDespairCount implements DynamicValue { @Override public int calculate(Game game, Ability sourceAbility, Effect effect) { - if (sourceAbility.getFirstTarget() == null) { + if (effect.getTargetPointer().getFirst(game, sourceAbility) == null) { return 0; } FilterArtifactPermanent filter = new FilterArtifactPermanent(); - filter.add(new ControllerIdPredicate(sourceAbility.getFirstTarget())); + filter.add(new ControllerIdPredicate(effect.getTargetPointer().getFirst(game, sourceAbility))); return game.getBattlefield().count(filter, sourceAbility.getSourceId(), sourceAbility.getControllerId(), game); } diff --git a/Mage.Sets/src/mage/sets/darksteel/MurderousSpoils.java b/Mage.Sets/src/mage/sets/darksteel/MurderousSpoils.java index 018c2b2c71..80c5130db5 100644 --- a/Mage.Sets/src/mage/sets/darksteel/MurderousSpoils.java +++ b/Mage.Sets/src/mage/sets/darksteel/MurderousSpoils.java @@ -105,8 +105,8 @@ class MurderousSpoilsEffect extends OneShotEffect { } } for (Permanent p : attachments) { - ContinuousEffect gainControl = new GainControlTargetEffect(Duration.EndOfGame); - gainControl.setTargetPointer(new FixedTarget(p.getId())); + ContinuousEffect gainControl = new GainControlTargetEffect(Duration.Custom); + gainControl.setTargetPointer(new FixedTarget(p, game)); game.addEffect(gainControl, source); } target.destroy(source.getId(), game, true); diff --git a/Mage.Sets/src/mage/sets/darksteel/PsychicOverload.java b/Mage.Sets/src/mage/sets/darksteel/PsychicOverload.java index 04e8c82dcc..d4fe61d82d 100644 --- a/Mage.Sets/src/mage/sets/darksteel/PsychicOverload.java +++ b/Mage.Sets/src/mage/sets/darksteel/PsychicOverload.java @@ -28,23 +28,25 @@ package mage.sets.darksteel; import java.util.UUID; +import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.costs.common.DiscardCardCost; import mage.abilities.costs.common.DiscardTargetCost; -import mage.abilities.costs.common.DiscardXTargetCost; +import mage.abilities.effects.Effect; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.effects.common.TapEnchantedEffect; -import mage.abilities.effects.common.UntapEnchantedEffect; +import mage.abilities.effects.common.UntapSourceEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; +import mage.constants.AttachmentType; import mage.constants.CardType; +import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.Rarity; import mage.constants.Zone; -import mage.filter.FilterCard; import mage.filter.common.FilterArtifactCard; import mage.target.TargetPermanent; import mage.target.common.TargetCardInHand; @@ -70,8 +72,11 @@ public class PsychicOverload extends CardImpl { this.addAbility(new EntersBattlefieldTriggeredAbility(new TapEnchantedEffect())); // Enchanted permanent doesn't untap during its controller's untap step. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepEnchantedEffect())); + // Enchanted permanent has "Discard two artifact cards: Untap this permanent." - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapEnchantedEffect(), new DiscardTargetCost(new TargetCardInHand(2, new FilterArtifactCard("two artifact cards"))))); + Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new DiscardTargetCost(new TargetCardInHand(2, new FilterArtifactCard("two artifact cards")))); + Effect effect = new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA, Duration.WhileOnBattlefield, "Enchanted permanent has \"Discard two artifact cards: Untap this permanent.\""); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); } public PsychicOverload(final PsychicOverload card) { diff --git a/Mage.Sets/src/mage/sets/darksteel/PulseOfTheTangle.java b/Mage.Sets/src/mage/sets/darksteel/PulseOfTheTangle.java index 029347f42c..55e0a3d74f 100644 --- a/Mage.Sets/src/mage/sets/darksteel/PulseOfTheTangle.java +++ b/Mage.Sets/src/mage/sets/darksteel/PulseOfTheTangle.java @@ -76,7 +76,7 @@ class PulseOfTheTangleReturnToHandEffect extends OneShotEffect { PulseOfTheTangleReturnToHandEffect() { super(Outcome.Benefit); - this.staticText = "Then if an opponent controls more creatures than you, return Pulse of the Tangle to its owner's hand"; + this.staticText = "Then if an opponent controls more creatures than you, return {this} to its owner's hand"; } PulseOfTheTangleReturnToHandEffect(final PulseOfTheTangleReturnToHandEffect effect) { @@ -93,6 +93,7 @@ class PulseOfTheTangleReturnToHandEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); FilterControlledCreaturePermanent controllerFilter = new FilterControlledCreaturePermanent(); PermanentsOnBattlefieldCount controllerCount = new PermanentsOnBattlefieldCount(controllerFilter); + int controllerAmount = controllerCount.calculate(game, source, this); boolean check = false; if (controller != null) { for (UUID opponentID : game.getOpponents(controller.getId())) { @@ -100,7 +101,7 @@ class PulseOfTheTangleReturnToHandEffect extends OneShotEffect { FilterCreaturePermanent opponentFilter = new FilterCreaturePermanent(); opponentFilter.add(new ControllerIdPredicate(opponentID)); PermanentsOnBattlefieldCount opponentCreatureCount = new PermanentsOnBattlefieldCount(opponentFilter); - check = opponentCreatureCount.calculate(game, source, this) > controllerCount.calculate(game, source, this); + check = opponentCreatureCount.calculate(game, source, this) > controllerAmount; if (check) { break; }