@Override public void adjustCosts(Ability ability, Game game) { int numTargets = ability.getTargets().isEmpty() ? 0 : ability.getTargets().get(0).getTargets().size(); if (numTargets > 1) { ability.getManaCostsToPay().add(new GenericManaCost(numTargets - 1)); } } }
@Override public boolean apply(Game game, Ability source) { Permanent permanent = game.getPermanent(source.getTargets().getFirstTarget()); if (permanent != null) { return permanent.isRenowned(); } return false; }
@Override public void adjustTargets(Ability ability, Game game) { Player activePlayer = game.getPlayer(game.getActivePlayerId()); if (activePlayer != null) { ability.getTargets().clear(); TargetPlayer target = new TargetPlayer(1, 1, false, filter); target.setTargetController(activePlayer.getId()); ability.getTargets().add(target); } } }
@Override public boolean applies(GameEvent event, Ability source, Game game) { if (event.getTargetId().equals(this.getTargetPointer().getFirst(game, source)) && event.getSourceId().equals(this.target.getFirstTarget())) { this.redirectTarget = source.getTargets().get(1); return true; } return false; } }
@Override public void adjustTargets(Ability ability, Game game) { if (KickedCondition.instance.apply(game, ability)) { ability.getTargets().clear(); ability.addTarget(new TargetNonlandPermanent(2)); } } }
@Override public void adjustTargets(Ability ability, Game game) { ability.getTargets().clear(); if (KickedCondition.instance.apply(game, ability)) { ability.addTarget(new TargetPlayer()); } } }
@Override public void init(Ability source, Game game) { super.init(source, game); redirectToObject = new MageObjectReference(source.getTargets().get(0).getFirstTarget(), game); }
@Override public boolean apply(Game game, Ability source) { Player opponent = game.getPlayer(source.getTargets().get(0).getFirstTarget()); if (opponent != null) { Permanent creature = game.getPermanent(source.getTargets().get(1).getFirstTarget()); if (creature != null) { creature.destroy(source.getSourceId(), game, false); } } return true; } }
@Override public void adjustTargets(Ability ability, Game game) { ability.getTargets().clear(); ability.addTarget(new TargetCardInYourGraveyard( GetXValue.instance.calculate(game, ability, null), StaticFilters.FILTER_CARD_FROM_YOUR_GRAVEYARD )); } }
@Override public void adjustTargets(Ability ability, Game game) { ability.getTargets().clear(); ability.addTarget(new TargetCreaturePermanent(KickedCondition.instance.apply(game, ability) ? 2 : 1)); } }
@Override public void adjustTargets(Ability ability, Game game) { int xValue = ability.getManaCostsToPay().getX(); FilterPermanent permanentFilter = new FilterCreaturePermanent("creature with power " + xValue + " or less"); permanentFilter.add(new PowerPredicate(ComparisonType.FEWER_THAN, xValue + 1)); ability.getTargets().clear(); ability.getTargets().add(new TargetPermanent(permanentFilter)); } }
@Override public boolean apply(Game game, Ability source) { Permanent permanent = game.getPermanent(source.getTargets().get(0).getFirstTarget()); Player player = game.getPlayer(source.getTargets().get(1).getFirstTarget()); if (permanent != null) { permanent.damage(3, source.getSourceId(), game, false, true); } if (player != null) { player.damage(2, source.getSourceId(), game, false, true); } return true; }
@Override public void adjustTargets(Ability ability, Game game) { ability.getTargets().clear(); ability.addTarget(new TargetCardInYourGraveyard( ability.getManaCostsToPay().getX(), StaticFilters.FILTER_CARD_FROM_YOUR_GRAVEYARD )); } }
@Override public void adjustTargets(Ability ability, Game game) { ability.getTargets().clear(); ability.addTarget(new TargetPermanent(ability.getManaCostsToPay().getX(), filter)); } }
@Override public void adjustTargets(Ability ability, Game game) { ability.getTargets().clear(); int xValue = ability.getManaCostsToPay().getX(); ability.addTarget(new TargetLandPermanent(xValue, xValue, filter, false)); } }
@Override public boolean apply(Game game, Ability source) { for (Target target : source.getTargets()) { if (target.getFirstTarget() != null) { ContinuousEffect effect = new GainControlTargetEffect(Duration.EndOfGame); effect.setTargetPointer(new FixedTarget(target.getFirstTarget())); game.addEffect(effect, source); } } return true; } }
@Override public void adjustTargets(Ability ability, Game game) { ability.getTargets().clear(); int xValue = ability.getManaCostsToPay().getX(); Target target = new TargetCardInYourGraveyard(xValue, new FilterCreatureCard((xValue != 1 ? " creature cards" : "creature card") + " from your graveyard")); ability.addTarget(target); } }
@Override public void adjustTargets(Ability ability, Game game) { Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(ability.getSourceId()); if (sourcePermanent != null) { ability.getTargets().clear(); ability.addTarget(new TargetCreaturePermanentAmount(sourcePermanent.getPower().getValue())); } } }
@Override public void adjustTargets(Ability ability, Game game) { int xValue = ability.getManaCostsToPay().getX(); ability.getTargets().clear(); FilterSpell filter = new FilterSpell("spell with converted mana cost " + xValue); filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue)); ability.addTarget(new TargetSpell(filter)); } }
@Override public void adjustTargets(Ability ability, Game game) { ability.getTargets().clear(); int xValue = ability.getManaCostsToPay().getX(); FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with converted mana cost X"); filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue)); ability.addTarget(new TargetCreaturePermanent(filter)); } }