def METHOD_NAME(skill, args, embed, mod_override=None, rr_format="Check {}"):
    """
    Runs a roll for a given Skill.
    :rtype: SkillRollResult
    """
    # ephemeral support: adv, b
    # phrase
    phrase = args.join("phrase", "\n")
    # num rolls
    iterations = max(min(args.last("rr", 1, int), 25), 1)
    # dc
    dc = args.last("dc", type_=int)
    # ro
    ro = args.last("ro", type_=int)
    # mc
    mc = args.last("mc", type_=int)
    desc_out = []
    num_successes = 0
    results = []
    # add DC text
    if dc:
        desc_out.append(f"**DC {dc}**")
    for i in range(iterations):
        # advantage
        adv = args.adv(boolwise=True, ephem=True)
        # roll bonus
        b = args.join("b", "+", ephem=True)
        # set up dice
        roll_str = skill.d20(base_adv=adv, reroll=ro, min_val=mc, mod_override=mod_override)
        if b is not None:
            roll_str = f"{roll_str}+{b}"
        # roll
        result = roll(roll_str)
        if dc and result.total >= dc:
            num_successes += 1
        results.append(result)
        # output
        if iterations > 1:
            embed.add_field(name=rr_format.format(str(i + 1)), value=result.result)
        else:
            desc_out.append(result.result)
    # phrase
    if phrase:
        desc_out.append(f"*{phrase}*")
    # DC footer
    if iterations > 1 and dc:
        embed.set_footer(text=f"{num_successes} Successes | {iterations - num_successes} Failures")
    elif dc:
        embed.set_footer(text="Success!" if num_successes else "Failure!")
    # build embed
    embed.description = "\n".join(desc_out)
    embeds.add_fields_from_args(embed, args.get("f"))
    if "thumb" in args:
        embed.set_thumbnail(url=maybe_http_url(args.last("thumb", "")))
    return SkillRollResult(rolls=results, iterations=iterations, dc=dc, successes=num_successes)