| 
									
										
										
										
											2023-10-10 15:30:20 -05:00
										 |  |  | from dataclasses import dataclass | 
					
						
							|  |  |  | from Options import Toggle, DefaultOnToggle, DeathLink, Range, Choice, PerGameCommonOptions | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # NOTE be aware that since the range of item ids that RoR2 uses is based off of the maximums of checks | 
					
						
							|  |  |  | # Be careful when changing the range_end values not to go into another game's IDs | 
					
						
							| 
									
										
										
										
											2023-11-22 08:20:32 -07:00
										 |  |  | # NOTE that these changes to range_end must also be reflected in the RoR2 client, so it understands the same ids. | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | class Goal(Choice): | 
					
						
							|  |  |  |     """
 | 
					
						
							|  |  |  |     Classic Mode: Every Item pickup increases fills a progress bar which gives location checks. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Explore Mode: Each environment will have location checks within each environment. | 
					
						
							|  |  |  |     environments will be locked in the item pool until received. | 
					
						
							|  |  |  |     """
 | 
					
						
							|  |  |  |     display_name = "Game Mode" | 
					
						
							|  |  |  |     option_classic = 0 | 
					
						
							|  |  |  |     option_explore = 1 | 
					
						
							| 
									
										
										
										
											2023-10-31 15:34:24 -06:00
										 |  |  |     default = 1 | 
					
						
							| 
									
										
										
										
											2021-08-29 14:02:02 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-22 08:20:32 -07:00
										 |  |  | class Victory(Choice): | 
					
						
							|  |  |  |     """
 | 
					
						
							|  |  |  |     Mithrix: Defeat Mithrix in Commencement | 
					
						
							|  |  |  |     Voidling: Defeat the Voidling in The Planetarium (DLC required! Will select any if not enabled.) | 
					
						
							|  |  |  |     Limbo: Defeat the Scavenger in Hidden Realm: A Moment, Whole | 
					
						
							|  |  |  |     Any: Any victory in the game will count. See Final Stage Death for additional ways. | 
					
						
							|  |  |  |     """
 | 
					
						
							|  |  |  |     display_name = "Victory Condition" | 
					
						
							|  |  |  |     option_any = 0 | 
					
						
							|  |  |  |     option_mithrix = 1 | 
					
						
							|  |  |  |     option_voidling = 2 | 
					
						
							|  |  |  |     option_limbo = 3 | 
					
						
							|  |  |  |     default = 0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-29 14:02:02 -04:00
										 |  |  | class TotalLocations(Range): | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  |     """Classic Mode: Number of location checks which are added to the Risk of Rain playthrough.""" | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Total Locations" | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  |     range_start = 40 | 
					
						
							| 
									
										
										
										
											2022-07-15 16:19:36 -05:00
										 |  |  |     range_end = 250 | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  |     default = 40 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ChestsPerEnvironment(Range): | 
					
						
							|  |  |  |     """Explore Mode: The number of chest locations per environment.""" | 
					
						
							|  |  |  |     display_name = "Chests per Environment" | 
					
						
							|  |  |  |     range_start = 2 | 
					
						
							|  |  |  |     range_end = 20 | 
					
						
							|  |  |  |     default = 10 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ShrinesPerEnvironment(Range): | 
					
						
							|  |  |  |     """Explore Mode: The number of shrine locations per environment.""" | 
					
						
							|  |  |  |     display_name = "Shrines per Environment" | 
					
						
							|  |  |  |     range_start = 2 | 
					
						
							|  |  |  |     range_end = 20 | 
					
						
							|  |  |  |     default = 5 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ScavengersPerEnvironment(Range): | 
					
						
							|  |  |  |     """Explore Mode: The number of scavenger locations per environment.""" | 
					
						
							|  |  |  |     display_name = "Scavenger per Environment" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 1 | 
					
						
							| 
									
										
										
										
											2023-10-31 15:34:24 -06:00
										 |  |  |     default = 0 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | class ScannersPerEnvironment(Range): | 
					
						
							|  |  |  |     """Explore Mode: The number of scanners locations per environment.""" | 
					
						
							|  |  |  |     display_name = "Radio Scanners per Environment" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 1 | 
					
						
							|  |  |  |     default = 1 | 
					
						
							| 
									
										
										
										
											2021-08-29 14:02:02 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-31 15:34:24 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  | class AltarsPerEnvironment(Range): | 
					
						
							|  |  |  |     """Explore Mode: The number of altars locations per environment.""" | 
					
						
							|  |  |  |     display_name = "Newts Per Environment" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 2 | 
					
						
							|  |  |  |     default = 1 | 
					
						
							| 
									
										
										
										
											2021-08-29 14:02:02 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-31 15:34:24 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-29 14:02:02 -04:00
										 |  |  | class TotalRevivals(Range): | 
					
						
							| 
									
										
										
										
											2022-01-24 14:40:51 -08:00
										 |  |  |     """Total Percentage of `Dio's Best Friend` item put in the item pool.""" | 
					
						
							| 
									
										
										
										
											2023-05-31 17:38:03 -06:00
										 |  |  |     display_name = "Total Revives as percentage" | 
					
						
							| 
									
										
										
										
											2021-08-29 14:02:02 -04:00
										 |  |  |     range_start = 0 | 
					
						
							| 
									
										
										
										
											2022-01-24 14:40:51 -08:00
										 |  |  |     range_end = 10 | 
					
						
							| 
									
										
										
										
											2021-08-29 14:02:02 -04:00
										 |  |  |     default = 4 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ItemPickupStep(Range): | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  |     """
 | 
					
						
							|  |  |  |     Number of items to pick up before an AP Check is completed. | 
					
						
							| 
									
										
										
										
											2021-08-29 14:02:02 -04:00
										 |  |  |     Setting to 1 means every other pickup. | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  |     Setting to 2 means every third pickup. So on... | 
					
						
							|  |  |  |     """
 | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Item Pickup Step" | 
					
						
							| 
									
										
										
										
											2021-08-29 14:02:02 -04:00
										 |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 5 | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  |     default = 1 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-31 15:34:24 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  | class ShrineUseStep(Range): | 
					
						
							|  |  |  |     """
 | 
					
						
							|  |  |  |     Explore Mode: | 
					
						
							|  |  |  |     Number of shrines to use up before an AP Check is completed. | 
					
						
							|  |  |  |     Setting to 1 means every other pickup. | 
					
						
							|  |  |  |     Setting to 2 means every third pickup. So on... | 
					
						
							|  |  |  |     """
 | 
					
						
							|  |  |  |     display_name = "Shrine use Step" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 3 | 
					
						
							|  |  |  |     default = 0 | 
					
						
							| 
									
										
										
										
											2021-08-29 14:02:02 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-22 08:20:32 -07:00
										 |  |  | class AllowTrapItems(Toggle): | 
					
						
							|  |  |  |     """Allows Trap items in the item pool.""" | 
					
						
							|  |  |  |     display_name = "Enable Trap Items" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  | class AllowLunarItems(DefaultOnToggle): | 
					
						
							| 
									
										
										
										
											2021-08-31 20:38:44 -04:00
										 |  |  |     """Allows Lunar items in the item pool.""" | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Enable Lunar Item Shuffling" | 
					
						
							| 
									
										
										
										
											2021-08-29 14:02:02 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | class StartWithRevive(DefaultOnToggle): | 
					
						
							| 
									
										
										
										
											2021-08-29 14:02:02 -04:00
										 |  |  |     """Start the game with a `Dio's Best Friend` item.""" | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Start with a Revive" | 
					
						
							| 
									
										
										
										
											2022-08-20 18:09:35 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  | class FinalStageDeath(Toggle): | 
					
						
							| 
									
										
										
										
											2023-11-22 08:20:32 -07:00
										 |  |  |     """The following will count as a win if set to "true", and victory is set to "any":
 | 
					
						
							| 
									
										
										
										
											2023-05-31 17:38:03 -06:00
										 |  |  |     Dying in Commencement. | 
					
						
							|  |  |  |     Dying in The Planetarium. | 
					
						
							| 
									
										
										
										
											2023-11-22 08:20:32 -07:00
										 |  |  |     Obliterating yourself | 
					
						
							|  |  |  |     If not use the following to tell if final stage death will count: | 
					
						
							|  |  |  |     Victory: mithrix - only dying in Commencement will count. | 
					
						
							|  |  |  |     Victory: voidling - only dying in The Planetarium will count. | 
					
						
							|  |  |  |     Victory: limbo - Obliterating yourself will count."""
 | 
					
						
							| 
									
										
										
										
											2022-07-15 22:21:36 +01:00
										 |  |  |     display_name = "Final Stage Death is Win" | 
					
						
							| 
									
										
										
										
											2021-08-29 14:02:02 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  | class DLC_SOTV(Toggle): | 
					
						
							|  |  |  |     """
 | 
					
						
							|  |  |  |      Enable if you are using SOTV DLC. | 
					
						
							|  |  |  |      Affects environment availability for Explore Mode. | 
					
						
							|  |  |  |      Adds Void Items into the item pool | 
					
						
							|  |  |  |      """
 | 
					
						
							|  |  |  |     display_name = "Enable DLC - SOTV" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-09 13:14:18 -06:00
										 |  |  | class RequireStages(DefaultOnToggle): | 
					
						
							|  |  |  |     """Add Stage items to the pool to block access to the next set of environments.""" | 
					
						
							|  |  |  |     display_name = "Require Stages" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ProgressiveStages(DefaultOnToggle): | 
					
						
							|  |  |  |     """This will convert Stage items to be a progressive item. For example instead of "Stage 2" it would be
 | 
					
						
							|  |  |  |      "Progressive Stage" """
 | 
					
						
							|  |  |  |     display_name = "Progressive Stages" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  | class GreenScrap(Range): | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  |     """Weight of Green Scraps in the item pool.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     (Ignored unless Item Weight Presets is 'No')"""
 | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Green Scraps" | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  |     range_start = 0 | 
					
						
							| 
									
										
										
										
											2022-01-23 16:13:07 -08:00
										 |  |  |     range_end = 100 | 
					
						
							| 
									
										
										
										
											2021-09-07 17:14:20 -05:00
										 |  |  |     default = 16 | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class RedScrap(Range): | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  |     """Weight of Red Scraps in the item pool.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     (Ignored unless Item Weight Presets is 'No')"""
 | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Red Scraps" | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  |     range_start = 0 | 
					
						
							| 
									
										
										
										
											2022-01-23 16:13:07 -08:00
										 |  |  |     range_end = 100 | 
					
						
							| 
									
										
										
										
											2021-09-07 17:14:20 -05:00
										 |  |  |     default = 4 | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class YellowScrap(Range): | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  |     """Weight of yellow scraps in the item pool.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     (Ignored unless Item Weight Presets is 'No')"""
 | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Yellow Scraps" | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  |     range_start = 0 | 
					
						
							| 
									
										
										
										
											2022-01-23 16:13:07 -08:00
										 |  |  |     range_end = 100 | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  |     default = 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class WhiteScrap(Range): | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  |     """Weight of white scraps in the item pool.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     (Ignored unless Item Weight Presets is 'No')"""
 | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "White Scraps" | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  |     range_start = 0 | 
					
						
							| 
									
										
										
										
											2022-01-23 16:13:07 -08:00
										 |  |  |     range_end = 100 | 
					
						
							| 
									
										
										
										
											2021-09-07 17:14:20 -05:00
										 |  |  |     default = 32 | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CommonItem(Range): | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  |     """Weight of common items in the item pool.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     (Ignored unless Item Weight Presets is 'No')"""
 | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Common Items" | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  |     range_start = 0 | 
					
						
							| 
									
										
										
										
											2022-01-23 16:13:07 -08:00
										 |  |  |     range_end = 100 | 
					
						
							| 
									
										
										
										
											2021-09-07 17:14:20 -05:00
										 |  |  |     default = 64 | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class UncommonItem(Range): | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  |     """Weight of uncommon items in the item pool.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     (Ignored unless Item Weight Presets is 'No')"""
 | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Uncommon Items" | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  |     range_start = 0 | 
					
						
							| 
									
										
										
										
											2022-01-23 16:13:07 -08:00
										 |  |  |     range_end = 100 | 
					
						
							| 
									
										
										
										
											2021-09-07 17:14:20 -05:00
										 |  |  |     default = 32 | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class LegendaryItem(Range): | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  |     """Weight of legendary items in the item pool.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     (Ignored unless Item Weight Presets is 'No')"""
 | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Legendary Items" | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  |     range_start = 0 | 
					
						
							| 
									
										
										
										
											2022-01-23 16:13:07 -08:00
										 |  |  |     range_end = 100 | 
					
						
							| 
									
										
										
										
											2021-09-07 17:14:20 -05:00
										 |  |  |     default = 8 | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class BossItem(Range): | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  |     """Weight of boss items in the item pool.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     (Ignored unless Item Weight Presets is 'No')"""
 | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Boss Items" | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  |     range_start = 0 | 
					
						
							| 
									
										
										
										
											2022-01-23 16:13:07 -08:00
										 |  |  |     range_end = 100 | 
					
						
							| 
									
										
										
										
											2021-09-07 17:14:20 -05:00
										 |  |  |     default = 4 | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class LunarItem(Range): | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  |     """Weight of lunar items in the item pool.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     (Ignored unless Item Weight Presets is 'No')"""
 | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Lunar Items" | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  |     range_start = 0 | 
					
						
							| 
									
										
										
										
											2022-01-23 16:13:07 -08:00
										 |  |  |     range_end = 100 | 
					
						
							| 
									
										
										
										
											2021-09-07 17:14:20 -05:00
										 |  |  |     default = 16 | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  | class VoidItem(Range): | 
					
						
							|  |  |  |     """Weight of void items in the item pool.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     (Ignored unless Item Weight Presets is 'No') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     (Ignored if Enable DLC - SOTV is 'No') """
 | 
					
						
							|  |  |  |     display_name = "Void Items" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 100 | 
					
						
							|  |  |  |     default = 16 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  | class Equipment(Range): | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  |     """Weight of equipment items in the item pool.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |      (Ignored unless Item Weight Presets is 'No')"""
 | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Equipment" | 
					
						
							| 
									
										
										
										
											2021-09-06 23:40:39 -05:00
										 |  |  |     range_start = 0 | 
					
						
							| 
									
										
										
										
											2022-01-23 16:13:07 -08:00
										 |  |  |     range_end = 100 | 
					
						
							| 
									
										
										
										
											2021-09-07 17:14:20 -05:00
										 |  |  |     default = 32 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-22 08:20:32 -07:00
										 |  |  | class Money(Range): | 
					
						
							|  |  |  |     """Weight of money items in the item pool.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     (Ignored unless Item Weight Presets is 'No')"""
 | 
					
						
							|  |  |  |     display_name = "Money" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 100 | 
					
						
							|  |  |  |     default = 64 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class LunarCoin(Range): | 
					
						
							|  |  |  |     """Weight of lunar coin items in the item pool.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     (Ignored unless Item Weight Presets is 'No')"""
 | 
					
						
							|  |  |  |     display_name = "Lunar Coins" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 100 | 
					
						
							|  |  |  |     default = 20 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Experience(Range): | 
					
						
							|  |  |  |     """Weight of 1000 exp items in the item pool.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     (Ignored unless Item Weight Presets is 'No')"""
 | 
					
						
							|  |  |  |     display_name = "1000 Exp" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 100 | 
					
						
							|  |  |  |     default = 40 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class MountainTrap(Range): | 
					
						
							|  |  |  |     """Weight of mountain trap items in the item pool.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     (Ignored unless Item Weight Presets is 'No')"""
 | 
					
						
							|  |  |  |     display_name = "Mountain Trap" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 100 | 
					
						
							|  |  |  |     default = 5 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TimeWarpTrap(Range): | 
					
						
							|  |  |  |     """Weight of time warp trap items in the item pool.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     (Ignored unless Item Weight Presets is 'No')"""
 | 
					
						
							|  |  |  |     display_name = "Time Warp Trap" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 100 | 
					
						
							|  |  |  |     default = 20 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CombatTrap(Range): | 
					
						
							|  |  |  |     """Weight of combat trap items in the item pool.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     (Ignored unless Item Weight Presets is 'No')"""
 | 
					
						
							|  |  |  |     display_name = "Combat Trap" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 100 | 
					
						
							|  |  |  |     default = 20 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TeleportTrap(Range): | 
					
						
							|  |  |  |     """Weight of teleport trap items in the item pool.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     (Ignored unless Item Weight Presets is 'No')"""
 | 
					
						
							|  |  |  |     display_name = "Teleport Trap" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 100 | 
					
						
							|  |  |  |     default = 20 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  | class ItemPoolPresetToggle(Toggle): | 
					
						
							| 
									
										
										
										
											2021-09-07 17:14:20 -05:00
										 |  |  |     """Will use the item weight presets when set to true, otherwise will use the custom set item pool weights.""" | 
					
						
							| 
									
										
										
										
											2022-08-20 18:09:35 -05:00
										 |  |  |     display_name = "Use Item Weight Presets" | 
					
						
							| 
									
										
										
										
											2021-09-07 17:14:20 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-15 16:19:36 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-07 17:14:20 -05:00
										 |  |  | class ItemWeights(Choice): | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  |     """Set item_pool_presets to true if you want to use one of these presets.
 | 
					
						
							|  |  |  |     Preset choices for determining the weights of the item pool. | 
					
						
							|  |  |  |     - New is a test for a potential adjustment to the default weights. | 
					
						
							|  |  |  |     - Uncommon puts a large number of uncommon items in the pool. | 
					
						
							|  |  |  |     - Legendary puts a large number of legendary items in the pool. | 
					
						
							| 
									
										
										
										
											2023-11-22 08:20:32 -07:00
										 |  |  |     - Chaos generates the pool completely at random with rarer items having a slight cap to prevent this option being | 
					
						
							|  |  |  |     too easy. | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  |     - No Scraps removes all scrap items from the item pool. | 
					
						
							|  |  |  |     - Even generates the item pool with every item having an even weight. | 
					
						
							|  |  |  |     - Scraps Only will be only scrap items in the item pool. | 
					
						
							| 
									
										
										
										
											2023-11-22 08:20:32 -07:00
										 |  |  |     - Lunartic makes everything a lunar item. | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  |     - Void makes everything a void item."""
 | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Item Weights" | 
					
						
							| 
									
										
										
										
											2021-09-07 17:14:20 -05:00
										 |  |  |     option_default = 0 | 
					
						
							|  |  |  |     option_new = 1 | 
					
						
							|  |  |  |     option_uncommon = 2 | 
					
						
							|  |  |  |     option_legendary = 3 | 
					
						
							| 
									
										
										
										
											2023-11-22 08:20:32 -07:00
										 |  |  |     option_chaos = 4 | 
					
						
							|  |  |  |     option_no_scraps = 5 | 
					
						
							|  |  |  |     option_even = 6 | 
					
						
							|  |  |  |     option_scraps_only = 7 | 
					
						
							|  |  |  |     option_lunartic = 8 | 
					
						
							| 
									
										
										
										
											2023-02-05 13:51:03 -07:00
										 |  |  |     option_void = 9 | 
					
						
							| 
									
										
										
										
											2021-09-07 17:14:20 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-15 16:19:36 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-10 15:30:20 -05:00
										 |  |  | @dataclass | 
					
						
							| 
									
										
										
										
											2023-10-31 15:34:24 -06:00
										 |  |  | class ROR2Options(PerGameCommonOptions): | 
					
						
							| 
									
										
										
										
											2023-10-10 15:30:20 -05:00
										 |  |  |     goal: Goal | 
					
						
							| 
									
										
										
										
											2023-11-22 08:20:32 -07:00
										 |  |  |     victory: Victory | 
					
						
							| 
									
										
										
										
											2023-10-10 15:30:20 -05:00
										 |  |  |     total_locations: TotalLocations | 
					
						
							|  |  |  |     chests_per_stage: ChestsPerEnvironment | 
					
						
							|  |  |  |     shrines_per_stage: ShrinesPerEnvironment | 
					
						
							|  |  |  |     scavengers_per_stage: ScavengersPerEnvironment | 
					
						
							|  |  |  |     scanner_per_stage: ScannersPerEnvironment | 
					
						
							|  |  |  |     altars_per_stage: AltarsPerEnvironment | 
					
						
							|  |  |  |     total_revivals: TotalRevivals | 
					
						
							|  |  |  |     start_with_revive: StartWithRevive | 
					
						
							|  |  |  |     final_stage_death: FinalStageDeath | 
					
						
							|  |  |  |     dlc_sotv: DLC_SOTV | 
					
						
							| 
									
										
										
										
											2024-04-09 13:14:18 -06:00
										 |  |  |     require_stages: RequireStages | 
					
						
							|  |  |  |     progressive_stages: ProgressiveStages | 
					
						
							| 
									
										
										
										
											2023-10-10 15:30:20 -05:00
										 |  |  |     death_link: DeathLink | 
					
						
							|  |  |  |     item_pickup_step: ItemPickupStep | 
					
						
							|  |  |  |     shrine_use_step: ShrineUseStep | 
					
						
							| 
									
										
										
										
											2023-11-22 08:20:32 -07:00
										 |  |  |     enable_trap: AllowTrapItems | 
					
						
							| 
									
										
										
										
											2023-10-10 15:30:20 -05:00
										 |  |  |     enable_lunar: AllowLunarItems | 
					
						
							|  |  |  |     item_weights: ItemWeights | 
					
						
							| 
									
										
										
										
											2023-10-31 15:34:24 -06:00
										 |  |  |     item_pool_presets: ItemPoolPresetToggle | 
					
						
							|  |  |  |     # define the weights of the generated item pool. | 
					
						
							|  |  |  |     green_scrap: GreenScrap | 
					
						
							|  |  |  |     red_scrap: RedScrap | 
					
						
							|  |  |  |     yellow_scrap: YellowScrap | 
					
						
							|  |  |  |     white_scrap: WhiteScrap | 
					
						
							|  |  |  |     common_item: CommonItem | 
					
						
							|  |  |  |     uncommon_item: UncommonItem | 
					
						
							|  |  |  |     legendary_item: LegendaryItem | 
					
						
							|  |  |  |     boss_item: BossItem | 
					
						
							|  |  |  |     lunar_item: LunarItem | 
					
						
							|  |  |  |     void_item: VoidItem | 
					
						
							|  |  |  |     equipment: Equipment | 
					
						
							| 
									
										
										
										
											2023-11-22 08:20:32 -07:00
										 |  |  |     money: Money | 
					
						
							|  |  |  |     lunar_coin: LunarCoin | 
					
						
							|  |  |  |     experience: Experience | 
					
						
							|  |  |  |     mountain_trap: MountainTrap | 
					
						
							|  |  |  |     time_warp_trap: TimeWarpTrap | 
					
						
							|  |  |  |     combat_trap: CombatTrap | 
					
						
							|  |  |  |     teleport_trap: TeleportTrap |