X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fwidgets%2Frobot.py;h=292c6bb74e55f7de3990894c62ff106fc5f8ce9e;hb=2a46865fc69e2e90e28bc13255a762279e7a1b29;hp=60c3f406ed9b8f08460b8c968e5b56d42e8eb907;hpb=23bc655a89f4ac16e2b17a5f359192d1d9268648;p=naja.git diff --git a/naja/widgets/robot.py b/naja/widgets/robot.py index 60c3f40..292c6bb 100644 --- a/naja/widgets/robot.py +++ b/naja/widgets/robot.py @@ -2,8 +2,9 @@ import pygame.locals as pgl -from naja.constants import PLAYER_SIZE, BIT_SIZE, TILE_SIZE, BITS, ACT, KEYS -from naja.events import InvalidateTheWorld, PlayerMoved +from naja.constants import (PLAYER_SIZE, BIT_SIZE, TILE_SIZE, BITS, ACT, KEYS, + EXAMINE, MOVE) +from naja.events import finish_event from naja.resources import resources from naja.resources.mutators import EIGHT_BIT from naja.widgets.base import Widget @@ -39,35 +40,29 @@ class RobotWidget(Widget): surface.blit(self.surface, self.rect) def handle_event(self, ev): - if self.state.gameboard.player_mode == ACT: + 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() - PlayerMoved.post() - InvalidateTheWorld.post() - return True + 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() - PlayerMoved.post() - InvalidateTheWorld.post() - return True + 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() - PlayerMoved.post() - InvalidateTheWorld.post() - return True + 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() - PlayerMoved.post() - InvalidateTheWorld.post() - return True - if ev.key in (pgl.K_SPACE,): - self.state.gameboard.change_mode() - InvalidateTheWorld.post() - return True + 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)