# These will probably need to go away when we have images
import pygame
-from naja.constants import TILE_SIZE, BITS, LOCK_HEIGHT, EXAMINE, ACTION_GLYPHS
+from naja.constants import (
+ TILE_SIZE, BITS, LOCK_HEIGHT, SMALL_LOCK_HEIGHT, EXAMINE, ACTION_GLYPHS,
+ PALETTE)
from naja.resources import resources
-from naja.resources.mutators import EIGHT_BIT
+from naja.resources.mutators import EIGHT_BIT, blender
from naja.widgets.base import Widget
if self.state.gameboard.player_mode == EXAMINE and legal_move:
overlays.append(resources.get_image('board/tile_available.png',
- transforms=(EIGHT_BIT,)))
+ transforms=(EIGHT_BIT,)))
if self.highlighted:
overlays.append(resources.get_image('board/tile_selected.png',
- transforms=(EIGHT_BIT,)))
+ transforms=(EIGHT_BIT,)))
self.surface = pygame.surface.Surface(TILE_SIZE)
self.surface.blit(bg, (0, 0))
return 4
img_name = BIT_MAP[action.required_bits]
+
if self.board_pos != self.state.player.position:
x_offset = 0
else:
img_name = img_name.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
+ x_offset = 2
+ if y_offset == LOCK_HEIGHT:
+ y_offset = 0 # middle -> top
+ elif y_offset == 2 * LOCK_HEIGHT:
+ # bottom -> further down
+ y_offset += LOCK_HEIGHT - SMALL_LOCK_HEIGHT - 2
+
img = resources.get_image(img_name, transforms=(EIGHT_BIT,))
self.surface.blit(img, (x_offset, y_offset))
return x_offset + img.get_width() + 2
GLYPH_MAP[glyph], transforms=(EIGHT_BIT,))
self.surface.blit(img, (x_offset, y_offset + 4))
x_offset += img.get_width()
+ if action.MSB_GLYPH is not None:
+ img = resources.get_image(
+ GLYPH_MAP[action.MSB_GLYPH],
+ transforms=(EIGHT_BIT, blender(PALETTE.LIGHT_VIOLET)))
+ self.surface.blit(img, (x_offset, y_offset + 4))
+ x_offset += img.get_width()
return y_offset + LOCK_HEIGHT
def set_highlight(self, pos):