From c333072fb92f1658e42e1ad28b6da75b91cdf006 Mon Sep 17 00:00:00 2001 From: NikolajDanger Date: Tue, 31 Mar 2020 10:18:00 +0200 Subject: [PATCH] Obligation --- funcs/swfuncs/swchar.py | 14 +++++++++++++- funcs/swfuncs/swroll.py | 21 ++++++++++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/funcs/swfuncs/swchar.py b/funcs/swfuncs/swchar.py index 3d758ad..3c412d2 100644 --- a/funcs/swfuncs/swchar.py +++ b/funcs/swfuncs/swchar.py @@ -208,7 +208,7 @@ def charData(user : str,cmd : str): except: return "Can't do that" - if (key == "Talents" or key == "Force-powers" or key == "Obligation") and "," in cmd: + if (key == "Talents" or key == "Force-powers") and "," in cmd: cmd = cmd.split(",") while cmd[1][0] == " ": cmd[1] = cmd[1][1:] @@ -216,6 +216,18 @@ def charData(user : str,cmd : str): with open("resources/swcharacters.json", "w") as f: json.dump(data,f,indent = 4) return cmd[0]+" added to "+key+" for " + data[user]["Name"] + + elif key == "Obligations" and "," in cmd: + cmd = cmd.split(",") + while cmd[1][0] == " ": + cmd[1] = cmd[1][1:] + try: + data[user][key][cmd[0]] = int(cmd[1]) + except: + return "Wrong data type" + with open("resources/swcharacters.json", "w") as f: + json.dump(data,f,indent = 4) + return cmd[0]+" added to "+key+" for " + data[user]["Name"] elif key == "Weapons": with open("resources/swtemplates.json", "r") as f: diff --git a/funcs/swfuncs/swroll.py b/funcs/swfuncs/swroll.py index 106ae7a..6089132 100644 --- a/funcs/swfuncs/swroll.py +++ b/funcs/swfuncs/swroll.py @@ -103,6 +103,22 @@ def diceToEmoji(dice : list): def getDice(user : str, skill : str): return "yes" +def obligationRoll(): + with open("resources/swcharacters.json", "r") as f: + data = json.load(f) + + table = [] + + for character in data: + for obligation in data[character]["Obligations"]: + for x in range(data[character]["Obligations"][obligation]): + table.append(obligation) + + while len(table) < 100: + table.append("Nothing") + + return random.choice(table) + def parseRoll(user : str,cmd : str = ""): cmd = re.sub(' +',' ',cmd.upper()) + " " if cmd[0] == " ": @@ -115,7 +131,10 @@ def parseRoll(user : str,cmd : str = ""): else: rollParameters = [0,0,0,0,0,0,0] - if string.capwords(commands[0]) in skillData: + if string.capwords(commands[0]) == "Obligations": + return obligationRoll() + + elif string.capwords(commands[0]) in skillData: if swchar.userHasChar: skillLevel = swchar.charData(user,"Skills " + string.capwords(commands[0]))