}
@Override
public boolean apply(Game game, Ability source) {
Player player = game.getPlayer(source.getControllerId());
ColoredManaCost cost = new ColoredManaCost(ColoredManaSymbol.R);
if (player != null) {
if (player.chooseUse(Outcome.Benefit, "Pay " + cost.getText() + "? If you do, copy that ability. You may choose new targets for the copy.", game)) {
if (cost.pay(source, game, source.getSourceId(), source.getControllerId(), false)) {
Ability ability = (Ability) getValue("stackAbility");
Player controller = game.getPlayer(source.getControllerId());
Permanent sourcePermanent = game.getPermanent(source.getSourceId());
if (ability != null && controller != null) {
Ability newAbility = ability.copy();