+
+ def handle_event(self, ev):
+ if self.state.gameboard.player_mode in (ACT, EXAMINE):
+ return super(RobotWidget, self).handle_event(ev)
+ if ev.type == pgl.KEYDOWN:
+ if ev.key in KEYS.UP:
+ if self.state.player.move(BITS.NORTH):
+ self.state.gameboard.change_mode(ACT)
+ return finish_event()
+ if ev.key in KEYS.DOWN:
+ if self.state.player.move(BITS.SOUTH):
+ self.state.gameboard.change_mode(ACT)
+ return finish_event()
+ if ev.key in KEYS.LEFT:
+ if self.state.player.move(BITS.WEST):
+ self.state.gameboard.change_mode(ACT)
+ return finish_event()
+ if ev.key in KEYS.RIGHT:
+ if self.state.player.move(BITS.EAST):
+ self.state.gameboard.change_mode(ACT)
+ return finish_event()
+ if ev.key in KEYS.NOMOVE:
+ self.state.gameboard.change_mode(ACT)
+ return finish_event()
+ if ev.key in KEYS.SWITCH:
+ self.state.gameboard.change_mode(EXAMINE)
+ return finish_event()
+ return super(RobotWidget, self).handle_event(ev)