| 
									
										
										
										
											2021-07-04 16:18:21 +02:00
										 |  |  | import typing | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-01 19:37:47 +01:00
										 |  |  | from Options import Choice, Range, Option, Toggle, DefaultOnToggle, DeathLink | 
					
						
							| 
									
										
										
										
											2021-07-04 16:18:21 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Logic(Choice): | 
					
						
							|  |  |  |     option_no_glitches = 0 | 
					
						
							|  |  |  |     option_minor_glitches = 1 | 
					
						
							|  |  |  |     option_overworld_glitches = 2 | 
					
						
							|  |  |  |     option_hybrid_major_glitches = 3 | 
					
						
							|  |  |  |     option_no_logic = 4 | 
					
						
							|  |  |  |     alias_owg = 2 | 
					
						
							|  |  |  |     alias_hmg = 3 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Objective(Choice): | 
					
						
							|  |  |  |     option_crystals = 0 | 
					
						
							|  |  |  |     # option_pendants = 1 | 
					
						
							|  |  |  |     option_triforce_pieces = 2 | 
					
						
							|  |  |  |     option_pedestal = 3 | 
					
						
							|  |  |  |     option_bingo = 4 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Goal(Choice): | 
					
						
							|  |  |  |     option_kill_ganon = 0 | 
					
						
							|  |  |  |     option_kill_ganon_and_gt_agahnim = 1 | 
					
						
							|  |  |  |     option_hand_in = 2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-30 16:31:56 +02:00
										 |  |  | class DungeonItem(Choice): | 
					
						
							|  |  |  |     value: int | 
					
						
							|  |  |  |     option_original_dungeon = 0 | 
					
						
							|  |  |  |     option_own_dungeons = 1 | 
					
						
							|  |  |  |     option_own_world = 2 | 
					
						
							|  |  |  |     option_any_world = 3 | 
					
						
							|  |  |  |     option_different_world = 4 | 
					
						
							| 
									
										
										
										
											2021-12-23 12:31:44 -05:00
										 |  |  |     option_start_with = 6 | 
					
						
							| 
									
										
										
										
											2021-08-30 16:31:56 +02:00
										 |  |  |     alias_true = 3 | 
					
						
							|  |  |  |     alias_false = 0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @property | 
					
						
							|  |  |  |     def in_dungeon(self): | 
					
						
							|  |  |  |         return self.value in {0, 1} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-03 10:41:31 +01:00
										 |  |  |     @property | 
					
						
							|  |  |  |     def hints_useful(self): | 
					
						
							|  |  |  |         """Indicates if hints for this Item are useful in any way.""" | 
					
						
							|  |  |  |         return self.value in {1, 2, 3, 4} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-30 16:31:56 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-30 18:00:39 +02:00
										 |  |  | class bigkey_shuffle(DungeonItem): | 
					
						
							| 
									
										
										
										
											2021-08-30 16:31:56 +02:00
										 |  |  |     """Big Key Placement""" | 
					
						
							|  |  |  |     item_name_group = "Big Keys" | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Big Key Shuffle" | 
					
						
							| 
									
										
										
										
											2021-08-30 16:31:56 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-30 18:00:39 +02:00
										 |  |  | class smallkey_shuffle(DungeonItem): | 
					
						
							| 
									
										
										
										
											2021-08-30 16:31:56 +02:00
										 |  |  |     """Small Key Placement""" | 
					
						
							|  |  |  |     option_universal = 5 | 
					
						
							|  |  |  |     item_name_group = "Small Keys" | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Small Key Shuffle" | 
					
						
							| 
									
										
										
										
											2021-08-30 16:31:56 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-30 18:00:39 +02:00
										 |  |  | class compass_shuffle(DungeonItem): | 
					
						
							| 
									
										
										
										
											2021-08-30 16:31:56 +02:00
										 |  |  |     """Compass Placement""" | 
					
						
							|  |  |  |     item_name_group = "Compasses" | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Compass Shuffle" | 
					
						
							| 
									
										
										
										
											2021-08-30 16:31:56 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-30 18:00:39 +02:00
										 |  |  | class map_shuffle(DungeonItem): | 
					
						
							| 
									
										
										
										
											2021-08-30 16:31:56 +02:00
										 |  |  |     """Map Placement""" | 
					
						
							|  |  |  |     item_name_group = "Maps" | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Map Shuffle" | 
					
						
							| 
									
										
										
										
											2021-08-30 16:31:56 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-04 16:18:21 +02:00
										 |  |  | class Crystals(Range): | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 7 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CrystalsTower(Crystals): | 
					
						
							|  |  |  |     default = 7 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CrystalsGanon(Crystals): | 
					
						
							|  |  |  |     default = 7 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TriforcePieces(Range): | 
					
						
							|  |  |  |     default = 30 | 
					
						
							|  |  |  |     range_start = 1 | 
					
						
							|  |  |  |     range_end = 90 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ShopItemSlots(Range): | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 30 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-12 17:13:52 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-02 21:07:43 -05:00
										 |  |  | class ShopPriceModifier(Range): | 
					
						
							|  |  |  |     """Percentage modifier for shuffled item prices in shops""" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     default = 100 | 
					
						
							| 
									
										
										
										
											2022-01-07 22:45:57 -05:00
										 |  |  |     range_end = 400 | 
					
						
							| 
									
										
										
										
											2021-07-04 16:18:21 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-12 17:13:52 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-04 16:18:21 +02:00
										 |  |  | class WorldState(Choice): | 
					
						
							|  |  |  |     option_standard = 1 | 
					
						
							|  |  |  |     option_open = 0 | 
					
						
							|  |  |  |     option_inverted = 2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Bosses(Choice): | 
					
						
							|  |  |  |     option_vanilla = 0 | 
					
						
							|  |  |  |     option_simple = 1 | 
					
						
							|  |  |  |     option_full = 2 | 
					
						
							|  |  |  |     option_chaos = 3 | 
					
						
							|  |  |  |     option_singularity = 4 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Enemies(Choice): | 
					
						
							|  |  |  |     option_vanilla = 0 | 
					
						
							|  |  |  |     option_shuffled = 1 | 
					
						
							|  |  |  |     option_chaos = 2 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | class Progressive(Choice): | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Progressive Items" | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  |     option_off = 0 | 
					
						
							|  |  |  |     option_grouped_random = 1 | 
					
						
							|  |  |  |     option_on = 2 | 
					
						
							|  |  |  |     alias_false = 0 | 
					
						
							|  |  |  |     alias_true = 2 | 
					
						
							|  |  |  |     default = 2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def want_progressives(self, random): | 
					
						
							| 
									
										
										
										
											2021-08-09 10:05:45 +02:00
										 |  |  |         return random.choice([True, False]) if self.value == self.option_grouped_random else bool(self.value) | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-29 20:21:49 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-13 01:32:32 +02:00
										 |  |  | class Swordless(Toggle): | 
					
						
							|  |  |  |     """No swords. Curtains in Skull Woods and Agahnim\'s
 | 
					
						
							|  |  |  |     Tower are removed, Agahnim\'s Tower barrier can be | 
					
						
							|  |  |  |     destroyed with hammer. Misery Mire and Turtle Rock | 
					
						
							|  |  |  |     can be opened without a sword. Hammer damages Ganon. | 
					
						
							|  |  |  |     Ether and Bombos Tablet can be activated with Hammer | 
					
						
							|  |  |  |     (and Book)."""
 | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Swordless" | 
					
						
							| 
									
										
										
										
											2021-09-13 01:32:32 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-17 03:48:54 +02:00
										 |  |  | # Might be a decent idea to split "Bow" into its own option with choices of | 
					
						
							|  |  |  | # Defer to Progressive Option (default), Progressive, Non-Progressive, Bow + Silvers, Retro | 
					
						
							| 
									
										
										
										
											2022-06-01 17:29:21 +02:00
										 |  |  | class RetroBow(Toggle): | 
					
						
							|  |  |  |     """Zelda-1 like mode. You have to purchase a quiver to shoot arrows using rupees.""" | 
					
						
							|  |  |  |     display_name = "Retro Bow" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class RetroCaves(Toggle): | 
					
						
							|  |  |  |     """Zelda-1 like mode. There are randomly placed take-any caves that contain one Sword and
 | 
					
						
							|  |  |  |     choices of Heart Container/Blue Potion."""
 | 
					
						
							|  |  |  |     display_name = "Retro Caves" | 
					
						
							| 
									
										
										
										
											2021-09-13 01:32:32 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class RestrictBossItem(Toggle): | 
					
						
							|  |  |  |     """Don't place dungeon-native items on the dungeon's boss.""" | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Prevent Dungeon Item on Boss" | 
					
						
							| 
									
										
										
										
											2021-09-13 01:32:32 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-27 22:57:54 +01:00
										 |  |  | class Hints(Choice): | 
					
						
							| 
									
										
										
										
											2022-05-28 20:08:06 +02:00
										 |  |  |     """On/Full: Put item and entrance placement hints on telepathic tiles and some NPCs, Full removes joke hints.""" | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Hints" | 
					
						
							| 
									
										
										
										
											2021-11-27 22:57:54 +01:00
										 |  |  |     option_off = 0 | 
					
						
							|  |  |  |     option_on = 2 | 
					
						
							|  |  |  |     option_full = 3 | 
					
						
							|  |  |  |     default = 2 | 
					
						
							|  |  |  |     alias_false = 0 | 
					
						
							|  |  |  |     alias_true = 2 | 
					
						
							| 
									
										
										
										
											2021-09-13 01:32:32 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-28 20:08:06 +02:00
										 |  |  | class Scams(Choice): | 
					
						
							|  |  |  |     """If on, these Merchants will no longer tell you what they're selling.""" | 
					
						
							|  |  |  |     display_name = "Scams" | 
					
						
							|  |  |  |     option_off = 0 | 
					
						
							|  |  |  |     option_king_zora = 1 | 
					
						
							|  |  |  |     option_bottle_merchant = 2 | 
					
						
							|  |  |  |     option_all = 3 | 
					
						
							|  |  |  |     alias_false = 0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def gives_king_zora_hint(self): | 
					
						
							|  |  |  |         return self.value in {0, 2} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def gives_bottle_merchant_hint(self): | 
					
						
							|  |  |  |         return self.value in {0, 1} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-13 01:32:32 +02:00
										 |  |  | class EnemyShuffle(Toggle): | 
					
						
							|  |  |  |     """Randomize every enemy spawn.
 | 
					
						
							|  |  |  |     If mode is Standard, Hyrule Castle is left out (may result in visually wrong enemy sprites in that area.)"""
 | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Enemy Shuffle" | 
					
						
							| 
									
										
										
										
											2021-09-13 01:32:32 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class KillableThieves(Toggle): | 
					
						
							|  |  |  |     """Makes Thieves killable.""" | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Killable Thieves" | 
					
						
							| 
									
										
										
										
											2021-09-13 01:32:32 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class BushShuffle(Toggle): | 
					
						
							|  |  |  |     """Randomize chance that a bush contains an enemy as well as which enemy may spawn.""" | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Bush Shuffle" | 
					
						
							| 
									
										
										
										
											2021-09-13 01:32:32 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TileShuffle(Toggle): | 
					
						
							|  |  |  |     """Randomize flying tiles floor patterns.""" | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Tile Shuffle" | 
					
						
							| 
									
										
										
										
											2021-09-13 01:32:32 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class PotShuffle(Toggle): | 
					
						
							|  |  |  |     """Shuffle contents of pots within "supertiles" (item will still be nearby original placement).""" | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Pot Shuffle" | 
					
						
							| 
									
										
										
										
											2021-09-13 01:32:32 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  | class Palette(Choice): | 
					
						
							|  |  |  |     option_default = 0 | 
					
						
							|  |  |  |     option_good = 1 | 
					
						
							|  |  |  |     option_blackout = 2 | 
					
						
							|  |  |  |     option_puke = 3 | 
					
						
							|  |  |  |     option_classic = 4 | 
					
						
							|  |  |  |     option_grayscale = 5 | 
					
						
							|  |  |  |     option_negative = 6 | 
					
						
							|  |  |  |     option_dizzy = 7 | 
					
						
							|  |  |  |     option_sick = 8 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class OWPalette(Palette): | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Overworld Palette" | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class UWPalette(Palette): | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Underworld Palette" | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class HUDPalette(Palette): | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Menu Palette" | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class SwordPalette(Palette): | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Sword Palette" | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ShieldPalette(Palette): | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Shield Palette" | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class LinkPalette(Palette): | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Link Palette" | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class HeartBeep(Choice): | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Heart Beep Rate" | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  |     option_normal = 0 | 
					
						
							|  |  |  |     option_double = 1 | 
					
						
							| 
									
										
										
										
											2021-08-29 15:43:16 +02:00
										 |  |  |     option_half = 2 | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  |     option_quarter = 3 | 
					
						
							|  |  |  |     option_off = 4 | 
					
						
							| 
									
										
										
										
											2021-08-29 20:21:49 +02:00
										 |  |  |     alias_false = 4 | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class HeartColor(Choice): | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Heart Color" | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  |     option_red = 0 | 
					
						
							|  |  |  |     option_blue = 1 | 
					
						
							|  |  |  |     option_green = 2 | 
					
						
							|  |  |  |     option_yellow = 3 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-15 02:32:36 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  | class QuickSwap(DefaultOnToggle): | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "L/R Quickswapping" | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class MenuSpeed(Choice): | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Menu Speed" | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  |     option_normal = 0 | 
					
						
							|  |  |  |     option_instant = 1, | 
					
						
							|  |  |  |     option_double = 2 | 
					
						
							|  |  |  |     option_triple = 3 | 
					
						
							|  |  |  |     option_quadruple = 4 | 
					
						
							|  |  |  |     option_half = 5 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Music(DefaultOnToggle): | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Play music" | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-15 02:32:36 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  | class ReduceFlashing(DefaultOnToggle): | 
					
						
							| 
									
										
										
										
											2022-03-18 18:17:19 +01:00
										 |  |  |     display_name = "Reduce Screen Flashes" | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-15 02:32:36 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  | class TriforceHud(Choice): | 
					
						
							| 
									
										
										
										
											2022-03-18 18:17:19 +01:00
										 |  |  |     display_name = "Display Method for Triforce Hunt" | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  |     option_normal = 0 | 
					
						
							|  |  |  |     option_hide_goal = 1 | 
					
						
							|  |  |  |     option_hide_required = 2 | 
					
						
							|  |  |  |     option_hide_both = 3 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-15 02:32:36 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-03 05:34:11 +00:00
										 |  |  | class BeemizerRange(Range): | 
					
						
							|  |  |  |     value: int | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 100 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class BeemizerTotalChance(BeemizerRange): | 
					
						
							|  |  |  |     """Percentage chance for each junk-fill item (rupees, bombs, arrows) to be
 | 
					
						
							|  |  |  |     replaced with either a bee swarm trap or a single bottle-filling bee."""
 | 
					
						
							|  |  |  |     default = 0 | 
					
						
							| 
									
										
										
										
											2022-03-18 18:17:19 +01:00
										 |  |  |     display_name = "Beemizer Total Chance" | 
					
						
							| 
									
										
										
										
											2021-11-03 05:34:11 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class BeemizerTrapChance(BeemizerRange): | 
					
						
							|  |  |  |     """Percentage chance for each replaced junk-fill item to be a bee swarm
 | 
					
						
							|  |  |  |     trap; all other replaced items are single bottle-filling bees."""
 | 
					
						
							|  |  |  |     default = 60 | 
					
						
							| 
									
										
										
										
											2022-03-18 18:17:19 +01:00
										 |  |  |     display_name = "Beemizer Trap Chance" | 
					
						
							| 
									
										
										
										
											2021-11-03 05:34:11 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-04 18:54:49 -07:00
										 |  |  | class AllowCollect(Toggle): | 
					
						
							|  |  |  |     """Allows for !collect / co-op to auto-open chests containing items for other players.
 | 
					
						
							|  |  |  |     Off by default, because it currently crashes on real hardware."""
 | 
					
						
							|  |  |  |     display_name = "Allow Collection of checks for other players" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-04 16:18:21 +02:00
										 |  |  | alttp_options: typing.Dict[str, type(Option)] = { | 
					
						
							|  |  |  |     "crystals_needed_for_gt": CrystalsTower, | 
					
						
							|  |  |  |     "crystals_needed_for_ganon": CrystalsGanon, | 
					
						
							| 
									
										
										
										
											2021-08-30 18:00:39 +02:00
										 |  |  |     "bigkey_shuffle": bigkey_shuffle, | 
					
						
							|  |  |  |     "smallkey_shuffle": smallkey_shuffle, | 
					
						
							|  |  |  |     "compass_shuffle": compass_shuffle, | 
					
						
							|  |  |  |     "map_shuffle": map_shuffle, | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  |     "progressive": Progressive, | 
					
						
							| 
									
										
										
										
											2021-09-13 01:32:32 +02:00
										 |  |  |     "swordless": Swordless, | 
					
						
							| 
									
										
										
										
											2022-06-01 17:29:21 +02:00
										 |  |  |     "retro_bow": RetroBow, | 
					
						
							|  |  |  |     "retro_caves": RetroCaves, | 
					
						
							| 
									
										
										
										
											2021-09-13 01:32:32 +02:00
										 |  |  |     "hints": Hints, | 
					
						
							| 
									
										
										
										
											2022-05-28 20:08:06 +02:00
										 |  |  |     "scams": Scams, | 
					
						
							| 
									
										
										
										
											2021-09-13 01:32:32 +02:00
										 |  |  |     "restrict_dungeon_item_on_boss": RestrictBossItem, | 
					
						
							|  |  |  |     "pot_shuffle": PotShuffle, | 
					
						
							|  |  |  |     "enemy_shuffle": EnemyShuffle, | 
					
						
							|  |  |  |     "killable_thieves": KillableThieves, | 
					
						
							|  |  |  |     "bush_shuffle": BushShuffle, | 
					
						
							| 
									
										
										
										
											2021-07-04 16:18:21 +02:00
										 |  |  |     "shop_item_slots": ShopItemSlots, | 
					
						
							| 
									
										
										
										
											2022-01-02 21:07:43 -05:00
										 |  |  |     "shop_price_modifier": ShopPriceModifier, | 
					
						
							| 
									
										
										
										
											2021-09-13 02:01:15 +02:00
										 |  |  |     "tile_shuffle": TileShuffle, | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  |     "ow_palettes": OWPalette, | 
					
						
							|  |  |  |     "uw_palettes": UWPalette, | 
					
						
							|  |  |  |     "hud_palettes": HUDPalette, | 
					
						
							|  |  |  |     "sword_palettes": SwordPalette, | 
					
						
							|  |  |  |     "shield_palettes": ShieldPalette, | 
					
						
							|  |  |  |     "link_palettes": LinkPalette, | 
					
						
							|  |  |  |     "heartbeep": HeartBeep, | 
					
						
							|  |  |  |     "heartcolor": HeartColor, | 
					
						
							|  |  |  |     "quickswap": QuickSwap, | 
					
						
							|  |  |  |     "menuspeed": MenuSpeed, | 
					
						
							|  |  |  |     "music": Music, | 
					
						
							|  |  |  |     "reduceflashing": ReduceFlashing, | 
					
						
							| 
									
										
										
										
											2021-08-30 16:31:56 +02:00
										 |  |  |     "triforcehud": TriforceHud, | 
					
						
							| 
									
										
										
										
											2021-11-01 19:37:47 +01:00
										 |  |  |     "glitch_boots": DefaultOnToggle, | 
					
						
							| 
									
										
										
										
											2021-11-03 05:34:11 +00:00
										 |  |  |     "beemizer_total_chance": BeemizerTotalChance, | 
					
						
							|  |  |  |     "beemizer_trap_chance": BeemizerTrapChance, | 
					
						
							| 
									
										
										
										
											2022-04-04 18:54:49 -07:00
										 |  |  |     "death_link": DeathLink, | 
					
						
							|  |  |  |     "allow_collect": AllowCollect | 
					
						
							| 
									
										
										
										
											2021-08-09 09:15:41 +02:00
										 |  |  | } |