X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fwidgets%2Fgame_bits.py;h=a78863c6804de118d4796d0e42976d606c7388a3;hb=e6c9584589c3e3565be85f9b0f0eb5923a394a86;hp=78f1ab91f488ef7ff275e7041ded574bc933f808;hpb=4df5d499b14782109585a95f6c96d56963fb8231;p=naja.git diff --git a/naja/widgets/game_bits.py b/naja/widgets/game_bits.py index 78f1ab9..a78863c 100644 --- a/naja/widgets/game_bits.py +++ b/naja/widgets/game_bits.py @@ -4,9 +4,11 @@ Widget that holds the games's bits. import pygame -from naja.constants import BIT_SIZE, BITS +from naja.constants import BIT_SIZE from naja.resources import resources +from naja.resources.mutators import EIGHT_BIT from naja.widgets.base import Widget +from naja.widgets.text import TextWidget class GameBitsWidget(Widget): @@ -19,22 +21,34 @@ class GameBitsWidget(Widget): def prepare(self): self.surface = pygame.Surface(BIT_SIZE) - bits = ( - (BITS.MSB, 'msb', ()), - (BITS.YELLOW, 'yellow', ()), - (BITS.MAGENTA, 'magenta', ()), - (BITS.CYAN, 'cyan', ()), - (BITS.WEST, 'arrow', ()), - (BITS.EAST, 'arrow', ()), - (BITS.SOUTH, 'arrow', ()), - (BITS.NORTH, 'arrow', ()), - ) - for pos, (bit, image, transforms) in enumerate(bits): - is_set = self.state.player.bits.check_bit(bit) + + size = BIT_SIZE[1] + + zero = TextWidget((0, 0), '0', fontsize=24, colour='white') + one = TextWidget((0, 0), '1', fontsize=24, colour='white') + zero.prepare() + zero.pos = (0, (size - zero.size[1])) + one.pos = zero.pos + + health = self.state.gameboard.health + max_health = self.state.gameboard.max_health + wins = self.state.gameboard.wins + wins_required = self.state.gameboard.wins_required + + bits = [] + bits.extend((i < health, 'health') for i in range(max_health)) + bits.extend((i < wins, 'win') for i in range(wins_required)) + + for pos, (is_set, image) in enumerate(bits): img = resources.get_image( 'bits', '%s_%s.png' % (image, 'on' if is_set else 'off'), - transforms=transforms) + transforms=(EIGHT_BIT,)) self.surface.blit(img, (img.get_width() * pos, 0)) + if is_set: + one.render(self.surface) + else: + zero.render(self.surface) + one.pos = zero.pos = (zero.pos[0] + size, zero.pos[1]) def draw(self, surface): surface.blit(self.surface, self.pos)