Mystery: can now roll for starting inventory items, eg:

startinventory:
  Pegasus Boots:
    'on': 1
    'off': 0
  Bombs (3):
    'on': 1
    'off': 1
This commit is contained in:
Bonta-kun 2020-01-06 19:09:46 +01:00
parent 71b4f6e94b
commit 7d05d697dd
1 changed files with 9 additions and 2 deletions

View File

@ -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__':