self.surface.blit(hint.surface, (4, y_offset))
def prepare_action(self, choice, action, y_offset):
+ x_offset = 18
+ action_viable = action.check_available(self.state.player)
+ text_colour = PALETTE.BLACK if action_viable else PALETTE.GREY
+
text = TextBoxWidget(
- (18, y_offset), action.get_text(),
+ (x_offset, y_offset), action.get_text(),
box_width=(INFO_SIZE[0] - 16) // EIGHT_BIT_SCALE,
- fontsize=28)
+ fontsize=28, colour=text_colour)
text.render(self.surface)
+
border_colour = None
- if not action.check_available(self.state.player):
- border_colour = PALETTE.ORANGE + (255,)
- elif choice == self.chosen:
- border_colour = PALETTE.PINK + (128,)
- else:
- border_colour = PALETTE.GREEN + (128,)
+ if choice == self.chosen:
+ border_colour = PALETTE.GREEN if action_viable else PALETTE.ORANGE
if border_colour:
bottom = y_offset + text.surface.get_rect().height
- right = text.surface.get_rect().width + 18
+ right = text.surface.get_rect().width + x_offset
pygame.draw.lines(self.surface, border_colour, True,
- [(18, y_offset), (right, y_offset),
- (right, bottom), (18, bottom)], 4)
+ [(x_offset, y_offset), (right, y_offset),
+ (right, bottom), (x_offset, bottom)], 4)
if action.required_bits:
img_name = BIT_MAP[action.required_bits].replace(
'.png', '_small.png')