if (player != null && controller != null && sourceObject != null) {
int amount = new greatestPowerCountCreatureYouControl().calculate(game, source, this);
GenericManaCost cost = new GenericManaCost(amount);
StringBuilder sb = new StringBuilder("Pay {").append(amount).append("}? (otherwise ").append(spell.getName()).append(" will be countered)");
if (player.chooseUse(Outcome.Benefit, sb.toString(), game)) {
cost.pay(source, game, source.getSourceId(), player.getId(), false);
}
if (!cost.isPaid()) {
if (game.getStack().counter(source.getFirstTarget(), source.getSourceId(), game)) {
game.informPlayers(new StringBuilder(sourceObject.getName()).append(": cost wasn't payed - countering ").append(spell.getName()).toString());
return true;