def _get_item_action_menu_option(item, player, state_stack): menu_item_action = menu.OpenItemActionMenuAction(state_stack, item, player) menu_item_can_activate_function = (lambda: (len(item.get_children_with_tag("user_action")) >= 1)) item_icon = item.graphic_char menu_option = menu.MenuOptionWithSymbols(_get_item_option_text(item), item_icon, item_icon, [menu_item_action], menu_item_can_activate_function, payload=item) return menu_option
def _get_item_callback_option(item, callback, can_callback_activate, player, stack_pop_function): item_graphic = item.graphic_char item_action_list = [(lambda item=item: callback(item, source_entity=player, target_entity=player)), stack_pop_function] can_activate = (lambda: can_callback_activate()) item_action_option = menu.MenuOptionWithSymbols( _get_item_option_text(item), item_graphic, item_graphic, item_action_list, can_activate=can_activate, payload=item) return item_action_option
def get_save_quit_menu(player, state_stack): options = [] game_state = player.game_state.value exit_menu_function = menu.BackToGameFunction(state_stack) save_and_quit_graphic_active = graphic.GraphicChar(None, colors.WHITE, icon.GUNSLINGER_THIN) save_and_quit_graphic_inactive = graphic.GraphicChar(None, colors.GRAY, icon.GUNSLINGER_THIN) options.append(menu.MenuOptionWithSymbols("Save and Quit", save_and_quit_graphic_active, save_and_quit_graphic_inactive, [lambda: save.save(game_state), exit_menu_function, game_state.current_stack.pop, (lambda: player.actor.add_energy_spent(gametime.single_turn))])) give_up_graphic_active = graphic.GraphicChar(None, colors.WHITE, icon.SKULL) give_up_graphic_inactive = graphic.GraphicChar(None, colors.GRAY, icon.SKULL) options.append(menu.MenuOptionWithSymbols("Give Up", give_up_graphic_active, give_up_graphic_inactive, [player.health_modifier.kill, exit_menu_function, (lambda: player.actor.add_energy_spent(gametime.single_turn))])) return get_menu_with_options(options, state_stack, 6, 5)
def _get_item_action_option(item, item_action, player, stack_pop_function): item_graphic = item.graphic_char item_action_list = [action.DelayedFunctionCall(item_action.act, source_entity=player, target_entity=player), stack_pop_function] can_activate = (lambda: item_action.can_act(source_entity=player, target_entity=player)) item_action_option = menu.MenuOptionWithSymbols( _get_item_option_text(item), item_graphic, item_graphic, item_action_list, can_activate=can_activate, payload=item) return item_action_option
def get_status_list(player): context_options = [] state_stack = player.game_state.value.menu_prompt_stack for status in player.status_bar.statuses: print status, status.graphic_char, status.graphic_char.color_fg status_option = menu.MenuOptionWithSymbols(status.name, status.graphic_char, status.graphic_char, [], (lambda: True)) context_options.append(status_option) resulting_menu = menu.StaticMenu((0, 0), context_options, state_stack, margin=style.menu_theme.margin) return gui.UIElementList([resulting_menu])
def _main_menu(ui_state, state_stack, player_name_func, game_state_factory, test_game_state_factory): """ Creates the first menu of the game. """ continue_game_function = lambda: ui_state.current_stack.push(save.load_first_game()) start_game_function = lambda: ui_state.current_stack.push(game_state_factory(player_name_func())) start_test_game_function = lambda: ui_state.current_stack.push(test_game_state_factory(player_name_func())) quit_game_function = lambda: ui_state.current_stack.pop() dungeon_visualizer_function = \ lambda: ui_state.current_stack.push(dungeoncreatorvisualizer.DungeonCreatorVisualizer()) no_icon = graphic.GraphicChar(None, colors.BLACK, " ") gun_icon = graphic.GraphicChar(None, colors.WHITE, icon.GUN) menu_items = [] continue_game_option = menu.MenuOptionWithSymbols("Continue", gun_icon, no_icon, [continue_game_function], save.is_there_a_saved_game) menu_items.append(continue_game_option) start_game_option = \ menu.MenuOptionWithSymbols("New Game", gun_icon, no_icon, [start_game_function]) menu_items.append(start_game_option) if settings.DEV_MODE_FLAG: start_test_game_option = \ menu.MenuOptionWithSymbols("Test Dungeon", gun_icon, no_icon, [start_test_game_function]) menu_items.append(start_test_game_option) dungeon_creator_option = \ menu.MenuOptionWithSymbols("Dungeon Generator", gun_icon, no_icon, [dungeon_visualizer_function]) menu_items.append(dungeon_creator_option) quit_option = menu.MenuOptionWithSymbols("Quit", gun_icon, no_icon, [quit_game_function]) menu_items.append(quit_option) temp_position = (0, 0) return menu.StaticMenu(temp_position, menu_items, state_stack, margin=style.menu_theme.margin, vertical_space=1, vi_keys_accepted=False)