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