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:
@ -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:
|
||||
"""
|
||||
|
Reference in New Issue
Block a user