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
# loop through each action at most once.
chosen = (chosen + step) % num_actions
action = self.card.actions[chosen]
- if action.check_available(player):
+ if not viable_only or action.check_available(player):
sound.play_sound('change_action.ogg', volume=0.05)
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
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:
- self.prev_viable_action()
+ self.prev_action()
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)