projects
/
naja.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Text markup images.
[naja.git]
/
naja
/
widgets
/
info_area.py
diff --git
a/naja/widgets/info_area.py
b/naja/widgets/info_area.py
index 5f19a1ed77435c84c58a897992b72b768db87dc1..c92a0b021e4fea18c3389351fbb46a6ffb4362cb 100644
(file)
--- a/
naja/widgets/info_area.py
+++ b/
naja/widgets/info_area.py
@@
-74,24
+74,25
@@
class InfoAreaWidget(Widget):
self.surface.blit(hint.surface, (4, y_offset))
def prepare_action(self, choice, action, y_offset):
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(
text = TextBoxWidget(
- (
18
, y_offset), action.get_text(),
+ (
x_offset
, y_offset), action.get_text(),
box_width=(INFO_SIZE[0] - 16) // EIGHT_BIT_SCALE,
box_width=(INFO_SIZE[0] - 16) // EIGHT_BIT_SCALE,
- fontsize=28)
+ fontsize=28
, colour=text_colour
)
text.render(self.surface)
text.render(self.surface)
+
border_colour = None
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
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,
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')
if action.required_bits:
img_name = BIT_MAP[action.required_bits].replace(
'.png', '_small.png')
@@
-112,7
+113,7
@@
class InfoAreaWidget(Widget):
def draw(self, surface):
surface.blit(self.surface, self.pos)
def draw(self, surface):
surface.blit(self.surface, self.pos)
- def next_
viable_action(self
, step=1):
+ def next_
action(self, viable_only=False
, step=1):
num_actions = len(self.card.actions)
if num_actions == 0:
return
num_actions = len(self.card.actions)
if num_actions == 0:
return
@@
-122,12
+123,12
@@
class InfoAreaWidget(Widget):
# loop through each action at most once.
chosen = (chosen + step) % num_actions
action = self.card.actions[chosen]
# loop through each action at most once.
chosen = (chosen + step) % num_actions
action = self.card.actions[chosen]
- if action.check_available(player):
- sound.play_sound('
change_action
.ogg', volume=0.05)
+ if
not viable_only or
action.check_available(player):
+ sound.play_sound('
zoop
.ogg', volume=0.05)
self.chosen = chosen
self.chosen = chosen
- def prev_
viable_action(self
):
- return self.next_
viable_action(
step=-1)
+ def prev_
action(self, viable_only=False
):
+ return self.next_
action(viable_only=viable_only,
step=-1)
def try_perform_action(self):
player = self.state.player
def try_perform_action(self):
player = self.state.player
@@
-135,6
+136,7
@@
class InfoAreaWidget(Widget):
if not action.check_available(player):
sound.play_sound('error.ogg')
else:
if not action.check_available(player):
sound.play_sound('error.ogg')
else:
+ sound.play_sound('chirp.ogg', volume=0.5)
action.perform_action(self.state.gameboard, self.card)
self.state.gameboard.replace_card(player.position)
self.state.gameboard.change_mode(EXAMINE)
action.perform_action(self.state.gameboard, self.card)
self.state.gameboard.replace_card(player.position)
self.state.gameboard.change_mode(EXAMINE)
@@
-148,12
+150,12
@@
class InfoAreaWidget(Widget):
self.try_perform_action()
return finish_event()
if ev.key in KEYS.UP:
self.try_perform_action()
return finish_event()
if ev.key in KEYS.UP:
- self.next_
viable_
action()
+ self.next_action()
return finish_event()
if ev.key in KEYS.DOWN:
return finish_event()
if ev.key in KEYS.DOWN:
- self.prev_
viable_
action()
+ self.prev_action()
return finish_event()
if ev.key in KEYS.SWITCH:
return finish_event()
if ev.key in KEYS.SWITCH:
- self.next_
viable_action(
)
+ self.next_
action(viable_only=True
)
return finish_event()
return super(InfoAreaWidget, self).handle_event(ev)
return finish_event()
return super(InfoAreaWidget, self).handle_event(ev)