-
- 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)