From 7d05d697dd6c2d916758a93db9859b85256c029b Mon Sep 17 00:00:00 2001 From: Bonta-kun <40473493+Bonta0@users.noreply.github.com> Date: Mon, 6 Jan 2020 19:09:46 +0100 Subject: [PATCH] Mystery: can now roll for starting inventory items, eg: startinventory: Pegasus Boots: 'on': 1 'off': 0 Bombs (3): 'on': 1 'off': 1 --- Mystery.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Mystery.py b/Mystery.py index d43ef6c5..e19a5203 100644 --- a/Mystery.py +++ b/Mystery.py @@ -109,8 +109,8 @@ def get_weights(path): return parse_yaml(yaml) def roll_settings(weights): - def get_choice(option): - return random.choices(list(weights[option].keys()), weights=list(map(int,weights[option].values())))[0].replace('"','').replace("'",'') + def get_choice(option, root=weights): + return random.choices(list(root[option].keys()), weights=list(map(int,root[option].values())))[0].replace('"','').replace("'",'') ret = argparse.Namespace() @@ -202,6 +202,13 @@ def roll_settings(weights): ret.beemizer = int(get_choice('beemizer')) if 'beemizer' in weights.keys() else 1 # suck it :) + inventoryweights = weights.get('startinventory', {}) + startitems = [] + for item in inventoryweights.keys(): + if get_choice(item, inventoryweights) == 'on': + startitems.append(item) + ret.startinventory = ','.join(startitems) + return ret if __name__ == '__main__':