Update info display when card changes.
authorJeremy Thurgood <firxen@gmail.com>
Tue, 13 May 2014 21:07:04 +0000 (23:07 +0200)
committerJeremy Thurgood <firxen@gmail.com>
Tue, 13 May 2014 21:07:04 +0000 (23:07 +0200)
naja/widgets/info_area.py

index 0bb02f41aca8551d453680fdf68e363066ee8ad6..e0923309fcafa35f8de7524ca38c66dffde2e7c4 100644 (file)
@@ -45,14 +45,16 @@ class InfoAreaWidget(Widget):
         y_offset = title.surface.get_rect().height + 8
         for choice, action in enumerate(self.card.actions):
             if action.required_bits:
-                img_name = BIT_MAP[action.required_bits].replace('.png', '_small.png')
+                img_name = BIT_MAP[action.required_bits].replace(
+                    '.png', '_small.png')
                 img = resources.get_image(img_name,
                                           transforms=(EIGHT_BIT,))
                 self.surface.blit(img, (0, y_offset))
                 y_offset += 8
-            text = TextBoxWidget((12, y_offset), action.TEXT,
-                                 box_width=(INFO_SIZE[0] - 12) // EIGHT_BIT_SCALE,
-                                 fontsize=28)
+            text = TextBoxWidget(
+                (12, y_offset), action.TEXT,
+                box_width=(INFO_SIZE[0] - 12) // EIGHT_BIT_SCALE,
+                fontsize=28)
             text.render(self.surface)
             if choice == self.chosen:
                 colour = (255, 255, 0, 128)
@@ -64,7 +66,7 @@ class InfoAreaWidget(Widget):
             y_offset += text.surface.get_rect().height + 16
         # We cheat horribly for layout reasons
         hint = TextBoxWidget((0, 0), HINTS[self.state.gameboard.player_mode],
-                             box_width = INFO_SIZE[0] // EIGHT_BIT_SCALE)
+                             box_width=INFO_SIZE[0] // EIGHT_BIT_SCALE)
         hint.prepare()
         y_offset = INFO_SIZE[1] - hint.surface.get_rect().height
         self.surface.blit(hint.surface, (0, y_offset))
@@ -93,7 +95,8 @@ class InfoAreaWidget(Widget):
                     action.perform_action(self.state.gameboard, self.card)
                     self.state.gameboard.replace_card(player.position)
                     self.state.gameboard.change_mode()
-                return finish_event()
+                # We haven't moved, but the card may have changed under us.
+                return finish_event(events=[PlayerMoved])
             if ev.key in KEYS.UP:
                 if self.chosen > 0:
                     self.chosen -= 1