initial commit backend
This commit is contained in:
47
chat/dice.py
Normal file
47
chat/dice.py
Normal file
@@ -0,0 +1,47 @@
|
||||
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)]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user