24 lines
1.2 KiB
Python
24 lines
1.2 KiB
Python
from redbot.core import commands
|
|
from pyroll20.pyroll20 import roll
|
|
|
|
class Dice(commands.Cog):
|
|
"""Roll dice using roll20-esque notation"""
|
|
|
|
def __init__(self, bot):
|
|
self.bot = bot
|
|
|
|
@commands.command()
|
|
async def roll(self, ctx, *args):
|
|
try:
|
|
await ctx.send(roll(''.join(args)))
|
|
except ValueError:
|
|
await ctx.send("""**'h'** # Highest Rolls - **5d20h3** returns the 3 highest rolls from the five d20 that were rolled.
|
|
**'l'** # Lowest Rolls - **5d20l3** returns the 3 lowest rolls from the five d20 that were rolled.
|
|
**'+'** # Adds to sum - **5d20+3** adds 3 to the sum of the five d20 that were rolled, always returns a single integer.
|
|
**'-'** # Subtracts from sum - **5d20-3** subtracts 3 from the sum of the five d20 that were rolled, always returns a single integer.
|
|
**'.-'** # Subtracts from each individual roll - **5d20.-3** subtracts 3 from each of the five d20 that were rolled.
|
|
**'.+'** # Adds to each individual roll - **5d20.+3** adds 3 to each of the five d20 that were rolled.
|
|
**'t'** # Sum of all rolls - **5d20t** returns the sum of the five d20 that were rolled.
|
|
**'e'** # "Exploding dice - **5d20e** if any of the five rolls goes critical, it gets re-rolled and added to the individual roll.
|
|
""")
|