@Override public boolean apply(Game game, Ability source, Ability abilityToModify) { SpellAbility spellAbility = (SpellAbility) abilityToModify; CardUtil.adjustCost(spellAbility, 2); return true; }
@Override public boolean apply(Game game, Ability source, Ability abilityToModify) { SpellAbility spellAbility = (SpellAbility) abilityToModify; CardUtil.adjustCost(spellAbility, -1); return true; }
@Override public boolean apply(Game game, Ability source, Ability abilityToModify) { SpellAbility spellAbility = (SpellAbility) abilityToModify; CardUtil.adjustCost(spellAbility, -2); return true; }
@Override public boolean apply(Game game, Ability source, Ability abilityToModify) { SpellAbility spellAbility = (SpellAbility) abilityToModify; CardUtil.adjustCost(spellAbility, 2); return true; }
@Override public boolean apply(Game game, Ability source, Ability abilityToModify) { SpellAbility spellAbility = (SpellAbility) abilityToModify; CardUtil.adjustCost(spellAbility, -2); return true; }
@Override public boolean apply(Game game, Ability source, Ability abilityToModify) { SpellAbility spellAbility = (SpellAbility) abilityToModify; CardUtil.adjustCost(spellAbility, -2); return true; }
@Override public boolean apply(Game game, Ability source, Ability abilityToModify) { SpellAbility spellAbility = (SpellAbility) abilityToModify; CardUtil.adjustCost(spellAbility, -2); return true; }
@Override public boolean apply(Game game, Ability source, Ability abilityToModify) { SpellAbility spellAbility = (SpellAbility) abilityToModify; CardUtil.adjustCost(spellAbility, 1); return true; }
@Override public boolean apply(Game game, Ability source, Ability abilityToModify) { SpellAbility spellAbility = (SpellAbility) abilityToModify; CardUtil.adjustCost(spellAbility, -2); return true; }
@Override public boolean apply(Game game, Ability source, Ability abilityToModify) { SpellAbility spellAbility = (SpellAbility) abilityToModify; CardUtil.adjustCost(spellAbility, 2); return true; }
@Override public boolean apply(Game game, Ability source, Ability abilityToModify) { if (manaCostsToReduce != null) { CardUtil.adjustCost((SpellAbility) abilityToModify, manaCostsToReduce, false); } else { CardUtil.reduceCost(abilityToModify, this.amount); } return true; }
@Override public void adjustCosts(Ability ability, Game game) { if (ability instanceof SpellAbility) { // Prevent adjustment of activated ability if (MorbidCondition.instance.apply(game, ability)) { CardUtil.adjustCost((SpellAbility) ability, 3); } } } }
@Override public boolean apply(Game game, Ability source, Ability abilityToModify) { SpellAbility spellAbility = (SpellAbility) abilityToModify; for (Cost cost : spellAbility.getCosts()) { if (cost instanceof SacrificeXTargetCost) { int reduction = ((SacrificeXTargetCost) cost).getAmount(); CardUtil.adjustCost(spellAbility, reduction * 2); break; } } return true; }
@Override public void adjustCosts(Ability ability, Game game) { if (ability instanceof SpellAbility) { int count = game.getBattlefield().getAllActivePermanents(StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT, ability.getControllerId(), game).size(); if (count > 0) { CardUtil.adjustCost((SpellAbility)ability, count); } } } }
@Override public void adjustCosts(Ability ability, Game game) { if (ability instanceof SpellAbility) { int count = game.getBattlefield().getAllActivePermanents(filter, ability.getControllerId(), game).size(); if (count > 0) { CardUtil.adjustCost((SpellAbility)ability, count); } } } }
@Override public boolean apply(Game game, Ability source, Ability abilityToModify) { if (abilityToModify.getAbilityType() == AbilityType.SPELL) { SpellAbility spellAbility = (SpellAbility) abilityToModify; CardUtil.adjustCost(spellAbility, -1); } if (abilityToModify.getAbilityType() == AbilityType.ACTIVATED) { CardUtil.increaseCost(abilityToModify, 1); } return true; }
@Override public void adjustCosts(Ability ability, Game game) { if (ability.getAbilityType() == AbilityType.SPELL) { Player player = game.getPlayer(ability.getControllerId()); if (player != null && player.getLife() < 4) { CardUtil.adjustCost((SpellAbility) ability, 6); } } } }
@Override public boolean apply(Game game, Ability source, Ability abilityToModify) { SpellAbility spellAbility = (SpellAbility) abilityToModify; Permanent sourcePermanent = game.getPermanent(source.getSourceId()); if (sourcePermanent != null) { int amount = sourcePermanent.getCounters(game).getCount(CounterType.P1P1); if (amount > 0) { CardUtil.adjustCost(spellAbility, amount); return true; } } return false; }
@Override public boolean apply(Game game, Ability source, Ability abilityToModify) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { SpellAbility spellAbility = (SpellAbility) abilityToModify; CardUtil.adjustCost(spellAbility, controller.getCounters().getCount(CounterType.EXPERIENCE)); return true; } return false; }
/** * Adjusts ability cost to be paid. * * @param ability * @param reduceCount */ private static void adjustAbilityCost(Ability ability, int reduceCount) { ManaCosts<ManaCost> adjustedCost = adjustCost(ability.getManaCostsToPay(), reduceCount); ability.getManaCostsToPay().clear(); ability.getManaCostsToPay().addAll(adjustedCost); }