Undertale: Fix slot_data and options.as_dict() (#3774)
* Undertale: Fixing slot_data * Booleans were difficult
This commit is contained in:
		
							parent
							
								
									ae0abd3821
								
							
						
					
					
						commit
						a3e54a951f
					
				| 
						 | 
					@ -67,12 +67,15 @@ class UndertaleWorld(World):
 | 
				
			||||||
            "only_flakes": bool(self.options.only_flakes.value),
 | 
					            "only_flakes": bool(self.options.only_flakes.value),
 | 
				
			||||||
            "no_equips": bool(self.options.no_equips.value),
 | 
					            "no_equips": bool(self.options.no_equips.value),
 | 
				
			||||||
            "key_hunt": bool(self.options.key_hunt.value),
 | 
					            "key_hunt": bool(self.options.key_hunt.value),
 | 
				
			||||||
            "key_pieces": self.options.key_pieces.value,
 | 
					            "key_pieces": int(self.options.key_pieces.value),
 | 
				
			||||||
            "rando_love": bool(self.options.rando_love.value),
 | 
					            "rando_love": bool(self.options.rando_love and (self.options.route_required == "genocide" or self.options.route_required == "all_routes")),
 | 
				
			||||||
            "rando_stats": bool(self.options.rando_stats.value),
 | 
					            "rando_stats": bool(self.options.rando_stats and (self.options.route_required == "genocide" or self.options.route_required == "all_routes")),
 | 
				
			||||||
            "prog_armor": bool(self.options.prog_armor.value),
 | 
					            "prog_armor": bool(self.options.prog_armor.value),
 | 
				
			||||||
            "prog_weapons": bool(self.options.prog_weapons.value),
 | 
					            "prog_weapons": bool(self.options.prog_weapons.value),
 | 
				
			||||||
            "rando_item_button": bool(self.options.rando_item_button.value)
 | 
					            "rando_item_button": bool(self.options.rando_item_button.value),
 | 
				
			||||||
 | 
					            "route_required": int(self.options.route_required.value),
 | 
				
			||||||
 | 
					            "temy_include": int(self.options.temy_include.value)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_filler_item_name(self):
 | 
					    def get_filler_item_name(self):
 | 
				
			||||||
| 
						 | 
					@ -220,16 +223,7 @@ class UndertaleWorld(World):
 | 
				
			||||||
        link_undertale_areas(self.multiworld, self.player)
 | 
					        link_undertale_areas(self.multiworld, self.player)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def fill_slot_data(self):
 | 
					    def fill_slot_data(self):
 | 
				
			||||||
        slot_data = self._get_undertale_data()
 | 
					        return self._get_undertale_data()
 | 
				
			||||||
        for option_name in self.options.as_dict():
 | 
					 | 
				
			||||||
            option = getattr(self.multiworld, option_name)[self.player]
 | 
					 | 
				
			||||||
            if (option_name == "rando_love" or option_name == "rando_stats") and \
 | 
					 | 
				
			||||||
                    self.options.route_required != "genocide" and \
 | 
					 | 
				
			||||||
                    self.options.route_required != "all_routes":
 | 
					 | 
				
			||||||
                option.value = False
 | 
					 | 
				
			||||||
            if slot_data.get(option_name, None) is None and type(option.value) in {str, int}:
 | 
					 | 
				
			||||||
                slot_data[option_name] = int(option.value)
 | 
					 | 
				
			||||||
        return slot_data
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def create_item(self, name: str) -> Item:
 | 
					    def create_item(self, name: str) -> Item:
 | 
				
			||||||
        item_data = item_table[name]
 | 
					        item_data = item_table[name]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue