X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fwidgets%2Finfo_area.py;h=4a545c04de7067adef6bafffb64e6f7b9268db95;hb=5ef39b0aa552a7a5ad7f16a1efe6b4c3551a5842;hp=1ff6bbbd92168e52ec12c4a489cf6f54638f95a7;hpb=d26dffb73ba125fc76931375365b10060cf5d892;p=naja.git diff --git a/naja/widgets/info_area.py b/naja/widgets/info_area.py index 1ff6bbb..4a545c0 100644 --- a/naja/widgets/info_area.py +++ b/naja/widgets/info_area.py @@ -8,25 +8,25 @@ from naja.constants import ( INFO_SIZE, ACT, KEYS, EXAMINE, PALETTE, ACTION_TEXT_OFFSET, INFO_LEFT_PADDING, INFO_RIGHT_PADDING, BIT_SIZE, BITS) -from naja.events import finish_event +from naja.events import InvalidateTheWorld, 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", @@ -44,8 +44,7 @@ class InfoAreaWidget(Widget): self.chosen = None self.card_position = state.player.position self.set_position(state.player.position) - self.flash_count = 0 - self.flash_light = True + self.flash_light = Flashlight(constants.FPS // 2) def prepare(self): if self.state.gameboard.player_mode == ACT: @@ -109,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") @@ -131,7 +130,7 @@ class InfoAreaWidget(Widget): border_colour = None if choice == self.chosen: - if self.flash_light: + if self.flash_light.on: border_colour = (PALETTE.GREEN if action_viable else PALETTE.ORANGE) else: @@ -188,10 +187,7 @@ class InfoAreaWidget(Widget): self.chosen = None def draw(self, surface): - self.flash_count += 1 - if self.flash_count >= (constants.FPS // 2): - self.flash_light = not self.flash_light - self.flash_count = 0 + if self.flash_light.tick(): self.prepare() surface.blit(self.surface, self.pos) @@ -225,6 +221,8 @@ class InfoAreaWidget(Widget): self.set_position(player.position) def handle_event(self, ev): + if InvalidateTheWorld.matches(ev): + self.flash_light.reset() if self.state.gameboard.player_mode == EXAMINE: return super(InfoAreaWidget, self).handle_event(ev) if ev.type == pgl.KEYDOWN: