import pygame.locals as pgl
-def finish_event(handled=True, events=(), skip_invalidate=False):
- for event in events:
- event.post()
+def finish_event(handled=True, skip_invalidate=False):
if not skip_invalidate:
InvalidateTheWorld.post()
return handled
class SelectEvent(NajaEvent):
TYPE = "SELECT"
-
-
-class PlayerMoved(NajaEvent):
- # This is used to signal to widgets that care that the player has moved.
- TYPE = "PLAYER_MOVED"
import pygame.locals as pgl
from naja.constants import INFO_SIZE, EIGHT_BIT_SCALE, MOVE, ACT, KEYS
-from naja.events import PlayerMoved, finish_event
+from naja.events import finish_event
from naja.resources import resources
from naja.resources.mutators import EIGHT_BIT
self.set_position(state.player.position)
def prepare(self):
+ self.set_position(self.state.player.position)
self.surface = pygame.surface.Surface(INFO_SIZE)
self.surface.fill((0, 0, 0))
# Extract actions and such from the card
box_width=(INFO_SIZE[0] - 12) // EIGHT_BIT_SCALE,
fontsize=28)
text.render(self.surface)
+ # self.chosen may be None, in which case we don't draw the border.
if choice == self.chosen:
colour = (255, 255, 0, 128)
bottom = y_offset + text.surface.get_rect().height
def set_position(self, position):
self.card = self.state.board_locations[position]
- self.chosen = 0
+ if self.state.gameboard.player_mode == ACT:
+ if self.chosen is None:
+ self.chosen = 0
+ else:
+ self.chosen = None
def draw(self, surface):
surface.blit(self.surface, self.pos)
def handle_event(self, ev):
- if PlayerMoved.matches(ev):
- self.set_position(self.state.player.position)
- return False
-
if self.state.gameboard.player_mode == MOVE:
return super(InfoAreaWidget, self).handle_event(ev)
if ev.type == pgl.KEYDOWN:
if ev.key in KEYS.SELECT:
- player = self.state.gameboard.player
+ player = self.state.player
action = self.card.actions[self.chosen]
if not action.check_available(player):
print "BEEP!"
action.perform_action(self.state.gameboard, self.card)
self.state.gameboard.replace_card(player.position)
self.state.gameboard.change_mode()
- # We haven't moved, but the card may have changed under us.
- return finish_event(events=[PlayerMoved])
+ return finish_event()
if ev.key in KEYS.UP:
if self.chosen > 0:
self.chosen -= 1
import pygame.locals as pgl
from naja.constants import PLAYER_SIZE, BIT_SIZE, TILE_SIZE, BITS, ACT, KEYS
-from naja.events import PlayerMoved, finish_event
+from naja.events import finish_event
from naja.resources import resources
from naja.resources.mutators import EIGHT_BIT
from naja.widgets.base import Widget
if ev.key in KEYS.UP:
if self.state.player.move(BITS.NORTH):
self.state.gameboard.change_mode()
- return finish_event(events=[PlayerMoved])
+ return finish_event()
if ev.key in KEYS.DOWN:
if self.state.player.move(BITS.SOUTH):
self.state.gameboard.change_mode()
- return finish_event(events=[PlayerMoved])
+ return finish_event()
if ev.key in KEYS.LEFT:
if self.state.player.move(BITS.WEST):
self.state.gameboard.change_mode()
- return finish_event(events=[PlayerMoved])
+ return finish_event()
if ev.key in KEYS.RIGHT:
if self.state.player.move(BITS.EAST):
self.state.gameboard.change_mode()
- return finish_event(events=[PlayerMoved])
+ return finish_event()
if ev.key in (pgl.K_SPACE,):
self.state.gameboard.change_mode()
return finish_event()