Friendly entities are now a subclass of fighting entities, and can die. The T key is now used to talk to friendly entities

This commit is contained in:
eichhornchen
2020-12-04 00:27:25 +01:00
parent 654bab7c1d
commit 3886bee1ba
5 changed files with 57 additions and 16 deletions

View File

@ -24,6 +24,7 @@ class Game:
"""
map: Map
player: Player
screen: Any
# display_actions is a display interface set by the bootstrapper
display_actions: Callable[[DisplayActions], None]
@ -61,6 +62,7 @@ class Game:
We wait for the player's action, then we do what that should be done
when the given key gets pressed.
"""
self.screen = screen
while True: # pragma no cover
screen.erase()
screen.refresh()
@ -106,6 +108,30 @@ class Game:
self.map.tick()
elif key == KeyValues.SPACE:
self.state = GameMode.MAINMENU
elif key == KeyValues.T :
keykey = self.screen.getkey()
keykey = KeyValues.translate_key(keykey, self.settings)
if keykey == KeyValues.UP:
xp = self.player.x
yp = self.player.y+1
elif keykey == KeyValues.DOWN:
xp = self.player.x
yp = self.player.y-1
elif keykey == KeyValues.LEFT:
xp = self.player.x-1
yp = self.player.y
elif keykey == KeyValues.RIGHT:
xp = self.player.x+1
yp = self.player.y
else :
raise Exception(keykey)
if self.map.entity_is_present(yp, xp) :
for entity in self.map.entities :
if entity.is_friendly() and entity.x == xp and entity.y == yp :
msg = entity.talk_to(self.player)
self.logs.add_message(msg)
def handle_key_pressed_main_menu(self, key: KeyValues) -> None:
"""