31 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
from typing import Dict
 | 
						|
 | 
						|
from Options import NamedRange
 | 
						|
from ... import StardewValleyWorld
 | 
						|
 | 
						|
options_to_exclude = {"profit_margin", "starting_money", "multiple_day_sleep_enabled", "multiple_day_sleep_cost",
 | 
						|
                      "experience_multiplier", "friendship_multiplier", "debris_multiplier",
 | 
						|
                      "quick_start", "gifting", "gift_tax",
 | 
						|
                      "progression_balancing", "accessibility", "start_inventory", "start_hints", "death_link"}
 | 
						|
 | 
						|
options_to_include = [option
 | 
						|
                      for option_name, option in StardewValleyWorld.options_dataclass.type_hints.items()
 | 
						|
                      if option_name not in options_to_exclude]
 | 
						|
 | 
						|
 | 
						|
def get_option_choices(option) -> Dict[str, int]:
 | 
						|
    if issubclass(option, NamedRange):
 | 
						|
        return option.special_range_names
 | 
						|
    elif option.options:
 | 
						|
        return option.options
 | 
						|
    return {}
 | 
						|
 | 
						|
 | 
						|
all_option_choices = [(option, value)
 | 
						|
                      for option in options_to_include
 | 
						|
                      if option.options
 | 
						|
                      for value in get_option_choices(option)
 | 
						|
                      if option.default != get_option_choices(option)[value]]
 | 
						|
 | 
						|
assert all_option_choices
 |