X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fwidgets%2Finfo_area.py;h=82fcfb9bf24218af51077982d670175c99350233;hb=12ac4df162c9cdb8f75823c2ec89f43abd7d4aaa;hp=34bbec746df01e9756ae092e31d1a9811922b96c;hpb=35a06a04c73ef08e058ffa957feda63a705fa96a;p=naja.git diff --git a/naja/widgets/info_area.py b/naja/widgets/info_area.py index 34bbec7..82fcfb9 100644 --- a/naja/widgets/info_area.py +++ b/naja/widgets/info_area.py @@ -7,7 +7,7 @@ import pygame.locals as pgl from naja.constants import ( INFO_SIZE, ACT, KEYS, EXAMINE, PALETTE, ACTION_TEXT_OFFSET, INFO_LEFT_PADDING, - INFO_RIGHT_PADDING, BIT_SIZE) + INFO_RIGHT_PADDING, BIT_SIZE, BITS) from naja.events import finish_event from naja.resources import resources from naja.resources.mutators import EIGHT_BIT, blender @@ -20,12 +20,12 @@ from naja.widgets.text import TextBoxWidget, TextWidget HINTS = { - ACT: ("Choose an action using the Up/Down keys.\n" - "Press Return to execute the action."), - EXAMINE: "Select a tile to examine using the arrow keys.", + ACT: "Choose an action using {NORTH,SOUTH} keys.\n" + "Press {RETURN} to execute it.", + EXAMINE: "Browse the tiles with {NORTH,SOUTH,EAST,WEST} keys.", } -HINT_LEGAL_MOVE = "\nPress Return to move to this tile." +HINT_LEGAL_MOVE = "\nPress {RETURN} to move to this tile." TITLES = { ACT: "Choose an Action", @@ -54,24 +54,21 @@ class InfoAreaWidget(Widget): y_offset = 0 pos = lambda: (INFO_LEFT_PADDING, y_offset) - # Top title - title = TextWidget( - pos(), TITLES[self.state.gameboard.player_mode], - colour=PALETTE.WHITE) - title.render(self.surface) - y_offset += title.surface.get_rect().height - 4 - # Bits + y_offset += 12 bits_text = ''.join('1' if bit in self.card.bitwise_operand else '0' for bit in reversed(range(8))) if self.card.bitwise_operand: bits_text = '%s %s' % ( bits_text, bit_glyphs(self.card.bitwise_operand)) card_bits = TextBoxWidget( - pos(), bits_text, box_width=box_width, - colour=PALETTE.LIGHT_TURQUOISE, bg_colour=PALETTE.BLACK) - card_bits.render(self.surface) - y_offset += card_bits.surface.get_rect().height + 4 + (0, 0), bits_text, padding=4, centre=True, + colour=PALETTE.WHITE, border=2, + bg_colour=PALETTE.BLACK, border_colour=PALETTE.BLUE, + box_width=box_width) + card_bits.prepare() + self.surface.blit(card_bits.surface, pos()) + y_offset += card_bits.surface.get_rect().height + 12 # Actions for choice, action in enumerate(self.card.actions): @@ -85,8 +82,9 @@ class InfoAreaWidget(Widget): hint = TextBoxWidget( (0, 0), hint_text, padding=4, - box_width=box_width, - border=2, border_colour=PALETTE.GREY) + colour=PALETTE.WHITE, border=2, + bg_colour=PALETTE.BLACK, border_colour=PALETTE.BLUE, + box_width=box_width) hint.prepare() y_offset = (INFO_SIZE[1] - hint.surface.get_rect().height - BIT_SIZE[1] - 2) @@ -115,7 +113,7 @@ class InfoAreaWidget(Widget): def prepare_action(self, choice, action, y_offset, box_width): x_offset = INFO_LEFT_PADDING - glyphs_x_offset = 0 + glyphs_x_offset = 2 glyphs_y_offset = y_offset y_offset += ACTION_TEXT_OFFSET action_viable = action.check_available(self.state.player) @@ -138,8 +136,10 @@ class InfoAreaWidget(Widget): [(x_offset, y_offset), (right, y_offset), (right, bottom), (x_offset, bottom)], 4) - if action.required_bits in BIT_MAP: - img_name = BIT_MAP[action.required_bits].replace( + required_keys = action.required_bits & frozenset([ + BITS.RED, BITS.GREEN, BITS.BLUE]) + if required_keys in BIT_MAP: + img_name = BIT_MAP[required_keys].replace( '.png', '_small.png') img = resources.get_image(img_name, transforms=(EIGHT_BIT,)) @@ -148,6 +148,14 @@ class InfoAreaWidget(Widget): else: glyphs_x_offset = INFO_LEFT_PADDING + if BITS.MSB in action.required_bits: + msb = resources.get_image('board/msb_lock_decoration.png', + transforms=(EIGHT_BIT,)) + msb_rect = msb.get_rect() + self.surface.blit( + msb, (glyphs_x_offset - msb_rect.width - 4, glyphs_y_offset) + ) + for glyph in action.get_glyphs(): img = resources.get_image( glyph, transforms=(EIGHT_BIT, blender(PALETTE.GREY)))