More hardness descriptions.
[naja.git] / naja / widgets / info_area.py
index 82fcfb9bf24218af51077982d670175c99350233..b4c6e2b2a66208b522d638928eddc300f9118399 100644 (file)
@@ -12,20 +12,21 @@ from naja.events import finish_event
 from naja.resources import resources
 from naja.resources.mutators import EIGHT_BIT, blender
 from naja.sound import sound
-from naja.utils import bit_glyphs
+from naja.utils import bit_glyphs, Flashlight
 
 from naja.widgets.base import Widget
 from naja.widgets.tile import BIT_MAP
-from naja.widgets.text import TextBoxWidget, TextWidget
+from naja.widgets.text import TextBoxWidget
+from naja import constants
 
 
 HINTS = {
-    ACT: "Choose an action using {NORTH,SOUTH} keys.\n"
-         "Press {RETURN} to execute it.",
+    ACT: "Choose an action using {NORTH,SOUTH}."
+         " Press {RETURN} to execute it.",
     EXAMINE: "Browse the tiles with {NORTH,SOUTH,EAST,WEST} keys.",
 }
 
-HINT_LEGAL_MOVE = "\nPress {RETURN} to move to this tile."
+HINT_LEGAL_MOVE = "\nPress {RETURN} to move."
 
 TITLES = {
     ACT: "Choose an Action",
@@ -43,6 +44,7 @@ class InfoAreaWidget(Widget):
         self.chosen = None
         self.card_position = state.player.position
         self.set_position(state.player.position)
+        self.flash_light = Flashlight(constants.FPS // 2)
 
     def prepare(self):
         if self.state.gameboard.player_mode == ACT:
@@ -106,8 +108,8 @@ class InfoAreaWidget(Widget):
         if gameboard.puzzle:
             return "PUZZLE"
         return {
-            0: "DEATH", 1: "LUDICROUS",
-            2: "RAMBO", 3: "HARD",
+            0: "DEATH", 1: "NINTENDO HARD",
+            2: "VERY HARD", 3: "HARD",
             4: "STANDARD", 5: "EASY",
         }.get(gameboard.max_health, "UNKNOWN")
 
@@ -128,7 +130,13 @@ class InfoAreaWidget(Widget):
 
         border_colour = None
         if choice == self.chosen:
-            border_colour = PALETTE.GREEN if action_viable else PALETTE.ORANGE
+            if self.flash_light.on:
+                border_colour = (PALETTE.GREEN if action_viable else
+                                 PALETTE.ORANGE)
+            else:
+                border_colour = (PALETTE.DARK_GREEN if action_viable else
+                                 PALETTE.DARK_RED)
+
         if border_colour:
             bottom = y_offset + text.surface.get_rect().height
             right = text.surface.get_rect().width + x_offset
@@ -179,6 +187,8 @@ class InfoAreaWidget(Widget):
             self.chosen = None
 
     def draw(self, surface):
+        if self.flash_light.tick():
+            self.prepare()
         surface.blit(self.surface, self.pos)
 
     def next_action(self, viable_only=False, step=1):