Make GenericBits even more generic.
[naja.git] / naja / widgets / tile.py
index 5417dcf3ba3e4e8960c829d76dc8e7c4353a09cf..9e8fe8508056dae9bc61a4e93ccd547c772514d9 100644 (file)
@@ -74,8 +74,27 @@ class TileWidget(Widget):
         for action in card.actions:
             y_offset = self._prepare_action(action, y_offset)
 
+        self._prepare_countdown(card)
+
+    def _prepare_countdown(self, card):
+        if card.replacement_time is None:
+            return
+        elif card.replacement_time <= 1:
+            glyph = 'glyphs/countdown_1.png'
+        elif card.replacement_time == 2:
+            glyph = 'glyphs/countdown_2.png'
+        elif card.replacement_time == 3:
+            glyph = 'glyphs/countdown_3.png'
+        elif card.replacement_time < 8:
+            glyph = 'glyphs/countdown_4.png'
+        else:
+            glyph = 'glyphs/countdown_5.png'
+        img = resources.get_image(
+            glyph, transforms=(EIGHT_BIT, blender(PALETTE.DARK_VIOLET)))
+        self.surface.blit(img, (TILE_SIZE[0] - 20, 0))
+
     def _prepare_lock(self, action, y_offset):
-        if not action.required_bits:
+        if action.required_bits not in BIT_MAP:
             return 4
 
         img_name = BIT_MAP[action.required_bits]
@@ -98,13 +117,13 @@ class TileWidget(Widget):
     def _prepare_action(self, action, y_offset):
         x_offset = self._prepare_lock(action, y_offset)
         if self.board_pos != self.state.player.position:
-            for glyph in action.GLYPHS:
+            for glyph in action.get_glyphs():
                 img = resources.get_image(glyph, transforms=(EIGHT_BIT,))
                 self.surface.blit(img, (x_offset, y_offset + 4))
                 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, (x_offset, y_offset + 4))
                 x_offset += img.get_width()