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
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
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:
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:
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)