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()
import pygame
+from naja.constants import BITS
+
def convert_colour(colour):
if isinstance(colour, pygame.Color):
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)
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
# 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
'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),
}