From a43e403e9c55d864e0c70cabdf9dba2445018e89 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Thu, 5 May 2022 08:38:06 -0700 Subject: [PATCH] Let NPCs randomly walk --- roguebasin/engine.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/roguebasin/engine.py b/roguebasin/engine.py index d85cf71..43f0347 100644 --- a/roguebasin/engine.py +++ b/roguebasin/engine.py @@ -2,10 +2,11 @@ # Eryn Wells import logging +import random import tcod from .actions import ExitAction, MovePlayerAction, RegenerateRoomsAction from .events import EventHandler -from .geometry import Point, Size +from .geometry import Direction, Point, Size from .map import Map from .object import Entity from typing import AbstractSet @@ -47,6 +48,18 @@ class Engine: action.perform(self, self.player) + directions = list(Direction.all()) + + for ent in self.entities: + if ent == self.player: + continue + + while True: + new_position = ent.position + random.choice(directions) + if self.map.tile_is_walkable(new_position): + ent.position = new_position + break + self.update_field_of_view() def print_to_console(self, console):