From: Jeremy Thurgood Date: Fri, 16 May 2014 12:14:22 +0000 (+0200) Subject: Conditional effects in light violet. X-Git-Tag: 0.1~228 X-Git-Url: https://git.ctpug.org.za/?a=commitdiff_plain;h=d30b9840aeab630f75944674b0c4021a61ffa6dd;p=naja.git Conditional effects in light violet. --- diff --git a/naja/actions.py b/naja/actions.py index 17cb432..d6c4532 100644 --- a/naja/actions.py +++ b/naja/actions.py @@ -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() diff --git a/naja/widgets/tile.py b/naja/widgets/tile.py index 291dc3a..be02a35 100644 --- a/naja/widgets/tile.py +++ b/naja/widgets/tile.py @@ -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):