From 3ce25dac7ca325c83574240741294666b53613a4 Mon Sep 17 00:00:00 2001 From: Simon Cross Date: Sun, 18 May 2014 00:01:27 +0200 Subject: [PATCH] Factor out flash light into utils. --- naja/utils.py | 15 +++++++++++++++ naja/widgets/info_area.py | 14 +++++--------- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/naja/utils.py b/naja/utils.py index d5d17cc..7ad4f58 100644 --- a/naja/utils.py +++ b/naja/utils.py @@ -37,3 +37,18 @@ def warp_to_game_state(game_state): from naja.scenes.game import GameScene LoadGameEvent.post(game_state) SceneChangeEvent.post(GameScene) + + +class Flashlight(object): + def __init__(self, rate): + self.rate = rate + self.ticks = 0 + self.on = False + + def tick(self): + self.ticks += 1 + if self.ticks >= self.rate: + self.on = not self.on + self.ticks = 0 + return True + return False diff --git a/naja/widgets/info_area.py b/naja/widgets/info_area.py index 1ff6bbb..fd47038 100644 --- a/naja/widgets/info_area.py +++ b/naja/widgets/info_area.py @@ -12,11 +12,11 @@ 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 @@ -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: @@ -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) -- 2.34.1