@Override public void adjustTargets(Ability ability, Game game) { ability.addTarget(new TargetAnyTarget(KickedCondition.instance.apply(game, ability) ? 2 : 1)); } }
@Override public void adjustTargets(Ability ability, Game game) { ability.addTarget(new TargetAnyTargetAmount(KickedCondition.instance.apply(game, ability) ? 6 : 3)); } }
@Override public void adjustTargets(Ability ability, Game game) { if (KickedCondition.instance.apply(game, ability)) { ability.addTarget(new TargetCreaturePermanent()); } }
@Override public void adjustTargets(Ability ability, Game game) { if (KickedCondition.instance.apply(game, ability)) { ability.addTarget(new TargetPlayerOrPlaneswalker()); } } }
@Override public boolean applies(GameEvent event, Ability source, Game game) { if (event.getType() == GameEvent.EventType.CAST_SPELL) { if (KickedCondition.instance.apply(game, source)) { return true; } } if (event.getType() == GameEvent.EventType.ACTIVATE_ABILITY) { Optional<Ability> ability = game.getAbility(event.getTargetId(), event.getSourceId()); if (ability.isPresent() && !(ability.get() instanceof ActivatedManaAbilityImpl)) { if (KickedCondition.instance.apply(game, source)) { return true; } } } return false; }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null && KickedCondition.instance.apply(game, source)) { game.addEffect(new CantAttackAnyPlayerAllEffect(Duration.EndOfTurn, FILTER_PERMANENT_CREATURES), source); 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 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) { ability.getTargets().clear(); if (KickedCondition.instance.apply(game, ability)) { ability.addTarget(new TargetPlayerOrPlaneswalker()); } } }
@Override public void adjustTargets(Ability ability, Game game) { if (KickedCondition.instance.apply(game, ability)) { ability.getTargets().clear(); ability.addTarget(new TargetLandPermanent(2)); } } }
@Override public boolean apply(Game game, Ability source) { Spell targetSpell = game.getStack().getSpell(source.getFirstTarget()); if(targetSpell != null && KickedCondition.instance.apply(game, targetSpell.getSpellAbility())) { return super.apply(game, source); } return false; }
@Override public void adjustTargets(Ability ability, Game game) { ability.getTargets().clear(); if (KickedCondition.instance.apply(game, ability)) { ability.addTarget(new TargetAnyTargetAmount(10)); } else { ability.addTarget(new TargetCreaturePermanent()); } } }
@Override public void adjustTargets(Ability ability, Game game) { if (!KickedCondition.instance.apply(game, ability)) { return; } FilterCreaturePermanent filter = new FilterCreaturePermanent("Another creature: Damaged"); filter.add(new AnotherTargetPredicate(2)); Target target = new TargetCreaturePermanent(filter); target.setTargetTag(2); ability.addTarget(target); }
@Override public boolean apply(Game game, Ability source) { CreateTokenEffect effect = new CreateTokenEffect(new ElementalAppealElementalToken()); if (effect.apply(game, source)) { effect.exileTokensCreatedAtNextEndStep(game, source); if (KickedCondition.instance.apply(game, source)) { List<Predicate<MageObject>> predList = new ArrayList<>(); for (UUID tokenId : effect.getLastAddedTokenIds()) { predList.add(new CardIdPredicate(tokenId)); } if (predList.size() > 0) { FilterCreaturePermanent filter = new FilterCreaturePermanent(); filter.add(Predicates.or(predList)); game.addEffect(new BoostAllEffect(7, 0, Duration.EndOfTurn, filter, false), source); } } return true; } return false; }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { Permanent targetArtifact = game.getPermanent(this.getTargetPointer().getFirst(game, source)); if (targetArtifact != null) { int cmc = targetArtifact.getConvertedManaCost(); if (cmc <= 2 || (KickedCondition.instance.apply(game, source) && cmc <= 5)) { targetArtifact.destroy(source.getSourceId(), game, false); } } return true; } return false; } }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { Spell targetSpell = game.getSpell(this.getTargetPointer().getFirst(game, source)); if (targetSpell != null) { int cmc = targetSpell.getConvertedManaCost(); if (cmc <= 2 || (KickedCondition.instance.apply(game, source) && cmc <= 4)) { targetSpell.counter(source.getSourceId(), game); } } return true; } return false; } }
@Override public boolean apply(Game game, Ability source) { int damage = 0; MageObject firstTarget = game.getLastKnownInformation(source.getFirstTarget(), Zone.BATTLEFIELD); Permanent secondTarget = game.getPermanent(source.getTargets().get(1).getFirstTarget()); if (firstTarget != null) { damage = firstTarget.getConvertedManaCost(); } boolean kicked = KickedCondition.instance.apply(game, source); if (kicked && secondTarget != null) { secondTarget.damage(damage, source.getSourceId(), game, false, true); return true; } return false; }