def prepare(self):
# Draw background
x, y = abs(self.board_pos[0] - 2), abs(self.board_pos[1] - 2)
- if (x == 1 and y in [0, 1]) or (y == 1 and x in [0, 1]):
- # Inner ring
+ if (x + y) % 2 == 0:
bg = resources.get_image('board/tile_2.png',
transforms=(EIGHT_BIT,))
else:
self.surface.blit(bg, (0, 0))
# Look up the required bits on the board location
card = self.state.board_locations[self.board_pos]
+ player_pos = self.state.player.position
bits = []
for action in card.actions:
if action.required_bits:
bits.sort(key=lambda x: len(x))
y_offset = TILE_SIZE[1] - LOCK_HEIGHT * len(bits)
for pattern in bits:
- img = resources.get_image(BIT_MAP[pattern],
+ if self.board_pos != player_pos:
+ img_name = BIT_MAP[pattern]
+ x_offset = 0
+ else:
+ img_name = BIT_MAP[pattern].replace('.png', '_small.png')
+ x_offset = 4
+ if y_offset >= TILE_SIZE[1] // 2:
+ # FIXME: Hack'ish
+ # Bump the lock down by some hand-tuned factor
+ # to not overlap with the robot
+ y_offset += LOCK_HEIGHT // 2 - 4
+ img = resources.get_image(img_name,
transforms=(EIGHT_BIT,))
- self.surface.blit(img, (5, y_offset))
+ self.surface.blit(img, (x_offset, y_offset))
y_offset += LOCK_HEIGHT
def draw(self, surface):