diff --git a/dungeonbattle/game.py b/dungeonbattle/game.py index c3e71ef..9c3155e 100644 --- a/dungeonbattle/game.py +++ b/dungeonbattle/game.py @@ -122,6 +122,8 @@ class Game: Loads the game from a dictionary """ self.map.load_state(d) + # noinspection PyTypeChecker + self.player = self.map.find_entities(Player)[0] self.display_actions(DisplayActions.UPDATE) def load_game(self) -> None: diff --git a/dungeonbattle/interfaces.py b/dungeonbattle/interfaces.py index 20cedde..d4cb42c 100644 --- a/dungeonbattle/interfaces.py +++ b/dungeonbattle/interfaces.py @@ -45,6 +45,10 @@ class Map: """ self.entities.remove(entity) + def find_entities(self, entity_class: type) -> list: + return [entity for entity in self.entities + if isinstance(entity, entity_class)] + def is_free(self, y: int, x: int) -> bool: """ Indicates that the case at the coordinates (y, x) is empty.