40 lines
1.3 KiB
Python
Executable File
40 lines
1.3 KiB
Python
Executable File
import discord
|
|
from random import randint
|
|
|
|
def roll_logic(sides):
|
|
return randint(1, sides)
|
|
|
|
def roll(number_of_die, sides, number_to_add=None):
|
|
results = list(tuple(roll_logic(int(sides)) for _ in range(int(number_of_die))))
|
|
|
|
# blue
|
|
embed_color = 3447003
|
|
if sum(results) == 1:
|
|
# Red
|
|
embed_color = 15158332
|
|
if sum(results) >= 10:
|
|
# Green
|
|
embed_color = 3066993
|
|
if sum(results) >= 15:
|
|
# Gold
|
|
embed_color = 15844367
|
|
|
|
embed = discord.Embed(description=None, color=embed_color, type="rich")
|
|
embed.set_author(name="Rolling %s %s sided die" % (number_of_die, sides))
|
|
embed.add_field(name='Rolls', value=results, inline=False)
|
|
if number_to_add:
|
|
embed.add_field(name="**Total**", value=":game_die: %s+%s = %s" % (sum(results), number_to_add, (sum(results) + number_to_add)), inline=False)
|
|
else:
|
|
embed.add_field(name="**Total**", value=":game_die: %s" % sum(results), inline=False)
|
|
return embed
|
|
|
|
def parse_message(message):
|
|
message = ' '.join(message.split()[1:])
|
|
if '+' in message:
|
|
try:
|
|
number_to_add = int(message.split('+')[-1])
|
|
return roll(message.split('d')[0], message.split('d')[1].split('+')[0], number_to_add)
|
|
except ValueError:
|
|
return "Could not add that number to the total roll"
|
|
return roll(message.split('d')[0], message.split('d')[1])
|