Files
splittermond-backend/chat/dice.py
2019-06-17 18:17:59 +02:00

48 lines
944 B
Python

from enum import auto, Enum
import random
class RollTypes(Enum):
NORMAL = auto()
RISKY = auto()
SAFE = auto()
def skill_roll(skill, modifiers, type_=RollTypes.NORMAL):
eyes, result = roll_dice(type_)
result += skill
if len(modifiers) > 0:
result += eval(modifiers)
return eyes, result
def custom_roll(n, eyes, modifiers=None):
eyes = n_random_eyes(n, eyes)
result = sum(eyes)
if len(modifiers) > 0:
result += eval(modifiers)
return eyes, result
def roll_dice(type_):
if type_ is RollTypes.NORMAL:
eyes = n_random_eyes(2)
result = sum(eyes)
elif type_ is RollTypes.RISKY:
eyes = n_random_eyes(4)
eyes.sort(reverse=True)
result = sum(eyes[:2])
else:
eyes = n_random_eyes(2)
result = max(eyes)
return eyes, result
def n_random_eyes(n, eyes=10):
return [random.randint(1, eyes) for _ in range(n)]