Exemple #1
0
def see_character_sex_experience_panel(character_id: int):
    """
    查看角色性经验面板
    Keyword arguments:
    character_id -- 角色Id
    """
    era_print.little_line_print()
    era_print.line_feed_print(
        text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, "5")
    )
    character_data = cache_contorl.character_data["character"][character_id]
    character_sex_grade_list = character_data.sex_grade
    character_sex = cache_contorl.character_data["character"][character_id].sex
    character_sex_grade_text_list = attr_text.get_sex_grade_text_list(
        character_sex_grade_list, character_sex
    )
    era_print.list_print(character_sex_grade_text_list, 4, "center")
    era_print.line_feed_print(
        text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, "7")
    )
    character_engraving = character_data.engraving
    character_engraving_text = attr_text.get_engraving_text(
        character_engraving
    )
    era_print.list_print(character_engraving_text, 3, "center")
def input_sex_choice_func():
    """
    玩家选择性别流程
    输入0-3:选择对应性别(Man/Woman/Futa/Asexual)
    输入4:随机选择一个性别
    输入5:返回请求输入性别流程
    """
    sex = list(
        text_loading.get_text_data(constant.FilePath.ROLE_PATH, "Sex").keys()
    )
    sex_max = len(sex)
    flow_return = creator_character_panel.input_sex_choice_panel()
    if flow_return in range(0, sex_max):
        sex_atr = sex[flow_return]
        cache_contorl.character_data["character"][0].sex = sex_atr
        py_cmd.clr_cmd()
        input_sex_confirm_func()
    elif flow_return == 4:
        rand = random.randint(0, len(sex) - 1)
        sex_atr = sex[rand]
        cache_contorl.character_data["character"][0].sex = sex_atr
        py_cmd.clr_cmd()
        input_sex_confirm_func()
    elif flow_return == 5:
        era_print.list_print()
        py_cmd.clr_cmd()
        input_sex_confirm_func()
Exemple #3
0
def see_character_status_panel(character_id: str):
    """
    查看角色状态面板
    Keyword arguments:
    character_id -- 角色Id
    """
    status_text_data = text_loading.get_text_data(
        constant.FilePath.STAGE_WORD_PATH, "134"
    )
    character_data = cache_contorl.character_data["character"][character_id]
    status_data = character_data.status
    for state_type in status_data:
        era_print.son_title_print(status_text_data[state_type])
        now_status_data = status_data[state_type].copy()
        if state_type == "SexFeel":
            if character_data.sex == "Man":
                del now_status_data["VaginaDelight"]
                del now_status_data["ClitorisDelight"]
                del now_status_data["VaginaLubrication"]
            elif character_data.sex == "Woman":
                del now_status_data["PenisDelight"]
            elif character_data.sex == "Asexual":
                del now_status_data["VaginaDelight"]
                del now_status_data["ClitorisDelight"]
                del now_status_data["VaginaLubrication"]
                del now_status_data["PenisDelight"]
        now_status_text_list = [
            status_text_data[state] + ":" + str(now_status_data[state])
            for state in now_status_data
        ]
        size = 7
        if len(now_status_text_list) < size:
            size = len(now_status_text_list)
        era_print.list_print(now_status_text_list, size, "center")
    era_print.line_feed_print()
def see_character_social_contact_panel(character_id: int):
    """
    查看角色社交信息面板
    Keyword arguments:
    character_id -- 角色Id
    """
    social_contact_text_data = text_loading.get_text_data(
        constant.FilePath.STAGE_WORD_PATH, "144"
    )
    character_social_contact = cache_contorl.character_data[
        character_id
    ].social_contact
    for social in social_contact_text_data:
        era_print.son_title_print(social_contact_text_data[social])
        if character_social_contact[social] == {}:
            era_print.normal_print(
                text_loading.get_text_data(
                    constant.FilePath.MESSAGE_PATH, "40"
                )
            )
        else:
            size = 10
            if len(character_social_contact[social]) < 10:
                size = len(character_social_contact[social])
            name_list = [
                cache_contorl.character_data[character_id].name
                for character_id in character_social_contact[social]
            ]
            era_print.list_print(name_list, size, "center")
def see_character_wear_clothes_cmd(start_id: int) -> str:
    """
    用于控制查看角色已装备服装列表面板的命令菜单
    """
    era_print.list_print()()
    yrn = cmd_button_queue.optionint(
        constant.CmdMenu.SEE_CHARACYTER_CLOTHES,
        id_size="center",
        askfor=False,
        start_id=start_id,
    )
    return yrn
Exemple #6
0
def see_clothing_info_panel(
    character_id: str,
    clothing_type: str,
    clothing_id: str,
    wear_clothing_judge: bool,
):
    """
    查看服装详细信息面板
    Keyword arguments:
    character_id -- 角色id
    clothing_type -- 服装类型
    clothing_id -- 服装id
    """
    era_print.little_title_print(
        text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, "126")
    )
    clothing_data = cache_contorl.character_data[character_id].clothing[
        clothing_type
    ][clothing_id]
    info_list = []
    clothing_name = clothing_data["Name"]
    if wear_clothing_judge:
        clothing_name += " " + text_loading.get_text_data(
            constant.FilePath.STAGE_WORD_PATH, "125"
        )
    info_list.append(
        text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, "128")
        + clothing_name
    )
    clothing_type_text = clothing.clothing_type_text_list[clothing_type]
    info_list.append(
        text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, "129")
        + clothing_type_text
    )
    evaluation_text = (
        text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, "131")
        + clothing_data["Evaluation"]
    )
    info_list.append(evaluation_text)
    era_print.list_print(info_list, 3, "center")
    era_print.son_title_print(
        text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, "130")
    )
    tag_text_list = []
    for tag in clothing.clothing_tag_text_list:
        tag_text = clothing.clothing_tag_text_list[tag]
        tag_text += str(clothing_data[tag])
        tag_text_list.append(tag_text)
    era_print.list_print(tag_text_list, 4, "center")
    era_print.son_title_print(
        text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, "127")
    )
    era_print.normal_print(clothing_data["Describe"])
Exemple #7
0
def print_hp_and_mp_bar(character_id: str):
    """
    绘制角色的hp和mp(有比例图),自动居中处理,结尾换行
    Keyword arguments:
    character_id -- 角色id
    """
    hp_bar = get_hp_or_mp_bar(character_id, "HitPoint",
                              game_config.text_width / 2 - 4)
    mp_bar = get_hp_or_mp_bar(character_id, "ManaPoint",
                              game_config.text_width / 2 - 4)
    era_print.line_feed_print()
    era_print.list_print([hp_bar, mp_bar], 2, "center")
    era_print.line_feed_print()
Exemple #8
0
def see_character_language_panel(character_id: str):
    """
    查看角色语言能力面板
    Keyword arguments:
    character_id -- 角色Id
    """
    language_text_data = text_loading.get_game_data(
        constant.FilePath.LANGUAGE_SKILLS_PATH)
    character_language = cache_contorl.character_data[character_id].language
    info_list = [
        language_text_data[language]["Name"] + ":" +
        attr_text.get_level_color_text(character_language[language])
        for language in character_language
    ]
    era_print.list_print(info_list, 4, "center")
Exemple #9
0
def see_character(character_id: str, judge: bool) -> list:
    """
    用于任何时候查看角色性格信息面板
    Keyword arguments:
    character_id -- 角色Id
    judge -- 绘制按钮校验
    Return arguments:
    list -- 按钮列表
    """
    nature_text_data = text_loading.get_game_data(
        constant.FilePath.NATURE_PATH)
    character_nature = cache_contorl.character_data[character_id].nature
    cmd_list = []
    for nature in nature_text_data:
        nature_text = nature_text_data[nature]["Name"]
        if "Good" in nature_text:
            now_nature_values = [
                character_nature[son_nature]
                for son_nature in nature_text_data[nature]["Factor"]
            ]
            now_nature_value = sum(now_nature_values)
            now_nature_max = len(now_nature_values) * 100
            if now_nature_value < now_nature_max / 2:
                nature_text = nature_text["Bad"]
            else:
                nature_text = nature_text["Good"]
        era_print.son_title_print(nature_text)
        info_list = [
            nature_text_data[nature]["Factor"][son_nature][judge_nature_good(
                character_nature[son_nature])]
            for son_nature in nature_text_data[nature]["Factor"]
        ]
        if judge:
            now_son_list = [son for son in nature_text_data[nature]["Factor"]]
            cmd_list += now_son_list
            cmd_button_queue.option_str(
                None,
                len(now_son_list),
                "center",
                False,
                False,
                info_list,
                "",
                now_son_list,
            )
        else:
            era_print.list_print(info_list, len(info_list), "center")
    return cmd_list
Exemple #10
0
def see_character_wear_item_panel(
    character_id: int, change_button: bool
) -> list:
    """
    用于查看角色穿戴道具列表的面板
    Keyword arguments:
    character_id -- 角色Id
    change_button -- 将角色穿戴道具列表绘制成按钮的开关
    """
    wear_item_info_text_data = text_loading.get_text_data(
        constant.FilePath.STAGE_WORD_PATH, "49"
    )
    wear_data = cache_contorl.character_data[character_id].wear_item["Wear"]
    wear_item_text_data = {}
    item_data = cache_contorl.character_data[character_id].wear_item["Item"]
    wear_item_button_list = []
    input_s = []
    for wear_type in wear_data:
        now_wear_data = wear_data[wear_type]
        if now_wear_data == {}:
            wear_item_button_list.append(
                wear_item_info_text_data[wear_type]
                + ":"
                + text_loading.get_text_data(
                    constant.FilePath.STAGE_WORD_PATH, "117"
                )
            )
        else:
            wear_text = ""
            for wear_id in now_wear_data:
                wear_text += "[" + item_data[wear_type][wear_id]["Name"] + "]"
            wear_item_button_list.append(
                wear_item_info_text_data[wear_type] + ":" + wear_text
            )
            wear_item_text_data[wear_type] = item_data[wear_type][wear_id][
                "Name"
            ]
    if change_button:
        input_s = [str(i) for i in range(len(wear_data))]
        cmd_button_queue.option_int(
            None, 4, "left", True, False, "center", 0, wear_item_button_list,
        )
    else:
        era_print.list_print(wear_item_button_list, 4, "center")
    return input_s
def see_character_knowledge_panel(character_id: str):
    """
    查看角色技能信息面板
    Keyword arguments:
    character_id -- 角色Id
    """
    knowledge_text_data = text_loading.get_game_data(
        constant.FilePath.KNOWLEDGE_PATH)
    character_knowledge = cache_contorl.character_data["character"][
        character_id].knowledge
    for knowledge in knowledge_text_data:
        era_print.son_title_print(knowledge_text_data[knowledge]["Name"])
        if knowledge in character_knowledge:
            info_list = [
                knowledge_text_data[knowledge]["Knowledge"][skill]["Name"] +
                ":" + attr_text.get_level_color_text(
                    character_knowledge[knowledge][skill])
                for skill in character_knowledge[knowledge]
            ]
            era_print.list_print(info_list, 6, "center")
def see_character_hp_and_mp_in_sence(character_id: int):
    """
    在场景中显示角色的HP和MP
    Keyword arguments:
    character_id -- 角色Id
    """
    if character_id == 0:
        attr_print.print_hp_and_mp_bar(character_id)
    else:
        character_id_text = (text_loading.get_text_data(
            constant.FilePath.STAGE_WORD_PATH, "0") + "0" + ":" +
                             cache_contorl.character_data[0].name)
        target_id_text = (text_loading.get_text_data(
            constant.FilePath.STAGE_WORD_PATH, "0") + f"{character_id}" + ":" +
                          cache_contorl.character_data[character_id].name)
        era_print.list_print([character_id_text, target_id_text], 2, "center")
        era_print.line_feed_print()
        player_bar = attr_print.get_hp_or_mp_bar(
            0, "HitPoint", game_config.text_width / 2 - 4)
        target_bar = attr_print.get_hp_or_mp_bar(
            character_id, "HitPoint", game_config.text_width / 2 - 4)
        era_print.list_print([player_bar, target_bar], 2, "center")
        era_print.line_feed_print()
        player_bar = attr_print.get_hp_or_mp_bar(
            0, "ManaPoint", game_config.text_width / 2 - 4)
        target_bar = attr_print.get_hp_or_mp_bar(
            character_id, "ManaPoint", game_config.text_width / 2 - 4)
        era_print.list_print([player_bar, target_bar], 2, "center")
        era_print.line_feed_print()
Exemple #13
0
def see_character_main_attr_panel(character_id: int):
    """
    查看角色主属性面板
    Keyword arguments:
    character_id -- 角色Id
    """
    title_1 = text_loading.get_text_data(
        constant.FilePath.STAGE_WORD_PATH, "1"
    )
    era_print.little_title_print(title_1)
    character_id_text = f"{text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, '0')}{character_id}"
    character_data = cache_contorl.character_data["character"][character_id]
    name = character_data.name
    nick_name = character_data.nick_name
    character_name = (
        text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, "13")
        + name
    )
    character_nick_name = (
        text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, "12")
        + nick_name
    )
    sex = character_data.sex
    sex_text = text_loading.get_text_data(
        constant.FilePath.STAGE_WORD_PATH, "2"
    ) + attr_text.get_sex_text(sex)
    name_text = (
        character_id_text
        + " "
        + character_name
        + " "
        + character_nick_name
        + " "
        + sex_text
    )
    hp_bar = attr_print.get_hp_or_mp_bar(
        character_id, "HitPoint", game_config.text_width / 2 - 4
    )
    era_print.list_print([name_text, hp_bar], 2, "center")
    era_print.line_feed_print()
    state_text = attr_text.get_state_text(character_id)
    mp_bar = attr_print.get_hp_or_mp_bar(
        character_id, "ManaPoint", game_config.text_width / 2 - 4
    )
    era_print.list_print([state_text, mp_bar], 2, "center")
    era_print.line_feed_print()
    era_print.little_line_print()
    stature_text = attr_text.get_stature_text(character_id)
    era_print.line_feed_print(stature_text)
    era_print.restart_line_print(".")
    era_print.line_feed_print(
        attr_text.get_character_dormitory_path_text(character_id)
    )
    era_print.little_line_print()
    character_species = f"{text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, '15')}{character_data.species}"
    character_age = f"{text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, '3')}{character_data.age}"
    birthday_text = f"{text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH,'140')}{character_data.birthday['month']}{text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH,'60')}{character_data.birthday['day']}{text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH,'61')}"
    era_print.list_print(
        [character_species, character_age, birthday_text], 3, "center"
    )
    era_print.restart_line_print(".")
    character_intimate = f"{text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, '16')}{character_data.intimate}"
    character_graces = f"{text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, '17')}{character_data.graces}"
    era_print.list_print([character_intimate, character_graces], 2, "center")
    era_print.restart_line_print(".")
    character_chest = character_data.chest["NowChest"]
    chest_group = attr_calculation.judge_chest_group(character_chest)
    chest_text = (
        text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, "141")
        + text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, "142")[
            chest_group
        ]
    )
    era_print.list_print([chest_text], 1, "center")
    era_print.restart_line_print(".")
    character_height = character_data.height["NowHeight"]
    character_weight = character_data.weight
    character_height_text = str(round(character_height, 2))
    character_weight_text = str(round(character_weight, 2))
    character_height_info = (
        text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, "80")
        + character_height_text
    )
    character_weight_info = (
        text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, "81")
        + character_weight_text
    )
    era_print.list_print(
        [character_height_info, character_weight_info], 2, "center"
    )
    era_print.restart_line_print(".")
    character_measurements = character_data.measurements
    character_bust = str(round(character_measurements["Bust"], 2))
    character_waist = str(round(character_measurements["Waist"], 2))
    character_hip = str(round(character_measurements["Hip"], 2))
    character_bust_info = (
        text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, "82")
        + character_bust
    )
    character_waist_info = (
        text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, "83")
        + character_waist
    )
    character_hip_info = (
        text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH, "84")
        + character_hip
    )
    era_print.list_print(
        [character_bust_info, character_waist_info, character_hip_info],
        3,
        "center",
    )
    era_print.restart_line_print(".")