Use new glyphs.
authorJeremy Thurgood <firxen@gmail.com>
Fri, 16 May 2014 08:24:04 +0000 (10:24 +0200)
committerJeremy Thurgood <firxen@gmail.com>
Fri, 16 May 2014 08:24:04 +0000 (10:24 +0200)
naja/actions.py
naja/widgets/text.py

index f92961cd4bdfc38e61d8e5eb33b521aa55446d11..ad71622407a2a7f9ebe131258dd9a7b9cca7e207 100644 (file)
@@ -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):
index 0dea54067b08f104707939873f9ae194d3b7d5a9..4ddc0d6b42ce3b9806ea871a369d658eeb45f2c4 100644 (file)
@@ -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)