@Override public boolean apply(Game game, Ability source, Ability abilityToModify) { for (Target target : abilityToModify.getTargets()) { if (target.getMaxNumberOfTargets() == Integer.MAX_VALUE) { int additionalTargets = target.getTargets().size() - 1; StringBuilder sb = new StringBuilder(); for (int i = 0; i < additionalTargets; i++) { // Build up a string of strive costs for each target sb.append(striveCosts.getText()); } String finalCost = ManaUtil.condenseManaCostString(sb.toString()); abilityToModify.getManaCostsToPay().add(new ManaCostsImpl(finalCost)); return true; } } return false; }