diff --git a/roguebasin/events.py b/roguebasin/events.py index 9b862b1..5d8a025 100644 --- a/roguebasin/events.py +++ b/roguebasin/events.py @@ -9,6 +9,7 @@ import tcod from .actions import Action, ActionResult, ExitAction, RegenerateRoomsAction, BumpAction, WaitAction from .geometry import Direction +from .object import Actor if TYPE_CHECKING: from .engine import Engine @@ -40,7 +41,12 @@ class EventHandler(tcod.event.EventDispatch[Action]): if not result.success and result.done: return - for ent in self.engine.entities: + # Copy the list so we only act on the entities that exist at the start of this turn + entities = list(self.engine.entities) + for ent in entities: + if not isinstance(ent, Actor): + continue + ent_ai = ent.ai if not ent_ai: continue