Conditional effects in light violet.
authorJeremy Thurgood <firxen@gmail.com>
Fri, 16 May 2014 12:14:22 +0000 (14:14 +0200)
committerJeremy Thurgood <firxen@gmail.com>
Fri, 16 May 2014 12:14:22 +0000 (14:14 +0200)
naja/actions.py
naja/widgets/tile.py

index 17cb43215bbcc8289d0cdcae11d910f185674faa..d6c4532c68c6b5367faaf6a20a27c4d8c5bbaae4 100644 (file)
@@ -8,7 +8,8 @@ class LocationAction(object):
     """
 
     TEXT = None
-    GLYPHS = None
+    GLYPHS = ()
+    MSB_GLYPH = None
 
     def __init__(self, required_bits, **data):
         self.required_bits = required_bits
@@ -68,7 +69,7 @@ class DoNothing(LocationAction):
 
 class LoseHealthOrMSB(LocationAction):
     TEXT = "Lose {HEALTH} or {MSB}."
-    GLYPHS = (ACTION_GLYPHS.MSB, ACTION_GLYPHS.DAMAGE)
+    MSB_GLYPH = ACTION_GLYPHS.DAMAGE
 
     def perform_action(self, board, location):
         if not self.check_and_clear_MSB(board.player):
@@ -93,7 +94,8 @@ class ToggleBits(LocationAction):
 
 class LoseHealthOrMSBAndSetBits(LocationAction):
     TEXT = "Lose {HEALTH} or {MSB}, then set %(location_bits)s."
-    GLYPHS = (ACTION_GLYPHS.SET_BITS, ACTION_GLYPHS.MSB, ACTION_GLYPHS.DAMAGE)
+    GLYPHS = (ACTION_GLYPHS.SET_BITS,)
+    MSB_GLYPH = ACTION_GLYPHS.DAMAGE
 
     def perform_action(self, board, location):
         if not self.check_and_clear_MSB(board.player):
@@ -114,7 +116,8 @@ class AcquireWinToken(LocationAction):
 
 class GainHealthAndClearBitsOrMSB(LocationAction):
     TEXT = "Gain {HEALTH}, then clear %(location_bits)s or {MSB}."
-    GLYPHS = (ACTION_GLYPHS.HEAL, ACTION_GLYPHS.MSB, ACTION_GLYPHS.CLEAR_BITS)
+    GLYPHS = (ACTION_GLYPHS.HEAL,)
+    MSB_GLYPH = ACTION_GLYPHS.CLEAR_BITS
 
     def perform_action(self, board, location):
         board.gain_health()
index 291dc3a9d45da33879a2f00b559f57d8746335b1..be02a3555eeda9cae7ed6193740835a783354cc6 100644 (file)
@@ -1,9 +1,10 @@
 # These will probably need to go away when we have images
 import pygame
 
-from naja.constants import TILE_SIZE, BITS, LOCK_HEIGHT, EXAMINE, ACTION_GLYPHS
+from naja.constants import (
+    TILE_SIZE, BITS, LOCK_HEIGHT, EXAMINE, ACTION_GLYPHS, PALETTE)
 from naja.resources import resources
-from naja.resources.mutators import EIGHT_BIT
+from naja.resources.mutators import EIGHT_BIT, blender
 from naja.widgets.base import Widget
 
 
@@ -99,6 +100,12 @@ class TileWidget(Widget):
                     GLYPH_MAP[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:
+                img = resources.get_image(
+                    GLYPH_MAP[action.MSB_GLYPH],
+                    transforms=(EIGHT_BIT, blender(PALETTE.LIGHT_VIOLET)))
+                self.surface.blit(img, (x_offset, y_offset + 4))
+                x_offset += img.get_width()
         return y_offset + LOCK_HEIGHT
 
     def set_highlight(self, pos):