X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fwidgets%2Finfo_area.py;h=21122cae31797262fbf83eeb5a9add317d09209c;hb=0b43a81c2816278ea23e97a41a5cfc7473b4b054;hp=e348048208faf89b74ce209cc3567a8bd7347e43;hpb=a50a8a391693f50590b7de9ed9c89c9a576af05c;p=naja.git diff --git a/naja/widgets/info_area.py b/naja/widgets/info_area.py index e348048..21122ca 100644 --- a/naja/widgets/info_area.py +++ b/naja/widgets/info_area.py @@ -12,20 +12,21 @@ from naja.events import finish_event from naja.resources import resources from naja.resources.mutators import EIGHT_BIT, blender from naja.sound import sound -from naja.utils import bit_glyphs +from naja.utils import bit_glyphs, Flashlight from naja.widgets.base import Widget from naja.widgets.tile import BIT_MAP -from naja.widgets.text import TextBoxWidget, TextWidget +from naja.widgets.text import TextBoxWidget +from naja import constants HINTS = { - ACT: "Choose an action using {NORTH,SOUTH} keys.\n" - "Press {RETURN} to execute it.", + ACT: "Choose an action using {NORTH,SOUTH}." + " 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." TITLES = { ACT: "Choose an Action", @@ -43,6 +44,7 @@ class InfoAreaWidget(Widget): self.chosen = None self.card_position = state.player.position self.set_position(state.player.position) + self.flash_light = Flashlight(constants.FPS // 2) def prepare(self): if self.state.gameboard.player_mode == ACT: @@ -55,6 +57,7 @@ class InfoAreaWidget(Widget): pos = lambda: (INFO_LEFT_PADDING, y_offset) # 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: @@ -67,7 +70,7 @@ class InfoAreaWidget(Widget): box_width=box_width) card_bits.prepare() self.surface.blit(card_bits.surface, pos()) - y_offset += card_bits.surface.get_rect().height + 4 + y_offset += card_bits.surface.get_rect().height + 12 # Actions for choice, action in enumerate(self.card.actions): @@ -112,7 +115,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) @@ -127,7 +130,13 @@ class InfoAreaWidget(Widget): border_colour = None if choice == self.chosen: - border_colour = PALETTE.GREEN if action_viable else PALETTE.ORANGE + if self.flash_light.on: + border_colour = (PALETTE.GREEN if action_viable else + PALETTE.ORANGE) + else: + border_colour = (PALETTE.DARK_GREEN if action_viable else + PALETTE.DARK_RED) + if border_colour: bottom = y_offset + text.surface.get_rect().height right = text.surface.get_rect().width + x_offset @@ -178,6 +187,8 @@ class InfoAreaWidget(Widget): self.chosen = None def draw(self, surface): + if self.flash_light.tick(): + self.prepare() surface.blit(self.surface, self.pos) def next_action(self, viable_only=False, step=1):