X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Futils.py;h=925442a7a12eef328f723b40f026070a37214f7d;hb=HEAD;hp=a40b8412f0adaba2389533f25445b998a79761b3;hpb=0f233e6d450d863f06f5acddee3bd94f53594d08;p=naja.git diff --git a/naja/utils.py b/naja/utils.py index a40b841..925442a 100644 --- a/naja/utils.py +++ b/naja/utils.py @@ -1,5 +1,7 @@ import pygame +from naja.constants import BITS + def convert_colour(colour): if isinstance(colour, pygame.Color): @@ -9,3 +11,47 @@ def convert_colour(colour): if isinstance(colour, basestring): return pygame.Color(colour) raise ValueError() + + +def bit_glyphs(bits): + bit_names = dict((v, k) for k, v in BITS.items()) + return '{%s}' % ','.join(bit_names[bit] for bit in reversed(range(8)) + if bit in bits) + + +def move_glyph(move_name): + return { + 'CASTLE': u'\u265c', + 'BISHOP': u'\u265d', + 'KNIGHT': u'\u265e', + }.get(move_name, move_name.lower()) + + +def parse_bits(bit_list): + # Convert names to numbers if applicable. + return frozenset(BITS.get(bit, bit) for bit in bit_list) + + +def warp_to_game_state(game_state): + from naja.events import LoadGameEvent, SceneChangeEvent + from naja.scenes.game import GameScene + LoadGameEvent.post(game_state) + SceneChangeEvent.post(GameScene) + + +class Flashlight(object): + def __init__(self, rate): + self.rate = rate + self.reset() + + def tick(self): + self.ticks += 1 + if self.ticks >= self.rate: + self.on = not self.on + self.ticks = 0 + return True + return False + + def reset(self): + self.ticks = 0 + self.on = True