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()
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
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"])
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()
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")
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
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()
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(".")