Display glyphs for card bits.
authorJeremy Thurgood <firxen@gmail.com>
Fri, 16 May 2014 09:53:20 +0000 (11:53 +0200)
committerJeremy Thurgood <firxen@gmail.com>
Fri, 16 May 2014 09:53:20 +0000 (11:53 +0200)
naja/actions.py
naja/utils.py
naja/widgets/info_area.py
naja/widgets/text.py

index 88f539f256dc98e2184c92ebbca62e8cc4f714bf..0c6a8119e6f28a481ad1ea776710df452d6f24e0 100644 (file)
@@ -90,7 +90,7 @@ class LoseHealthOrMSBAndSetBits(LocationAction):
 
 
 class AcquireWinToken(LocationAction):
-    TEXT = "Gain WINTOKEN, then clear {REDKEY,GREENKEY,BLUEKEY}."
+    TEXT = "Gain WINTOKEN, then clear {RED,GREEN,BLUE}."
 
     def perform_action(self, board, location):
         board.acquire_win_token()
index a40b8412f0adaba2389533f25445b998a79761b3..c7fe2e32f264c410b35b84eea533122c9f86c805 100644 (file)
@@ -1,5 +1,7 @@
 import pygame
 
+from naja.constants import BITS
+
 
 def convert_colour(colour):
     if isinstance(colour, pygame.Color):
@@ -9,3 +11,9 @@ def convert_colour(colour):
     if isinstance(colour, basestring):
         return pygame.Color(colour)
     raise ValueError()
+
+
+def bit_glyphs(bits):
+    bit_names = dict((v, k) for k, v in BITS.items())
+    return '{%s}' % ','.join(bit_names[bit] for bit in reversed(range(8))
+                             if bit in bits)
index c8c021a165e5512f6c407af41ce62d4be56fe39f..0022b7351868c37efe0d0701c193ecc3a4c75502 100644 (file)
@@ -10,6 +10,7 @@ from naja.events import finish_event
 from naja.resources import resources
 from naja.resources.mutators import EIGHT_BIT
 from naja.sound import sound
+from naja.utils import bit_glyphs
 
 from naja.widgets.base import Widget
 from naja.widgets.tile import BIT_MAP
@@ -55,8 +56,13 @@ class InfoAreaWidget(Widget):
         # TODO: Make this better.
         bits_text = ''.join('1' if bit in self.card.bitwise_operand else '0'
                             for bit in reversed(range(8)))
-        card_bits = TextWidget((0, y_offset), bits_text,
-                               colour=PALETTE.LIGHT_TURQUOISE)
+        if self.card.bitwise_operand:
+            bits_text = '%s %s' % (
+                bits_text, bit_glyphs(self.card.bitwise_operand))
+        card_bits = TextBoxWidget((0, y_offset), bits_text,
+                                  box_width=INFO_SIZE[0],
+                                  colour=PALETTE.LIGHT_TURQUOISE,
+                                  bg_colour=PALETTE.BLACK)
         card_bits.render(self.surface)
         y_offset += card_bits.surface.get_rect().height + 8
 
index 899dacec7c095cea5a79540d2f71b75cd2f41232..3b0827d3f997fc4ff37be515439da7b0fd867520 100644 (file)
@@ -16,9 +16,9 @@ MARKUP_MAP = {
     'WINTOKEN': ('glyphs/win.png', PALETTE.DARK_OLIVE),
     'KEY': ('glyphs/key.png', None),
     'MSB': ('glyphs/msb.png', None),
-    'REDKEY': ('glyphs/key.png', PALETTE.ORANGE),
-    'GREENKEY': ('glyphs/key.png', PALETTE.GREEN),
-    'BLUEKEY': ('glyphs/key.png', PALETTE.BLUE),
+    'RED': ('glyphs/key.png', PALETTE.ORANGE),
+    'GREEN': ('glyphs/key.png', PALETTE.GREEN),
+    'BLUE': ('glyphs/key.png', PALETTE.BLUE),
 }