summaryrefslogtreecommitdiff
path: root/ATRI/plugins/plugin_utils/roll.py
diff options
context:
space:
mode:
Diffstat (limited to 'ATRI/plugins/plugin_utils/roll.py')
-rw-r--r--ATRI/plugins/plugin_utils/roll.py59
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)