X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fwidgets%2Finfo_area.py;h=d7ad07de421d41a5879ee26322ed2d10dd0fd87e;hb=00bdc8cec84b91a3a76bf946bc4764e8cb96fded;hp=c46c93da04a4b378e6a0739440034af3aa981915;hpb=d9f031952493664849860837041f99b4252f7509;p=naja.git diff --git a/naja/widgets/info_area.py b/naja/widgets/info_area.py index c46c93d..d7ad07d 100644 --- a/naja/widgets/info_area.py +++ b/naja/widgets/info_area.py @@ -4,7 +4,8 @@ Widget for the game board information area. import pygame import pygame.locals as pgl -from naja.constants import INFO_SIZE, EIGHT_BIT_SCALE, MOVE, ACT, KEYS +from naja.constants import (INFO_SIZE, EIGHT_BIT_SCALE, MOVE, ACT, KEYS, + EXAMINE) from naja.events import finish_event from naja.resources import resources from naja.resources.mutators import EIGHT_BIT @@ -15,14 +16,18 @@ from naja.widgets.text import TextBoxWidget, TextWidget HINTS = { - MOVE: "Move using the arrow keys.\nPress SPACE to stay in place", + MOVE: "Move using the arrow keys.\nPress SPACE to stay in place\n" + "Press TAB to change to Examine mode", ACT: "Choose an action using the Up/Down keys.\n" "Press Return to execute the action.", + EXAMINE: "Select a card to examine using the arrow keys.\n" + "Press TAB to change to Move mode", } TITLES = { MOVE: "Move the Robot", ACT: "Choose an Action", + EXAMINE: "Select a Card", } @@ -36,7 +41,8 @@ class InfoAreaWidget(Widget): self.set_position(state.player.position) def prepare(self): - self.set_position(self.state.player.position) + if self.state.gameboard.player_mode in (ACT, MOVE): + 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 @@ -70,14 +76,17 @@ class InfoAreaWidget(Widget): self.surface.blit(img, (0, y_offset)) y_offset += 8 text = TextBoxWidget( - (12, y_offset), action.TEXT, + (12, y_offset), action.get_text(), 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) + if not action.check_available(self.state.player): + colour = (255, 0, 0, 255) + else: + colour = (255, 255, 0, 128) bottom = y_offset + text.surface.get_rect().height right = text.surface.get_rect().width + 12 pygame.draw.lines(self.surface, colour, True, @@ -97,7 +106,7 @@ class InfoAreaWidget(Widget): surface.blit(self.surface, self.pos) def handle_event(self, ev): - if self.state.gameboard.player_mode == MOVE: + if self.state.gameboard.player_mode in (MOVE, EXAMINE): return super(InfoAreaWidget, self).handle_event(ev) if ev.type == pgl.KEYDOWN: if ev.key in KEYS.SELECT: @@ -108,7 +117,7 @@ class InfoAreaWidget(Widget): else: action.perform_action(self.state.gameboard, self.card) self.state.gameboard.replace_card(player.position) - self.state.gameboard.change_mode() + self.state.gameboard.change_mode(MOVE) return finish_event() if ev.key in KEYS.UP: if self.chosen > 0: