┌─────────────────────────────── Traceback (most recent call last) ────────────────────────────────┐ │ C:\Users\easyh\Documents\GitHub\pokebot-gen3\modules\main.py:85 in main_loop │ │ │ │ 82 │ │ │ │ │ for listener in listeners: │ │ 83 │ │ │ │ │ │ listener.handle_frame(current_mode, frame_info) │ │ 84 │ │ │ │ │ if len(context.controller_stack) > 0: │ │ > 85 │ │ │ │ │ │ next(context.controller_stack[-1]) │ │ 86 │ │ │ except (StopIteration, GeneratorExit): │ │ 87 │ │ │ │ context.controller_stack.pop() │ │ 88 │ │ │ except BotModeError as e: │ │ │ │ C:\Users\easyh\Documents\GitHub\pokebot-gen3\modules\modes\rock_smash.py:138 in run │ │ │ │ 135 │ │ │ match get_player_avatar().map_group_and_number: │ │ 136 │ │ │ │ case MapRSE.GRANITE_CAVE_B2F: │ │ 137 │ │ │ │ │ starting_frame = context.emulator.get_frame_count() │ │ > 138 │ │ │ │ │ for _ in self.granite_cave(): │ │ 139 │ │ │ │ │ │ # Detect reset │ │ 140 │ │ │ │ │ │ if context.emulator.get_frame_count() < starting_frame: │ │ 141 │ │ │ │ │ │ │ break │ │ │ │ C:\Users\easyh\Documents\GitHub\pokebot-gen3\modules\debug.py:35 in wrapper_function │ │ │ │ 32 │ │ │ │ self.action_stack.append(f"{name}({', '.join(formatted_args)})") │ │ 33 │ │ │ │ │ 34 │ │ │ try: │ │ > 35 │ │ │ │ yield from generator_function(*args, **kwargs) │ │ 36 │ │ │ finally: │ │ 37 │ │ │ │ if self.enabled: │ │ 38 │ │ │ │ │ self.action_stack.pop() │ │ │ │ C:\Users\easyh\Documents\GitHub\pokebot-gen3\modules\modes\rock_smash.py:276 in granite_cave │ │ │ │ 273 │ │ yield from ensure_facing_direction("Down") │ │ 274 │ │ yield from self.smash("TEMP_16") │ │ 275 │ │ │ │ > 276 │ │ yield from navigate_to(MapRSE.GRANITE_CAVE_B2F, (28, 21)) │ │ 277 │ │ yield from wait_for_player_avatar_to_be_standing_still() │ │ 278 │ │ yield from walk_one_tile("Down") │ │ 279 │ │ yield from walk_one_tile("Up") │ │ │ │ C:\Users\easyh\Documents\GitHub\pokebot-gen3\modules\debug.py:35 in wrapper_function │ │ │ │ 32 │ │ │ │ self.action_stack.append(f"{name}({', '.join(formatted_args)})") │ │ 33 │ │ │ │ │ 34 │ │ │ try: │ │ > 35 │ │ │ │ yield from generator_function(*args, **kwargs) │ │ 36 │ │ │ finally: │ │ 37 │ │ │ │ if self.enabled: │ │ 38 │ │ │ │ │ self.action_stack.pop() │ │ │ │ C:\Users\easyh\Documents\GitHub\pokebot-gen3\modules\modes\util\walking.py:400 in navigate_to │ │ │ │ 397 │ │ │ 398 │ while True: │ │ 399 │ │ try: │ │ > 400 │ │ │ yield from follow_waypoints(waypoint_generator(), run) │ │ 401 │ │ │ break │ │ 402 │ │ except TimedOutTryingToReachWaypointError: │ │ 403 │ │ │ # If we run into a timeout while trying to follow the waypoints, this is lik │ │ │ │ C:\Users\easyh\Documents\GitHub\pokebot-gen3\modules\debug.py:35 in wrapper_function │ │ │ │ 32 │ │ │ │ self.action_stack.append(f"{name}({', '.join(formatted_args)})") │ │ 33 │ │ │ │ │ 34 │ │ │ try: │ │ > 35 │ │ │ │ yield from generator_function(*args, **kwargs) │ │ 36 │ │ │ finally: │ │ 37 │ │ │ │ if self.enabled: │ │ 38 │ │ │ │ │ self.action_stack.pop() │ │ │ │ C:\Users\easyh\Documents\GitHub\pokebot-gen3\modules\modes\util\walking.py:336 in │ │ follow_waypoints │ │ │ │ 333 │ │ # If we reached the destination tile and the script context is enabled, that pro │ │ 334 │ │ # that a script has triggered at our destination. In that case, we cease control │ │ 335 │ │ # bot mode immediately. │ │ > 336 │ │ if last_waypoint is None or player_is_at(last_waypoint.map, last_waypoint.coordi │ │ 337 │ │ │ if get_global_script_context().is_active: │ │ 338 │ │ │ │ break │ │ 339 │ │ yield │ │ │ │ C:\Users\easyh\Documents\GitHub\pokebot-gen3\modules\player.py:289 in player_is_at │ │ │ │ 286 │ │ 287 │ │ 288 def player_is_at(map: tuple[int, int] | MapFRLG | MapRSE, coordinates: tuple[int, int]) │ │ > 289 │ location = get_player_location() │ │ 290 │ return location[0] == map and location[1] == coordinates │ │ 291 │ │ │ │ C:\Users\easyh\Documents\GitHub\pokebot-gen3\modules\player.py:281 in get_player_location │ │ │ │ 278 │ │ raise RuntimeError("Could not figure out the player's location because the playe │ │ 279 │ │ │ 280 │ if context.rom.is_rse: │ │ > 281 │ │ map = MapRSE(avatar.map_group_and_number) │ │ 282 │ else: │ │ 283 │ │ map = MapFRLG(avatar.map_group_and_number) │ │ 284 │ │ │ │ C:\Users\easyh\AppData\Local\Programs\Python\Python311\Lib\enum.py:695 in __call__ │ │ │ │ 692 │ │ `type`, if set, will be mixed in as the first base class. │ │ 693 │ │ """ │ │ 694 │ │ if names is None: # simple value lookup │ │ > 695 │ │ │ return cls.__new__(cls, value) │ │ 696 │ │ # otherwise, functional API: we're creating a new Enum type │ │ 697 │ │ return cls._create_( │ │ 698 │ │ │ │ value, │ │ │ │ C:\Users\easyh\AppData\Local\Programs\Python\Python311\Lib\enum.py:1111 in __new__ │ │ │ │ 1108 │ │ │ else: │ │ 1109 │ │ │ │ ve_exc = ValueError("%r is not a valid %s" % (value, cls.__qualname__)) │ │ 1110 │ │ │ │ if result is None and exc is None: │ │ > 1111 │ │ │ │ │ raise ve_exc │ │ 1112 │ │ │ │ elif exc is None: │ │ 1113 │ │ │ │ │ exc = TypeError( │ │ 1114 │ │ │ │ │ │ │ 'error in %s._missing_: returned %r instead of None or a val │ └──────────────────────────────────────────────────────────────────────────────────────────────────┘ ValueError: (255, 255) is not a valid MapRSE