public void addAbilityToStack() {
        // For older abilities that don't setStackDescription set it here
        if (ability.getStackDescription().equals("")) {
            StringBuilder sb = new StringBuilder();
            sb.append(ability.getSourceCard().getName());
            if (ability.getTarget() != null) {
                ArrayList<Object> targets = ability.getTarget().getTargets();
                if (targets.size() > 0) {
                    sb.append(" - Targeting ");
                    for (Object o : targets)
                        sb.append(o.toString()).append(" ");
                }
            }

            ability.setStackDescription(sb.toString());
        }

        AllZone.getManaPool().clearPay(ability, false);
        AllZone.getStack().addAndUnfreeze(ability);
    }