| 
									
										
										
										
											2024-03-20 22:44:09 +01:00
										 |  |  | from dataclasses import dataclass | 
					
						
							|  |  |  | from Options import Choice, PerGameCommonOptions, Range, StartInventoryPool, Toggle | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Goal(Choice): | 
					
						
							|  |  |  |     """Choose the end goal.
 | 
					
						
							|  |  |  |     Nap: Complete the climb to the top of Hawk Peak and take a nap | 
					
						
							|  |  |  |     Photo: Get your picture taken at the top of Hawk Peak | 
					
						
							|  |  |  |     Races: Complete all three races with Avery | 
					
						
							|  |  |  |     Help Everyone: Travel around Hawk Peak and help every character with their troubles | 
					
						
							|  |  |  |     Fishmonger: Catch one of every fish from around Hawk Peak"""
 | 
					
						
							|  |  |  |     display_name = "Goal" | 
					
						
							|  |  |  |     option_nap = 0 | 
					
						
							|  |  |  |     option_photo = 1 | 
					
						
							|  |  |  |     option_races = 2 | 
					
						
							|  |  |  |     option_help_everyone = 3 | 
					
						
							|  |  |  |     option_fishmonger = 4 | 
					
						
							|  |  |  |     default = 3 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CoinsInShops(Toggle): | 
					
						
							|  |  |  |     """When enabled, the randomizer can place coins into locations that are purchased, such as shops.""" | 
					
						
							|  |  |  |     display_name = "Coins in Purchaseable Locations" | 
					
						
							|  |  |  |     default = False | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class GoldenFeathers(Range): | 
					
						
							|  |  |  |     """Number of Golden Feathers in the item pool.
 | 
					
						
							|  |  |  |     (Note that for the Photo and Help Everyone goals, a minimum of 12 Golden Feathers is enforced)"""
 | 
					
						
							|  |  |  |     display_name = "Golden Feathers" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 20 | 
					
						
							|  |  |  |     default = 20 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class SilverFeathers(Range): | 
					
						
							|  |  |  |     """Number of Silver Feathers in the item pool.""" | 
					
						
							|  |  |  |     display_name = "Silver Feathers" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 20 | 
					
						
							|  |  |  |     default = 2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Buckets(Range): | 
					
						
							|  |  |  |     """Number of Buckets in the item pool.""" | 
					
						
							|  |  |  |     display_name = "Buckets" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 2 | 
					
						
							|  |  |  |     default = 2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class GoldenFeatherProgression(Choice): | 
					
						
							|  |  |  |     """Determines which locations are considered in logic based on the required amount of golden feathers to reach them.
 | 
					
						
							|  |  |  |     Easy: Locations will be considered inaccessible until the player has enough golden feathers to easily reach them. A minimum of 10 golden feathers is recommended for this setting. | 
					
						
							|  |  |  |     Normal: Locations will be considered inaccessible until the player has the minimum possible number of golden feathers to reach them. A minimum of 7 golden feathers is recommended for this setting. | 
					
						
							|  |  |  |     Hard: Removes the requirement of golden feathers for progression entirely and glitches may need to be used to progress"""
 | 
					
						
							|  |  |  |     display_name = "Golden Feather Progression" | 
					
						
							|  |  |  |     option_easy = 0 | 
					
						
							|  |  |  |     option_normal = 1 | 
					
						
							|  |  |  |     option_hard = 2 | 
					
						
							|  |  |  |     default = 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CostMultiplier(Range): | 
					
						
							|  |  |  |     """The percentage that all item shop costs will be of the vanilla values.""" | 
					
						
							|  |  |  |     display_name = "Shop Cost Multiplier" | 
					
						
							|  |  |  |     range_start = 25 | 
					
						
							|  |  |  |     range_end = 200 | 
					
						
							|  |  |  |     default = 100 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-03-22 15:30:23 -05:00
										 |  |  | class FillerCoinAmount(Choice): | 
					
						
							|  |  |  |     """The number of coins that will be in each filler coin item.""" | 
					
						
							|  |  |  |     display_name = "Coins per Filler Item" | 
					
						
							|  |  |  |     option_7_coins = 0 | 
					
						
							|  |  |  |     option_13_coins = 1 | 
					
						
							|  |  |  |     option_15_coins = 2 | 
					
						
							|  |  |  |     option_18_coins = 3 | 
					
						
							|  |  |  |     option_21_coins = 4 | 
					
						
							|  |  |  |     option_25_coins = 5 | 
					
						
							|  |  |  |     option_27_coins = 6 | 
					
						
							|  |  |  |     option_32_coins = 7 | 
					
						
							|  |  |  |     option_33_coins = 8 | 
					
						
							|  |  |  |     option_50_coins = 9 | 
					
						
							|  |  |  |     default = 1 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-03-20 22:44:09 +01:00
										 |  |  | @dataclass | 
					
						
							|  |  |  | class ShortHikeOptions(PerGameCommonOptions): | 
					
						
							|  |  |  |     start_inventory_from_pool: StartInventoryPool | 
					
						
							|  |  |  |     goal: Goal | 
					
						
							|  |  |  |     coins_in_shops: CoinsInShops | 
					
						
							|  |  |  |     golden_feathers: GoldenFeathers | 
					
						
							|  |  |  |     silver_feathers: SilverFeathers | 
					
						
							|  |  |  |     buckets: Buckets | 
					
						
							|  |  |  |     golden_feather_progression: GoldenFeatherProgression | 
					
						
							|  |  |  |     cost_multiplier: CostMultiplier | 
					
						
							| 
									
										
										
										
											2024-03-22 15:30:23 -05:00
										 |  |  |     filler_coin_amount: FillerCoinAmount |