diff options
Diffstat (limited to 'ATRI/plugins/plugin_utils/roll.py')
-rw-r--r-- | ATRI/plugins/plugin_utils/roll.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/ATRI/plugins/plugin_utils/roll.py b/ATRI/plugins/plugin_utils/roll.py new file mode 100644 index 0000000..bf87aa3 --- /dev/null +++ b/ATRI/plugins/plugin_utils/roll.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python3 +# -*- encoding: utf-8 -*- +''' +@File : roll.py +@Time : 2020/11/07 15:56:02 +@Author : Kyomotoi +@Contact : [email protected] +@Github : https://github.com/Kyomotoi +@License : Copyright © 2018-2020 Kyomotoi, All Rights Reserved. +''' +__author__ = 'kyomotoi' + +import re +from random import randint + + +def roll_dice(par: str) -> str: + """掷骰子""" + result = 0 + proc = '' + proc_list = [] + p = par.split('+') + + # 计算每个单独的roll + for i in p: + args = re.findall(r"(\d{0,10})(?:(d)(\d{1,10}))", i) + args = list(args[0]) + + if not args[0]: + args[0] = 1 + + if int(args[0]) >= 5000 or int(args[2]) >= 5000: + return '阿..好大...' + + for a in range(1, int(args[0]) + 1): + rd = randint(1, int(args[2])) + result = result + rd + + if len(proc_list) <= 10: + proc_list.append(rd) + + if len(proc_list) == 10: + temp_list = [] + for i in proc_list: + if len(temp_list) == 9: + proc += str(i) + else: + proc += str(i) + '+' + temp_list.append(i) + + elif len(proc_list) >= 10: + proc += '太长了不展示了' + + else: + proc += str(result) + + result = f"{par}=({proc})={result}" + + return str(result) |