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:
		
							parent
							
								
									71b4f6e94b
								
							
						
					
					
						commit
						7d05d697dd
					
				
							
								
								
									
										11
									
								
								Mystery.py
								
								
								
								
							
							
						
						
									
										11
									
								
								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__':
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue