diff --git a/Mage.Sets/src/mage/sets/worldwake/AvengerofZendikar.java b/Mage.Sets/src/mage/sets/worldwake/AvengerofZendikar.java index 03b26a7820f..16845ac6162 100644 --- a/Mage.Sets/src/mage/sets/worldwake/AvengerofZendikar.java +++ b/Mage.Sets/src/mage/sets/worldwake/AvengerofZendikar.java @@ -30,48 +30,45 @@ package mage.sets.worldwake; import java.util.UUID; -import mage.Constants; import mage.Constants.CardType; import mage.Constants.Rarity; -import mage.Constants.TargetController; import mage.MageInt; -import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.LandfallAbility; -import mage.abilities.effects.OneShotEffect; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.counter.AddCountersAllEffect; import mage.cards.CardImpl; import mage.counters.CounterType; -import mage.filter.Filter.ComparisonScope; -import mage.filter.FilterPermanent; -import mage.game.Game; +import mage.filter.common.FilterControlledPermanent; import mage.game.permanent.token.PlantToken; -import mage.game.permanent.token.Token; /** * * @author Loki, nantuko, North */ public class AvengerofZendikar extends CardImpl { - private static final FilterPermanent filter = new FilterPermanent("Plant creature you control"); + private static final FilterControlledPermanent filter = new FilterControlledPermanent("Plant creature you control"); + private static final FilterControlledPermanent filterLand = new FilterControlledPermanent("land you control"); static { filter.getCardType().add(CardType.CREATURE); - filter.setScopeCardType(ComparisonScope.Any); filter.getSubtype().add("Plant"); - filter.setScopeSubtype(ComparisonScope.Any); - filter.setTargetController(TargetController.YOU); + + filterLand.getCardType().add(CardType.LAND); } public AvengerofZendikar (UUID ownerId) { super(ownerId, 96, "Avenger of Zendikar", Rarity.MYTHIC, new CardType[]{CardType.CREATURE}, "{5}{G}{G}"); this.expansionSetCode = "WWK"; this.subtype.add("Elemental"); + this.color.setGreen(true); this.power = new MageInt(5); this.toughness = new MageInt(5); - this.addAbility(new EntersBattlefieldAbility(new AvengerofZendikarTokensCreateEffect(), "put a 0/1 green Plant creature token onto the battlefield for each land you control")); - this.addAbility(new LandfallAbility(new AddCountersAllEffect(CounterType.P1P1.createInstance(), filter), false)); + + this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new PlantToken(), new PermanentsOnBattlefieldCount(filterLand)), false)); + this.addAbility(new LandfallAbility(new AddCountersAllEffect(CounterType.P1P1.createInstance(), filter), true)); } public AvengerofZendikar (final AvengerofZendikar card) { @@ -83,34 +80,3 @@ public class AvengerofZendikar extends CardImpl { return new AvengerofZendikar(this); } } - -class AvengerofZendikarTokensCreateEffect extends OneShotEffect { - private static final FilterPermanent filter = new FilterPermanent(); - private Token token = new PlantToken(); - - static { - filter.getCardType().add(CardType.LAND); - filter.setScopeCardType(ComparisonScope.Any); - } - - public AvengerofZendikarTokensCreateEffect() { - super(Constants.Outcome.PutCreatureInPlay); - } - - public AvengerofZendikarTokensCreateEffect(final AvengerofZendikarTokensCreateEffect effect) { - super(effect); - } - - @Override - public boolean apply(Game game, Ability source) { - for (int i = 0; i < game.getBattlefield().countAll(filter, source.getControllerId()); i++) { - token.putOntoBattlefield(game, source.getId(), source.getControllerId()); - } - return true; - } - - @Override - public AvengerofZendikarTokensCreateEffect copy() { - return new AvengerofZendikarTokensCreateEffect(this); - } -} \ No newline at end of file diff --git a/Mage/src/mage/abilities/effects/common/CreateTokenEffect.java b/Mage/src/mage/abilities/effects/common/CreateTokenEffect.java index 936d5b098ca..94d97d1c0b7 100644 --- a/Mage/src/mage/abilities/effects/common/CreateTokenEffect.java +++ b/Mage/src/mage/abilities/effects/common/CreateTokenEffect.java @@ -73,9 +73,6 @@ public class CreateTokenEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { for (int i = 0; i < amount.calculate(game, source); i++) { - // we need to specify source.getSourceId(), not source.getId() - // as we most interested in the game object that created effect, - // not in ability uuid token.putOntoBattlefield(game, source.getSourceId(), source.getControllerId()); } return true; @@ -83,14 +80,11 @@ public class CreateTokenEffect extends OneShotEffect { @Override public String getDynamicText(Ability source) { - StringBuilder sb = new StringBuilder(); - if (amount instanceof StaticValue) { - int count = amount.calculate(null, null); - if (count == 1) - sb.append("put a"); - else sb.append("put ").append(Integer.toString(count)); + StringBuilder sb = new StringBuilder("put "); + if (amount.toString().equals("1")) { + sb.append("a"); } else { - sb.append("put ").append(amount); + sb.append(amount.toString()); } sb.append(" ").append(token.getDescription()).append(" onto the battlefield"); String message = amount.getMessage(); diff --git a/Mage/src/mage/abilities/effects/common/counter/AddCountersAllEffect.java b/Mage/src/mage/abilities/effects/common/counter/AddCountersAllEffect.java index 832a071e584..708eb02c23c 100644 --- a/Mage/src/mage/abilities/effects/common/counter/AddCountersAllEffect.java +++ b/Mage/src/mage/abilities/effects/common/counter/AddCountersAllEffect.java @@ -66,7 +66,7 @@ public class AddCountersAllEffect extends OneShotEffect { List permanents = game.getBattlefield().getAllActivePermanents(); for (Permanent permanent : permanents) { if (filter.match(permanent, controllerId, game)) { - permanent.addCounters(counter); + permanent.addCounters(counter.copy()); applied = true; } } diff --git a/Mage/src/mage/abilities/effects/common/counter/AddCountersSourceEffect.java b/Mage/src/mage/abilities/effects/common/counter/AddCountersSourceEffect.java index e4ebf9798fa..64fd035b69a 100644 --- a/Mage/src/mage/abilities/effects/common/counter/AddCountersSourceEffect.java +++ b/Mage/src/mage/abilities/effects/common/counter/AddCountersSourceEffect.java @@ -58,7 +58,7 @@ public class AddCountersSourceEffect extends OneShotEffect