| 
									
										
										
										
											2021-02-21 20:17:24 +01:00
										 |  |  | from typing import Optional | 
					
						
							| 
									
										
										
										
											2020-10-24 05:38:56 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-21 20:17:24 +01:00
										 |  |  | from BaseClasses import Location, Item | 
					
						
							| 
									
										
										
										
											2020-10-24 05:38:56 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-21 20:17:24 +01:00
										 |  |  | #class ALTTPWorld(World): | 
					
						
							|  |  |  | #    """WIP""" | 
					
						
							|  |  |  | #    def __init__(self, options, slot: int): | 
					
						
							|  |  |  | #        self._region_cache = {} | 
					
						
							|  |  |  | #        self.slot = slot | 
					
						
							|  |  |  | #        self.shuffle = shuffle | 
					
						
							|  |  |  | #        self.logic = logic | 
					
						
							|  |  |  | #        self.mode = mode | 
					
						
							|  |  |  | #        self.swords = swords | 
					
						
							|  |  |  | #        self.difficulty = difficulty | 
					
						
							|  |  |  | #        self.difficulty_adjustments = difficulty_adjustments | 
					
						
							|  |  |  | #        self.timer = timer | 
					
						
							|  |  |  | #        self.progressive = progressive | 
					
						
							|  |  |  | #        self.goal = goal | 
					
						
							|  |  |  | #        self.dungeons = [] | 
					
						
							|  |  |  | #        self.regions = [] | 
					
						
							|  |  |  | #        self.shops = [] | 
					
						
							|  |  |  | #        self.itempool = [] | 
					
						
							|  |  |  | #        self.seed = None | 
					
						
							|  |  |  | #        self.precollected_items = [] | 
					
						
							|  |  |  | #        self.state = CollectionState(self) | 
					
						
							|  |  |  | #        self._cached_entrances = None | 
					
						
							|  |  |  | #        self._cached_locations = None | 
					
						
							|  |  |  | #        self._entrance_cache = {} | 
					
						
							|  |  |  | #        self._location_cache = {} | 
					
						
							|  |  |  | #        self.required_locations = [] | 
					
						
							|  |  |  | #        self.light_world_light_cone = False | 
					
						
							|  |  |  | #        self.dark_world_light_cone = False | 
					
						
							|  |  |  | #        self.rupoor_cost = 10 | 
					
						
							|  |  |  | #        self.aga_randomness = True | 
					
						
							|  |  |  | #        self.lock_aga_door_in_escape = False | 
					
						
							|  |  |  | #        self.save_and_quit_from_boss = True | 
					
						
							|  |  |  | #        self.accessibility = accessibility | 
					
						
							|  |  |  | #        self.shuffle_ganon = shuffle_ganon | 
					
						
							|  |  |  | #        self.fix_gtower_exit = self.shuffle_ganon | 
					
						
							|  |  |  | #        self.retro = retro | 
					
						
							|  |  |  | #        self.custom = custom | 
					
						
							|  |  |  | #        self.customitemarray: List[int] = customitemarray | 
					
						
							|  |  |  | #        self.hints = hints | 
					
						
							|  |  |  | #        self.dynamic_regions = [] | 
					
						
							|  |  |  | #        self.dynamic_locations = [] | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #        self.remote_items = False | 
					
						
							|  |  |  | #        self.required_medallions = ['Ether', 'Quake'] | 
					
						
							|  |  |  | #        self.swamp_patch_required = False | 
					
						
							|  |  |  | #        self.powder_patch_required = False | 
					
						
							|  |  |  | #        self.ganon_at_pyramid = True | 
					
						
							|  |  |  | #        self.ganonstower_vanilla = True | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #        self.can_access_trock_eyebridge = None | 
					
						
							|  |  |  | #        self.can_access_trock_front = None | 
					
						
							|  |  |  | #        self.can_access_trock_big_chest = None | 
					
						
							|  |  |  | #        self.can_access_trock_middle = None | 
					
						
							|  |  |  | #        self.fix_fake_world = True | 
					
						
							|  |  |  | #        self.mapshuffle = False | 
					
						
							|  |  |  | #        self.compassshuffle = False | 
					
						
							|  |  |  | #        self.keyshuffle = False | 
					
						
							|  |  |  | #        self.bigkeyshuffle = False | 
					
						
							|  |  |  | #        self.difficulty_requirements = None | 
					
						
							|  |  |  | #        self.boss_shuffle = 'none' | 
					
						
							|  |  |  | #        self.enemy_shuffle = False | 
					
						
							|  |  |  | #        self.enemy_health = 'default' | 
					
						
							|  |  |  | #        self.enemy_damage = 'default' | 
					
						
							|  |  |  | #        self.killable_thieves = False | 
					
						
							|  |  |  | #        self.tile_shuffle = False | 
					
						
							|  |  |  | #        self.bush_shuffle = False | 
					
						
							|  |  |  | #        self.beemizer = 0 | 
					
						
							|  |  |  | #        self.escape_assist = [] | 
					
						
							|  |  |  | #        self.crystals_needed_for_ganon = 7 | 
					
						
							|  |  |  | #        self.crystals_needed_for_gt = 7 | 
					
						
							|  |  |  | #        self.open_pyramid = False | 
					
						
							|  |  |  | #        self.treasure_hunt_icon = 'Triforce Piece' | 
					
						
							|  |  |  | #        self.treasure_hunt_count = 0 | 
					
						
							|  |  |  | #        self.clock_mode = False | 
					
						
							|  |  |  | #        self.can_take_damage = True | 
					
						
							|  |  |  | #        self.glitch_boots = True | 
					
						
							|  |  |  | #        self.progression_balancing = True | 
					
						
							|  |  |  | #        self.local_items = set() | 
					
						
							|  |  |  | #        self.triforce_pieces_available = 30 | 
					
						
							|  |  |  | #        self.triforce_pieces_required = 20 | 
					
						
							|  |  |  | #        self.shop_shuffle = 'off' | 
					
						
							|  |  |  | #        self.shuffle_prizes = "g" | 
					
						
							|  |  |  | #        self.sprite_pool = [] | 
					
						
							|  |  |  | #        self.dark_room_logic = "lamp" | 
					
						
							|  |  |  | #        self.restrict_dungeon_item_on_boss = False | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2020-10-24 05:38:56 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-21 20:17:24 +01:00
										 |  |  | class ALttPLocation(Location): | 
					
						
							|  |  |  |     game: str = "A Link to the Past" | 
					
						
							| 
									
										
										
										
											2020-10-24 05:38:56 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-21 20:17:24 +01:00
										 |  |  |     def __init__(self, player: int, name: str = '', address=None, crystal: bool = False, | 
					
						
							|  |  |  |                  hint_text: Optional[str] = None, parent=None, | 
					
						
							|  |  |  |                  player_address=None): | 
					
						
							|  |  |  |         super(ALttPLocation, self).__init__(player, name, address, parent) | 
					
						
							|  |  |  |         self.crystal = crystal | 
					
						
							|  |  |  |         self.player_address = player_address | 
					
						
							|  |  |  |         self._hint_text: str = hint_text | 
					
						
							| 
									
										
										
										
											2020-10-24 05:38:56 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-21 20:17:24 +01:00
										 |  |  | class ALttPItem(Item): | 
					
						
							| 
									
										
										
										
											2020-10-24 05:38:56 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-21 20:17:24 +01:00
										 |  |  |     game: str = "A Link to the Past" | 
					
						
							| 
									
										
										
										
											2020-10-24 05:38:56 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-21 20:17:24 +01:00
										 |  |  |     def __init__(self, name='', advancement=False, type=None, code=None, pedestal_hint=None, pedestal_credit=None, sickkid_credit=None, zora_credit=None, witch_credit=None, fluteboy_credit=None, hint_text=None, player=None): | 
					
						
							|  |  |  |         super(ALttPItem, self).__init__(name, advancement, code, player) | 
					
						
							|  |  |  |         self.type = type | 
					
						
							|  |  |  |         self._pedestal_hint_text = pedestal_hint | 
					
						
							|  |  |  |         self.pedestal_credit_text = pedestal_credit | 
					
						
							|  |  |  |         self.sickkid_credit_text = sickkid_credit | 
					
						
							|  |  |  |         self.zora_credit_text = zora_credit | 
					
						
							|  |  |  |         self.magicshop_credit_text = witch_credit | 
					
						
							|  |  |  |         self.fluteboy_credit_text = fluteboy_credit | 
					
						
							|  |  |  |         self._hint_text = hint_text |