diff --git a/Mage.Sets/src/mage/sets/modernmasters/WarrenWeirding.java b/Mage.Sets/src/mage/sets/modernmasters/WarrenWeirding.java index e3849653ed0..fef30d41ba1 100644 --- a/Mage.Sets/src/mage/sets/modernmasters/WarrenWeirding.java +++ b/Mage.Sets/src/mage/sets/modernmasters/WarrenWeirding.java @@ -30,10 +30,12 @@ package mage.sets.modernmasters; import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenTargetEffect; import mage.abilities.effects.common.continious.GainAbilitySourceEffect; +import mage.abilities.effects.common.continious.GainAbilityTargetEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.constants.CardType; @@ -85,7 +87,7 @@ public class WarrenWeirding extends CardImpl { class WarrenWeirdingEffect extends OneShotEffect { - private static final FilterCreaturePermanent filterGoblin = new FilterCreaturePermanent("creature an opponent controls"); + private static final FilterCreaturePermanent filterGoblin = new FilterCreaturePermanent(); static { filterGoblin.add(new SubtypePredicate("Goblin")); } @@ -116,9 +118,19 @@ class WarrenWeirdingEffect extends OneShotEffect { if (permanent != null) { permanent.sacrifice(source.getSourceId(), game); if (filterGoblin.match(permanent, game)) { - Effect effect = new CreateTokenTargetEffect(new WarrenWeirdingBlackGoblinRogueToken(), 2); - effect.setTargetPointer(new FixedTarget(player.getId())); - effect.apply(game, source); + for (int i = 0; i < 2; i++) { + Token token = new WarrenWeirdingBlackGoblinRogueToken(); + Effect effect = new CreateTokenTargetEffect(token); + effect.setTargetPointer(new FixedTarget(player.getId())); + if (effect.apply(game, source)) { + Permanent tokenPermanent = game.getPermanent(token.getLastAddedToken()); + if (tokenPermanent != null) { + ContinuousEffect hasteEffect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn); + hasteEffect.setTargetPointer(new FixedTarget(tokenPermanent.getId())); + game.addEffect(hasteEffect, source); + } + } + } } } return true; @@ -142,8 +154,5 @@ class WarrenWeirdingBlackGoblinRogueToken extends Token { subtype.add("Rogue"); power.setValue(1); toughness.setValue(1); - Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(HasteAbility.getInstance(), Duration.EndOfTurn)); - ability.setRuleVisible(false); - this.addAbility(ability); } } diff --git a/Mage/src/mage/abilities/effects/common/CreateTokenTargetEffect.java b/Mage/src/mage/abilities/effects/common/CreateTokenTargetEffect.java index 60342f07369..dfe5cbab406 100644 --- a/Mage/src/mage/abilities/effects/common/CreateTokenTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/CreateTokenTargetEffect.java @@ -1,13 +1,17 @@ package mage.abilities.effects.common; +import java.util.Locale; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.OneShotEffect; import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.token.Token; +import mage.players.Player; +import mage.util.CardUtil; /** * @author Loki @@ -55,8 +59,19 @@ public class CreateTokenTargetEffect extends OneShotEffect { this.description = description; } - public Token(String name, String description, ObjectColor color, List subtype, int power, int toughness, Abilities abilities) { + public Token(String name, String description, ObjectColor color, List subtype, int power, int toughness, Abilities abilities) { this(name, description); this.cardType.add(CardType.CREATURE); this.color = color.copy();