Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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])
Ejemplo n.º 6
0
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)