Merge branch 'master' of git://ctpug.org.za/naja
authorDavid Sharpe <decoydavid@gmail.com>
Sat, 17 May 2014 21:48:59 +0000 (23:48 +0200)
committerDavid Sharpe <decoydavid@gmail.com>
Sat, 17 May 2014 21:48:59 +0000 (23:48 +0200)
1  2 
naja/widgets/info_area.py

index 97c3daacc261411052e0e379b865c105c12074cc,82fcfb9bf24218af51077982d670175c99350233..1ff6bbbd92168e52ec12c4a489cf6f54638f95a7
@@@ -17,7 -17,6 +17,7 @@@ from naja.utils import bit_glyph
  from naja.widgets.base import Widget
  from naja.widgets.tile import BIT_MAP
  from naja.widgets.text import TextBoxWidget, TextWidget
 +from naja import constants
  
  
  HINTS = {
@@@ -44,8 -43,6 +44,8 @@@ class InfoAreaWidget(Widget)
          self.chosen = None
          self.card_position = state.player.position
          self.set_position(state.player.position)
 +        self.flash_count = 0
 +        self.flash_light = True
  
      def prepare(self):
          if self.state.gameboard.player_mode == ACT:
          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):
  
      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)
  
          border_colour = None
          if choice == self.chosen:
 -            border_colour = PALETTE.GREEN if action_viable else PALETTE.ORANGE
 +            if self.flash_light:
 +                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
              self.chosen = None
  
      def draw(self, surface):
 +        self.flash_count += 1
 +        if self.flash_count >= (constants.FPS // 2):
 +            self.flash_light = not self.flash_light
 +            self.flash_count = 0
 +            self.prepare()
          surface.blit(self.surface, self.pos)
  
      def next_action(self, viable_only=False, step=1):