Some MSB is required when required.
[naja.git] / naja / widgets / info_area.py
index 7dbef1b70c226402303d15e3d4fdb553a029c066..f0f8eefee7c86b1ac291c9f418d915cba17d2118 100644 (file)
@@ -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
@@ -22,14 +22,14 @@ 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 card to examine using the arrow keys.",
+    EXAMINE: "Select a tile to examine using the arrow keys.",
 }
 
-HINT_LEGAL_MOVE = "\nPress Return to move to this card."
+HINT_LEGAL_MOVE = "\nPress Return to move to this tile."
 
 TITLES = {
     ACT: "Choose an Action",
-    EXAMINE: "Select a Card",
+    EXAMINE: "Select a Tile",
 }
 
 
@@ -138,8 +138,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,14 +150,22 @@ class InfoAreaWidget(Widget):
         else:
             glyphs_x_offset = INFO_LEFT_PADDING
 
-        for glyph in action.GLYPHS:
+        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)))
             self.surface.blit(img, (glyphs_x_offset, glyphs_y_offset - 4))
             glyphs_x_offset += img.get_width()
-        if action.MSB_GLYPH is not None:
+        if action.get_msb_glyph() is not None:
             img = resources.get_image(
-                action.MSB_GLYPH,
+                action.get_msb_glyph(),
                 transforms=(EIGHT_BIT, blender(PALETTE.LIGHT_VIOLET)))
             self.surface.blit(img, (glyphs_x_offset, glyphs_y_offset - 4))