From d26b66f337d0112c277697592bc5d5589f7ddb99 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Tue, 10 Nov 2020 22:34:12 +0100 Subject: [PATCH] Add possibility to define the background color of entities (black in ASCII, white in Unicode) --- dungeonbattle/entities/monsters.py | 12 +++++++++++- dungeonbattle/game.py | 1 + dungeonbattle/interfaces.py | 7 +++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/dungeonbattle/entities/monsters.py b/dungeonbattle/entities/monsters.py index 2246e50..7c19c62 100644 --- a/dungeonbattle/entities/monsters.py +++ b/dungeonbattle/entities/monsters.py @@ -1,9 +1,19 @@ +from random import choice + from ..interfaces import FightingEntity, Map class Monster(FightingEntity): def act(self, m: Map) -> None: - pass + """ + By default, a monster will move randomly where it is possible + And if a player is close to the monster, the monster run on the player. + """ + # TODO If a player is close, move to the player + while True: + if choice([self.move_up, self.move_down, + self.move_left, self.move_right])(): + break class Hedgehog(Monster): diff --git a/dungeonbattle/game.py b/dungeonbattle/game.py index 23cc598..e8f412c 100644 --- a/dungeonbattle/game.py +++ b/dungeonbattle/game.py @@ -71,6 +71,7 @@ class Game: self.display_refresh() key = screen.getkey() self.handle_key_pressed(self.translate_key(key)) + self.map.tick() def translate_key(self, key: str) -> KeyValues: """ diff --git a/dungeonbattle/interfaces.py b/dungeonbattle/interfaces.py index 4c281e4..65e381d 100644 --- a/dungeonbattle/interfaces.py +++ b/dungeonbattle/interfaces.py @@ -88,6 +88,13 @@ class Map: hedgehog.move(y, x) self.add_entity(hedgehog) + def tick(self) -> None: + """ + Trigger all entity events. + """ + for entity in self.entities: + entity.act(self) + class Tile(Enum): EMPTY = auto()