import npyscreen class Handler(npyscreen.ButtonPress): """ Very important, called when the player hits send, there are several things we need to do here: 1: handle the player's input, and run logic, this is done in handler.py 2: prepare new items to display on the screen 3: re-render the screen """ def whenPressed(self): self.parent.parentApp.log.debug('Send button pressed!') # This is the raw command from the user raw_command = self.parent.dialogueBox.value self.parent.dialogueBox.value = '' # Clear the dialogue box, TODO: This may become unneeded if issue #8 is fixed # This is the raw command from the user parsed_command = raw_command.split() try: command = parsed_command.pop(0) except IndexError: self.parent.parentApp.log.warn('Command "{0}" could not be split, was it malformed or incomplete?'.format(raw_command)) command = '' arguments = parsed_command # Whatever is left in the list, are arguments. self.parent.parentApp.log.info('Parsed command "{0}" with arguments "{1}"'.format(command, arguments)) self.parent.update_log('command: ' + command) self.parent.update_log('args: {0}'.format(arguments)) self.parent.artContent.display() self.parent.parentApp.switchForm('GAME')