diff --git a/squirrelbattle/game.py b/squirrelbattle/game.py index 7807882..1b856e7 100644 --- a/squirrelbattle/game.py +++ b/squirrelbattle/game.py @@ -110,14 +110,28 @@ class Game: move_down = y != self.map.start_y and x != self.map.start_x old_map = self.map self.map_index += 1 if move_down else -1 - self.map_index = max(0, self.map_index) + if self.map_index == -1: + self.map_index = 0 + return while self.map_index >= len(self.maps): self.maps.append(Map.load(ResourceManager.get_asset_path( "example_map_2.txt"))) new_map = self.map old_map.remove_entity(self.player) new_map.add_entity(self.player) - self.player.move(self.map.start_y, self.map.start_x) + if move_down: + self.player.move(self.map.start_y, self.map.start_x) + elif KeyValues.translate_key(key, self.settings) \ + in [KeyValues.UP, KeyValues.DOWN, + KeyValues.LEFT, KeyValues.RIGHT]: + ladder_y, ladder_x = -1, -1 + for y in range(self.map.height): + for x in range(self.map.width): + if (y, x) != (self.map.start_y, self.map.start_x) \ + and self.map.tiles[y][x].is_ladder(): + ladder_y, ladder_x = y, x + break + self.player.move(ladder_y, ladder_x) self.display_actions(DisplayActions.UPDATE) def handle_key_pressed(self, key: Optional[KeyValues], raw_key: str = '')\