Looking around works!!

This commit is contained in:
Joe S 2021-02-24 00:20:11 -05:00
parent 234d03db60
commit 695fcca522
1 changed files with 21 additions and 5 deletions

View File

@ -10,6 +10,7 @@ class Handler(npyscreen.ButtonPress):
2: prepare new items to display on the screen 2: prepare new items to display on the screen
3: re-render the screen 3: re-render the screen
""" """
def whenPressed(self): def whenPressed(self):
self.parent.parentApp.log.debug('Send button pressed!') self.parent.parentApp.log.debug('Send button pressed!')
# This is the raw command from the user # This is the raw command from the user
@ -24,7 +25,8 @@ class Handler(npyscreen.ButtonPress):
try: try:
command = parsed_command.pop(0) command = parsed_command.pop(0)
except IndexError: except IndexError:
self.parent.parentApp.log.warn('Command "{0}" could not be split, was it malformed or incomplete?'.format(raw_command)) self.parent.parentApp.log.warn(
'Command "{0}" could not be split, was it malformed or incomplete?'.format(raw_command))
command = '' command = ''
arguments = parsed_command # Whatever is left in the list, are arguments. arguments = parsed_command # Whatever is left in the list, are arguments.
@ -44,17 +46,31 @@ class Handler(npyscreen.ButtonPress):
player = self.parent.parentApp.player player = self.parent.parentApp.player
roomlocation = player.playerData['player']['location'] + '.yaml' roomlocation = player.playerData['player']['location'] + '.yaml'
try: try:
room = parse(self.parent.parentApp.mainPath / 'gamedata/world' / roomlocation) room = parse(self.parent.parentApp.mainPath / 'gamedata/world' / roomlocation)[
player.playerData['player']['location']]
# If the file could not be found # If the file could not be found
except FileNotFoundError: except FileNotFoundError:
# Log a critical error! # Log a critical error!
self.parent.parentApp.log.critical('Handler could not load the current room! Is the player file corrupt or was there a typo? Path was {0}'.format(self.parent.parentApp.mainPath / 'gamedata/world' / roomlocation)) self.parent.parentApp.log.critical(
'Handler could not load the current room! Is the player file corrupt or was there a typo? Path was {0}'.format(
self.parent.parentApp.mainPath / 'gamedata/world' / roomlocation))
# Put the player in a blank room i forgot to finish # Put the player in a blank room i forgot to finish
room = parse(self.parent.parentApp.mainPath / 'gamedata/world/blank_room.yaml') room = parse(self.parent.parentApp.mainPath / 'gamedata/world/blank_room.yaml')
# By now we should be situated in our room, and with our player. # By now we should be situated in our room, and with our player.
if command == '': self.parent.parentApp.log.debug(room)
# TODO: Should upgrade these to use fuzzy words library! and not direct comparisons!
if command == 'LOOK':
if arguments[0] == 'AROUND':
try:
self.parent.update_log(room['look_around'])
except KeyError:
self.parent.update_log('There is nothing to look at?.. This might be a bug.')
if command == 'WHERE':
# TODO: this should take the human readable room name, not the code-name
self.parent.update_log('You are in {0}.'.format(room)) self.parent.update_log('You are in {0}.'.format(room))
# Log the command that we parsed # Log the command that we parsed