X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fwidgets%2Ftile.py;h=a152f765a102de9511e030b84ec4285337ad04d3;hb=3f055c8710c26d79bb8c6d18956c454188a5057b;hp=db20cda7a597c9eec410967381e586cf85ef315a;hpb=01008fbdb6fd368d2c6df854725d608d6a3fb0cc;p=naja.git diff --git a/naja/widgets/tile.py b/naja/widgets/tile.py index db20cda..a152f76 100644 --- a/naja/widgets/tile.py +++ b/naja/widgets/tile.py @@ -1,25 +1,50 @@ -from naja.constants import TILE_SIZE -from naja.widgets.base import Widget -from naja.resources import resources - # These will probably need to go away when we have images import pygame import pygame.locals as pgl +from naja.constants import TILE_SIZE, BITS +from naja.resources import resources +from naja.widgets.base import Widget + + +BIT_MAP = { + BITS['CYAN']: 'board/tile_cyan.png', + BITS['MAGENTA']: 'board/tile_magenta.png', + BITS['YELLOW']: 'board/tile_yellow.png', + } + class TileWidget(Widget): """Widget which holds a tile on the game board.""" - def __init__(self, pos, image=None): + def __init__(self, pos, state=None, board_pos=None): super(TileWidget, self).__init__(pos, TILE_SIZE) - self.image = image + self.state = state + self.board_pos = board_pos def prepare(self): # Placeholder logic - just draw the outline of a square - self.surface = pygame.surface.Surface(self.size) + self.surface = pygame.surface.Surface(TILE_SIZE) pygame.draw.lines(self.surface, pgl.color.THECOLORS['yellow'], True, [(1, 1), (1, 95), (95, 95), (95, 1)], 2) self.surface.convert_alpha(pygame.display.get_surface()) + # Look up the required bits on the board location + card = self.state.gameboard.board_locations[self.board_pos] + bits = [] + for action in card.actions: + if action.required_bits: + bits.append(action.required_bits) + # Sort so we have longer lists of bits later self.size = self.surface.get_rect().size + if bits: + bits.sort(key=lambda x: len(x)) + y_offset = TILE_SIZE[1] - 32 * len(bits) + for pattern in bits: + x_offset = 10 + for bit in pattern: + img = resources.get_image(BIT_MAP[bit]) + self.surface.blit(img, (x_offset, y_offset)) + x_offset += 32 + y_offset += 32 def draw(self, surface): surface.blit(self.surface, self.rect)