From 1d4882a8ace64f0524b7f80f18a86cfc84388413 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Thu, 5 May 2022 08:45:30 -0700 Subject: [PATCH] Do not allow entities to move into squares previously moved entities have moved to --- roguebasin/engine.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/roguebasin/engine.py b/roguebasin/engine.py index 43f0347..63358ce 100644 --- a/roguebasin/engine.py +++ b/roguebasin/engine.py @@ -49,6 +49,7 @@ class Engine: action.perform(self, self.player) directions = list(Direction.all()) + moved_entities = [self.player] for ent in self.entities: if ent == self.player: @@ -56,8 +57,10 @@ class Engine: while True: new_position = ent.position + random.choice(directions) - if self.map.tile_is_walkable(new_position): + overlaps_with_previously_moved_entity = any(new_position == moved_ent.position for moved_ent in moved_entities) + if not overlaps_with_previously_moved_entity and self.map.tile_is_walkable(new_position): ent.position = new_position + moved_entities.append(ent) break self.update_field_of_view()