From 5071d316e1a524987b002c054480d68a4ddd5da4 Mon Sep 17 00:00:00 2001 From: Jeremy Thurgood Date: Fri, 16 May 2014 10:24:04 +0200 Subject: [PATCH] Use new glyphs. --- naja/actions.py | 11 ++++++----- naja/widgets/text.py | 14 ++++++++++---- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/naja/actions.py b/naja/actions.py index f92961c..ad71622 100644 --- a/naja/actions.py +++ b/naja/actions.py @@ -33,7 +33,8 @@ class LocationAction(object): return player.bits.check_bits(self.required_bits) def perform_action(self, board, location): - raise NotImplementedError("TODO") + raise NotImplementedError( + "%s does not implement perform_action()." % (type(self).__name__,)) def check_and_clear_MSB(self, player): if player.bits.check_bit(BITS.MSB): @@ -56,7 +57,7 @@ class DoNothing(LocationAction): class LoseHealthOrMSB(LocationAction): - TEXT = "Lose health or MSB." + TEXT = "Lose HEALTH or MSB." USES_MSB = True def perform_action(self, board, location): @@ -79,7 +80,7 @@ class ToggleBits(LocationAction): class LoseHealthOrMSBAndSetBits(LocationAction): - TEXT = "Lose health or MSB, then set bits specified by this location." + TEXT = "Lose HEALTH or MSB, then set bits specified by this location." USES_MSB = True def perform_action(self, board, location): @@ -99,7 +100,7 @@ class AcquireWinToken(LocationAction): class GainHealthAndClearBitsOrMSB(LocationAction): - TEXT = "Gain health, then clear bits specified by this location or MSB." + TEXT = "Gain HEALTH, then clear bits specified by this location or MSB." USES_MSB = True def perform_action(self, board, location): @@ -115,7 +116,7 @@ class ShiftLocations(LocationAction): board.shift_locations(self.data['direction']) -class AllowChessMove(LocationAction) : +class AllowChessMove(LocationAction): TEXT = "Move like a %(chesspiece_name)s for one turn." def perform_action(self, board, location): diff --git a/naja/widgets/text.py b/naja/widgets/text.py index 0dea540..4ddc0d6 100644 --- a/naja/widgets/text.py +++ b/naja/widgets/text.py @@ -12,6 +12,10 @@ MARKUP_MAP = { 'SOUTH': (1, 'glyphs/arrow_down.png'), 'EAST': (1, 'glyphs/arrow_right.png'), 'WEST': (1, 'glyphs/arrow_left.png'), + 'HEALTH': (1, 'glyphs/health.png'), + 'WIN': (1, 'glyphs/win.png'), + 'KEY': (1, 'glyphs/key.png'), + 'MSB': (1, 'glyphs/msb.png'), } @@ -73,7 +77,9 @@ class TextBoxWidget(TextWidget): line_count = 0 for line in self.text.splitlines(): current_words = [] - for word in line.split(): + remaining_words = line.split() + while remaining_words: + word = remaining_words[0] suffix = '' if word[-1] in '.,': suffix = word[-1] @@ -86,18 +92,18 @@ class TextBoxWidget(TextWidget): if words_fit(current_words): if markup_data is not None: size = self.font.size( - ' '.join(current_words[:-1]) + ' ') + ' '.join(current_words[:-1] + [''])) pos = (size[0] * EIGHT_BIT_SCALE, size[1] * line_count * EIGHT_BIT_SCALE) pos = (pos[0] + self.padding, pos[1] + self.padding) image_map[pos] = resources.get_image( markup_data[1], transforms=(EIGHT_BIT, blender(self.colour))) - continue + remaining_words.pop(0) else: line_count += 1 yield ' '.join(current_words[:-1]) - current_words = current_words[-1:] + current_words = [] if current_words and words_fit(current_words): yield ' '.join(current_words) -- 2.34.1