61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								# Copyright (c) 2022 FelicitusNeko
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# This software is released under the MIT License.
							 | 
						||
| 
								 | 
							
								# https://opensource.org/licenses/MIT
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import typing
							 | 
						||
| 
								 | 
							
								from Options import Option, DeathLink, Toggle, DefaultOnToggle, Choice
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								cost_scales = {
							 | 
						||
| 
								 | 
							
								    0: [80, 5, 4],
							 | 
						||
| 
								 | 
							
								    1: [60, 5, 3],
							 | 
						||
| 
								 | 
							
								    2: [50, 4, 3]
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Goal(Choice):
							 | 
						||
| 
								 | 
							
								    """Which goal must be achieved to trigger completion."""
							 | 
						||
| 
								 | 
							
								    display_name = "Goal"
							 | 
						||
| 
								 | 
							
								    option_return_the_cursed_seal = 0
							 | 
						||
| 
								 | 
							
								    option_any_ending = 1
							 | 
						||
| 
								 | 
							
								    option_true_ending = 2
							 | 
						||
| 
								 | 
							
								    alias_normal_ending = 1
							 | 
						||
| 
								 | 
							
								    alias_agate_knife = 2
							 | 
						||
| 
								 | 
							
								    default = 0
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class IncludePSIKeys(DefaultOnToggle):
							 | 
						||
| 
								 | 
							
								    """Whether PSI Keys should be included in the multiworld pool. If not, they will be in their vanilla locations."""
							 | 
						||
| 
								 | 
							
								    display_name = "Include PSI Keys"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class IncludeEvolutionTraps(Toggle):
							 | 
						||
| 
								 | 
							
								    """
							 | 
						||
| 
								 | 
							
								        Whether evolution traps should be included in the multiworld pool.
							 | 
						||
| 
								 | 
							
								        If not, they will be activated by bosses, as in vanilla.
							 | 
						||
| 
								 | 
							
								    """
							 | 
						||
| 
								 | 
							
								    display_name = "Include Evolution Traps"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class ItemCacheCost(Choice):
							 | 
						||
| 
								 | 
							
								    """
							 | 
						||
| 
								 | 
							
								        Determines how the cost for Alpha, Beta, and Gamma caches will scale.
							 | 
						||
| 
								 | 
							
								        Vanilla has a total cost of about 1B crystals on Normal difficulty;
							 | 
						||
| 
								 | 
							
								        Reduced has about 750M; and Heavily Reduced has about 600M.
							 | 
						||
| 
								 | 
							
								    """
							 | 
						||
| 
								 | 
							
								    display_name = "Item cache cost scaling"
							 | 
						||
| 
								 | 
							
								    option_vanilla = 0
							 | 
						||
| 
								 | 
							
								    option_reduced = 1
							 | 
						||
| 
								 | 
							
								    option_heavily_reduced = 2
							 | 
						||
| 
								 | 
							
								    default = 0
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								meritous_options: typing.Dict[str, type(Option)] = {
							 | 
						||
| 
								 | 
							
								    "goal": Goal,
							 | 
						||
| 
								 | 
							
								    "include_psi_keys": IncludePSIKeys,
							 | 
						||
| 
								 | 
							
								    "include_evolution_traps": IncludeEvolutionTraps,
							 | 
						||
| 
								 | 
							
								    "item_cache_cost": ItemCacheCost,
							 | 
						||
| 
								 | 
							
								    "death_link": DeathLink
							 | 
						||
| 
								 | 
							
								}
							 |