From 3a29cd975cba07c2b0683e2d5449de37de9842f3 Mon Sep 17 00:00:00 2001 From: Jeremy Thurgood Date: Fri, 16 May 2014 11:53:20 +0200 Subject: [PATCH] Display glyphs for card bits. --- naja/actions.py | 2 +- naja/utils.py | 8 ++++++++ naja/widgets/info_area.py | 10 ++++++++-- naja/widgets/text.py | 6 +++--- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/naja/actions.py b/naja/actions.py index 88f539f..0c6a811 100644 --- a/naja/actions.py +++ b/naja/actions.py @@ -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() diff --git a/naja/utils.py b/naja/utils.py index a40b841..c7fe2e3 100644 --- a/naja/utils.py +++ b/naja/utils.py @@ -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) diff --git a/naja/widgets/info_area.py b/naja/widgets/info_area.py index c8c021a..0022b73 100644 --- a/naja/widgets/info_area.py +++ b/naja/widgets/info_area.py @@ -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 diff --git a/naja/widgets/text.py b/naja/widgets/text.py index 899dace..3b0827d 100644 --- a/naja/widgets/text.py +++ b/naja/widgets/text.py @@ -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), } -- 2.34.1