def game_main_panel() -> int:
    """
    游戏标题界面主面板
    """
    era_print.restart_line_print()
    era_print.line_feed_print(
        text_handle.align(game_config.game_name, "center")
    )
    era_print.line_feed_print(text_handle.align(game_config.author, "right"))
    era_print.line_feed_print(text_handle.align(game_config.verson, "right"))
    era_print.line_feed_print(
        text_handle.align(game_config.verson_time, "right")
    )
    era_print.line_feed_print()
    era_print.restart_line_print()
    era_print.lines_center_print(
        1 / 3, text_loading.get_text_data(constant.FilePath.MESSAGE_PATH, "2")
    )
    time.sleep(1)
    era_print.line_feed_print()
    era_print.restart_line_print()
    time.sleep(1)
    py_cmd.focus_cmd()
    menu_int = cmd_button_queue.option_int(constant.CmdMenu.LOGO_MENU)
    return menu_int
示例#2
0
 def draw(self):
     """ 绘制对象 """
     self.text_list[1] = text_handle.align(
         self.text_list[1], "center", text_width=self.width - self.id_width
     )
     text_width = text_handle.get_text_index(self.text_list[0])
     self.text_list[0] += " " * (self.id_width - text_width)
     now_text = f"{self.text_list[0]}{self.text_list[1]}"
     now_text = now_text.rstrip()
     now_text = text_handle.align(now_text, "center", text_width=self.width)
     now_draw = draw.Button(now_text, str(self.button_id), cmd_func=self.change_clothing)
     now_draw.width = self.width
     now_draw.draw()
示例#3
0
 def __init__(self, text: str, width: int, is_button: bool,
              num_button: bool, button_id: int):
     """ 初始化绘制对象 """
     self.text: str = str(text[0])
     """ 存档id """
     self.write_save: bool = text[1]
     """ 是否存储存档 """
     self.draw_text: str = ""
     """ 存档信息绘制文本 """
     self.width: int = width
     """ 最大宽度 """
     self.is_button: bool = is_button
     """ 绘制按钮 """
     self.is_num_button: bool = num_button
     """ 绘制数字按钮 """
     self.button_id: int = button_id
     """ 数字按钮的id """
     self.button_return: str = str(button_id)
     """ 按钮返回值 """
     self.save_exist_judge = save_handle.judge_save_file_exist(self.text)
     """ 存档位是否已存在 """
     save_name = _("空存档位")
     if self.save_exist_judge:
         save_head = save_handle.load_save_info_head(self.text)
         game_time: datetime.datetime = save_head["game_time"]
         save_time: datetime.datetime = save_head["save_time"]
         game_time_text = _("游戏时间:") + game_time.strftime("%Y-%m-%d %H:%M")
         save_time_text = _("存档时间:") + save_time.strftime("%Y-%m-%d %H:%M")
         save_name = f"No.{self.text} {save_head['game_verson']} {game_time_text} {save_head['character_name']} {save_time_text}"
     if is_button:
         if num_button:
             index_text = text_handle.id_index(button_id)
             now_text_width = self.width - len(index_text)
             new_text = text_handle.align(save_name,
                                          "center",
                                          text_width=now_text_width)
             self.draw_text = f"{index_text}{new_text}"
             self.button_return = str(button_id)
         else:
             new_text = text_handle.align(save_name,
                                          "center",
                                          text_width=self.width)
             self.draw_text = new_text
             self.button_return = text[0]
     else:
         new_text = text_handle.align(save_name,
                                      "center",
                                      text_width=self.width)
         self.draw_text = new_text
示例#4
0
 def __init__(self, text: int, width: int, is_button: bool,
              num_button: bool, button_id: int):
     """ 初始化绘制对象 """
     self.text: int = text
     """ 角色id """
     self.draw_text: str = ""
     """ 角色缩略信息绘制文本 """
     self.width: int = width
     """ 最大宽度 """
     self.is_button: bool = is_button
     """ 绘制按钮 """
     self.num_button: bool = num_button
     """ 绘制数字按钮 """
     self.button_id: int = button_id
     """ 数字按钮的id """
     self.button_return: str = str(button_id)
     """ 按钮返回值 """
     character_data = cache.character_data[self.text]
     character_name = character_data.name
     id_text = f"No.{self.text}"
     sex_config = game_config.config_sex_tem[character_data.sex]
     sex_text = _(f"性别:{sex_config.name}")
     age_text = _(f"年龄:{character_data.age}岁")
     hit_point_text = _(
         f"体力:({character_data.hit_point}/{character_data.hit_point_max})")
     mana_point_text = _(
         f"气力:({character_data.mana_point}/{character_data.mana_point_max})"
     )
     now_text = f"{id_text} {character_name} {sex_text} {age_text} {hit_point_text} {mana_point_text}"
     if is_button:
         if num_button:
             index_text = text_handle.id_index(self.button_id)
             now_text_width = self.width - len(index_text)
             new_text = text_handle.align(now_text,
                                          "center",
                                          text_width=now_text_width)
             self.draw_text = f"{index_text}{new_text}"
             self.button_return = str(button_id)
         else:
             new_text = text_handle.align(now_text,
                                          "center",
                                          text_width=self.width)
             self.draw_text = new_text
             self.button_return = character_name
     else:
         new_text = text_handle.align(now_text,
                                      "center",
                                      text_width=self.width)
         self.draw_text = new_text
示例#5
0
 def __init__(self, text: List[str], width: int, is_button: bool,
              num_button: bool, button_id: int):
     """ 初始化绘制对象 """
     self.draw_text = ""
     """ 场景路径绘制的文本 """
     self.width: int = width
     """ 最大宽度 """
     self.is_button: bool = is_button
     """ 绘制按钮 """
     self.num_button: bool = num_button
     """ 绘制数字按钮 """
     self.button_id: int = button_id
     """ 数字按钮的id """
     self.button_return: str = str(button_id)
     """ 按钮返回值 """
     self.draw_list: List[draw.NormalDraw] = []
     """ 绘制的对象列表 """
     self.scene_path: List[str] = text
     """ 对应场景路径 """
     path_text = attr_text.get_scene_path_text(text)
     button_text = f"[{path_text}]"
     button_text = text_handle.align(button_text, text_width=width)
     name_draw = draw.Button(button_text, path_text, cmd_func=self.move_now)
     self.draw_text = button_text
     name_draw.width = width
     self.now_draw = name_draw
     """ 绘制的对象 """
     self.button_return = path_text
示例#6
0
 def draw(self):
     """ 绘制按钮 """
     if self.width < text_handle.get_text_index(self.text):
         now_text = ""
         if self.width > 0:
             for i in self.text:
                 if text_handle.get_text_index(
                         now_text) + text_handle.get_text_index(
                             i) < self.width:
                     now_text += i
                 break
             now_text = now_text[:-2] + "~"
     else:
         now_index = text_handle.get_text_index(self.text)
         now_text = text_handle.align(self.text, "left", 0, 1, self.width)
         now_width = self.width - text_handle.get_text_index(now_text)
         now_text = " " * int(now_width) + now_text
     py_cmd.pcmd(
         now_text,
         self.return_text,
         normal_style=self.normal_style,
         on_style=self.on_mouse_style,
         cmd_func=self.cmd_func,
         arg=self.args,
     )
示例#7
0
 def __init__(self, text: int, width: int, is_button: bool,
              num_button: bool, button_id: int):
     """ 初始化绘制对象 """
     self.draw_text = ""
     """ 场景路径绘制文本 """
     self.width: int = width
     """ 最大宽度 """
     self.is_button: bool = is_button
     """ 绘制按钮 """
     self.num_button: bool = num_button
     """ 绘制数字按钮 """
     self.button_id: int = button_id
     """ 数字按钮的id """
     self.button_return: str = str(button_id)
     """ 按钮返回值 """
     self.draw_list: List[draw.NormalDraw] = []
     """ 绘制的对象列表 """
     character_data: game_type.Character = cache.character_data[text]
     self.scene_path: List[str] = character_data.position
     """ 角色所在场景 """
     path_text = attr_text.get_scene_path_text(self.scene_path)
     button_text = f"{character_data.name}:[{path_text}]"
     button_text = text_handle.align(button_text, text_width=width)
     name_draw = draw.Button(button_text,
                             character_data.name,
                             cmd_func=self.move_now)
     name_draw.width = width
     self.now_draw = name_draw
     """ 绘制的对象 """
     self.button_return = character_data.name
示例#8
0
 def draw(self):
     """ 绘制面板 """
     character_data = cache.character_data[self.character_id]
     title_draw = draw.TitleLineDraw(_("人物服装"), self.width)
     title_draw.draw()
     draw_list = []
     self.return_list = []
     id_width = 0
     for clothing_type in game_config.config_clothing_type:
         type_data = game_config.config_clothing_type[clothing_type]
         type_draw = draw.LittleTitleLineDraw(type_data.name, self.width,
                                              ":")
         draw_list.append(type_draw)
         if clothing_type in character_data.put_on and isinstance(
                 character_data.put_on[clothing_type], UUID):
             now_draw = ClothingInfoDrawPanel(
                 self.character_id,
                 clothing_type,
                 character_data.put_on[clothing_type],
                 self.width,
                 1,
                 len(self.return_list),
             )
             self.return_list.append(str(len(self.return_list)))
             now_id_width = text_handle.get_text_index(
                 now_draw.text_list[0])
             if now_id_width > id_width:
                 id_width = now_id_width
         else:
             now_text = _("未穿戴")
             if not self.character_id:
                 now_id = len(self.return_list)
                 now_id_text = text_handle.id_index(now_id)
                 now_width = self.width - len(now_id_text)
                 now_text = text_handle.align(now_text,
                                              "center",
                                              text_width=now_width)
                 now_text = f"{now_id_text}{now_text}"
                 now_draw = draw.Button(now_text,
                                        str(now_id),
                                        cmd_func=self.see_clothing_list,
                                        args=(clothing_type, ))
                 self.return_list.append(str(now_id))
             else:
                 now_draw = draw.CenterDraw()
                 now_draw.text = now_text
             now_draw.width = self.width
         draw_list.append(now_draw)
         draw_list.append(line_feed)
     for value in draw_list:
         if "id_width" in value.__dict__:
             value.id_width = id_width
         value.draw()
示例#9
0
def print_map(map_path: list) -> list:
    """
    按地图路径绘制地图
    Ketword arguments:
    map_path -- 地图路径
    """
    map_path_str = get_map_system_path_str_for_list(map_path)
    map_draw = get_map_draw_for_map_path(map_path_str)
    character_position = cache_contorl.character_data["character"][0].position
    character_now_scene_id = get_scene_id_in_map_for_scene_path_on_map_path(
        character_position, map_path
    )
    input_s = []
    map_y_list = map_draw["Draw"]
    map_x_cmd_list_data = map_draw["Cmd"]
    map_x_cmd_id_list_data = map_draw["CmdId"]
    for map_x_list_id in range(len(map_y_list)):
        map_x_list = map_y_list[map_x_list_id]
        now_cmd_list = map_x_cmd_list_data[map_x_list_id]
        now_cmd_id_list = map_x_cmd_id_list_data[map_x_list_id]
        cmd_list_str = "".join(now_cmd_list)
        era_print.normal_print(
            text_handle.align(map_x_list + cmd_list_str, "center", True),
            rich_text_judge=False,
        )
        i = 0
        while i in range(len(map_x_list)):
            if now_cmd_id_list != []:
                while i == now_cmd_id_list[0]:
                    if now_cmd_list[0] == character_now_scene_id:
                        era_print.normal_print(
                            now_cmd_list[0], "nowmap", rich_text_judge=False
                        )
                        input_s.append(None)
                    else:
                        py_cmd.pcmd(now_cmd_list[0], now_cmd_list[0], None)
                        input_s.append(now_cmd_list[0])
                    now_cmd_list = now_cmd_list[1:]
                    now_cmd_id_list = now_cmd_id_list[1:]
                    if now_cmd_list == []:
                        break
                if now_cmd_id_list != []:
                    era_print.normal_print(map_x_list[i : now_cmd_id_list[0]])
                    i = now_cmd_id_list[0]
                else:
                    era_print.normal_print(map_x_list[i:])
                    i = len(map_x_list)
            else:
                era_print.normal_print(map_x_list[i:])
                i = len(map_x_list)
        era_print.line_feed_print()
    return input_s
示例#10
0
 def draw(self):
     self.text_list[1] = text_handle.align(self.text_list[1], "center", 0, 1, self.width - self.id_width)
     text_width = text_handle.get_text_index(self.text_list[0])
     if text_width < self.id_width:
         self.text_list[0] += " " * (self.id_width - text_width)
     now_text = f"{self.text_list[0]}{self.text_list[1]}"
     if self.draw_button:
         now_draw = draw.Button(now_text, str(self.button_id), cmd_func=self.see_clothing_info)
     else:
         now_draw = draw.NormalDraw()
         now_draw.text = now_text
     now_draw.width = self.width
     now_draw.draw()
示例#11
0
 def draw(self):
     """ 绘制文本 """
     if int(len(self)) > int(self.width):
         now_text = ""
         if self.width:
             for i in self.text:
                 if text_handle.get_text_index(now_text) + text_handle.get_text_index(i) < self.width:
                     now_text += i
                 break
             now_text = now_text[:-2] + "~"
     else:
         now_text = text_handle.align(self.text, "left", 0, 1, self.width)
     io_init.era_print(now_text, self.style)
示例#12
0
def lines_center_print(sleep_time: float, string="", style="standard"):
    """
    将多行文本以居中的对齐方式进行逐字绘制
    Keyword arguments:
    sleep_time -- 逐字的间隔时间
    string -- 需要逐字绘制的文本
    style -- 文本的默认样式
    """
    text_wait = cache_contorl.text_wait
    if text_wait != 0:
        time.sleep(text_wait)
    cache_contorl.wframe_mouse["w_frame_line_state"] = 1
    string = str(string)
    string_list = string.split("\n")
    width = game_config.text_width
    style_name_list = game_config.get_font_data_list()
    string_center_list = ""
    for i in range(0, len(style_name_list)):
        style_text_head = "<" + style_name_list[i] + ">"
        style_text_tail = "</" + style_name_list[i] + ">"
        if style_text_head in string:
            string_center = string.replace(style_text_head, "")
            string_center = string_center.replace(style_text_tail, "")
            string_center_list = string_center.split("\n")
        else:
            string_center_list = string_list
    for i in range(0, len(string_list)):
        width_i = int(width) / 2
        count_index = text_handle.get_text_index(string_center_list[i])
        count_i = int(count_index) / 2
        if cache_contorl.wframe_mouse["w_frame_re_print"] == 1:
            normal_print("\n")
            normal_print(" " * int((width_i - count_i)))
            normal_print(string_list[i])
        else:
            normal_print(" " * int((width_i - count_i)))
            one_by_one_print(sleep_time, string_list[i])
            normal_print("\n")
            if cache_contorl.wframe_mouse["w_frame_lines_up"] == 1:
                index_i_up = i + 1
                cache_contorl.wframe_mouse["w_frame_lines_up"] = 2
                for index_i_up in range(index_i_up, len(string_list)):
                    restart_line_print(
                        text_handle.align(string_list[index_i_up], "center"),
                        style,
                    )
                cache_contorl.wframe_mouse["w_frame_line_state"] = 2
                break
    cache_contorl.wframe_mouse["w_frame_re_print"] = 0
 def __init__(self, text: str, width: int, is_button: bool,
              num_button: bool, button_id: int):
     """ 初始化绘制对象 """
     self.character_id: int = int(text)
     """ 角色id """
     self.draw_text: str = ""
     """ 角色名绘制文本 """
     self.width: int = width
     """ 最大宽度 """
     self.is_button: bool = is_button
     """ 绘制按钮 """
     self.num_button: bool = num_button
     """ 绘制数字按钮 """
     self.button_id: int = button_id
     """ 数字按钮的id """
     self.button_return: str = str(button_id)
     """ 按钮返回值 """
     character_data: game_type.Character = cache.character_data[
         self.character_id]
     sex_text = game_config.config_sex_tem[character_data.sex].name
     character_name = character_data.name + f"({sex_text})"
     name_draw = draw.NormalDraw()
     if is_button:
         if num_button:
             index_text = text_handle.id_index(button_id)
             button_text = f"{index_text} {character_name}"
             name_draw = draw.CenterButton(button_text,
                                           self.button_return,
                                           self.width,
                                           cmd_func=self.see_character)
         else:
             button_text = f"[{character_name}]"
             name_draw = draw.CenterButton(button_text,
                                           character_name,
                                           self.width,
                                           cmd_func=self.see_character)
             self.button_return = character_name
         self.draw_text = button_text
     else:
         character_name = f"[{character_name}]"
         character_name = text_handle.align(character_name, "center", 0, 1,
                                            self.width)
         name_draw.text = character_name
         self.draw_text = character_name
     name_draw.width = self.width
     self.now_draw = name_draw
     """ 绘制的对象 """
示例#14
0
 def draw(self):
     """ 绘制列表 """
     now_width = 0
     for value in self.draw_list:
         now_width += len(value)
     now_text = " " * now_width
     fix_text = text_handle.align(now_text, "center", 1, 1, self.width)
     fix_draw = NormalDraw()
     fix_draw.text = fix_text
     fix_draw.width = len(fix_text)
     fix_draw.draw()
     for value in self.draw_list:
         value.draw()
     now_width = fix_draw.width * 2 + now_width
     if now_width < self.width:
         fix_draw.text += int(self.width - now_width) * " "
     fix_draw.draw()
示例#15
0
 def draw(self):
     """ 绘制文本 """
     self.width = int(self.width)
     if len(self) > self.width:
         now_text = ""
         if self.width > 0:
             for i in self.text:
                 if text_handle.get_text_index(now_text) + text_handle.get_text_index(i) < self.width:
                     now_text += i
                 break
             now_text = now_text[:-2] + "~"
         io_init.era_print(now_text, self.style)
     elif len(self) > self.width - 1:
         now_text = " " + self.text
     elif len(self) > self.width - 2:
         now_text = " " + self.text + " "
     else:
         now_text = text_handle.align(self.text, "center", 0, 1, self.width)
     if len(self) < self.width:
         now_text += " " * (int(self.width) - text_handle.get_text_index(now_text))
     io_init.era_print(now_text, self.style)
示例#16
0
def see_character_list_panel(max_page: int) -> list:
    """
    查看角色列表面板
    Keyword arguments:
    max_page -- 最大角色列表页数
    """
    title_text = text_loading.get_text_data(constant.FilePath.STAGE_WORD_PATH,
                                            "74")
    era_print.little_title_print(title_text)
    input_s = []
    page_id = int(cache_contorl.panel_state["SeeCharacterListPanel"])
    page_show = int(game_config.character_list_show)
    character_max = len(cache_contorl.character_data["character"]) - 1
    if page_id == max_page:
        show_page_start = page_show * page_id
        show_page_over = show_page_start + (character_max + 1 -
                                            show_page_start)
    else:
        show_page_over = page_show * (page_id + 1)
        show_page_start = show_page_over - page_show
    for i in range(show_page_start, show_page_over):
        cmd_id = i - show_page_start
        cmd_id_text = cmd_button_queue.id_index(cmd_id)
        cmd_text = attr_text.get_character_abbreviations_info(i)
        cmd_id_text_index = text_handle.get_text_index(cmd_id_text)
        window_width = int(game_config.text_width)
        text_width = window_width - cmd_id_text_index
        cmd_text = text_handle.align(cmd_text, "center", text_width=text_width)
        cmd_text = cmd_id_text + " " + cmd_text
        cmd_id = str(cmd_id)
        era_print.little_line_print()
        py_cmd.pcmd(cmd_text, cmd_id, None)
        input_s.append(cmd_id)
        era_print.normal_print("\n")
    page_text = "(" + str(page_id) + "/" + str(max_page) + ")"
    era_print.page_line_print(sample="-", string=page_text)
    era_print.line_feed_print()
    return input_s
def see_save_list_panel(page_save_value: int,
                        last_save_page_value: int,
                        auto_save=False) -> list:
    """
    查看存档页面面板
    Keyword arguments:
    page_save_value -- 单页最大存档显示数量
    last_save_page_value -- 最后一页存档显示数量
    auto_save -- 自动存档显示开关 (default False)
    """
    save_panel_page = int(cache_contorl.panel_state["SeeSaveListPanel"]) + 1
    input_s = []
    id_text_list = []
    id_info_text = text_loading.get_text_data(
        constant.FilePath.STAGE_WORD_PATH, "72")
    text_width = int(game_config.text_width)
    save_none_text = text_loading.get_text_data(constant.FilePath.MESSAGE_PATH,
                                                "20")
    if save_panel_page == int(game_config.save_page) + 1:
        start_save_id = int(page_save_value) * (save_panel_page - 1)
        over_save_id = start_save_id + last_save_page_value
    else:
        over_save_id = int(page_save_value) * save_panel_page
        start_save_id = over_save_id - int(page_save_value)
    for i in range(0, over_save_id - start_save_id):
        id = cmd_button_queue.id_index(i)
        save_id = start_save_id + i
        if auto_save and not save_handle.judge_save_file_exist(str(save_id)):
            id_text = id_info_text + " " + str(save_id) + ":"
            id_text_list.append(id_text)
        else:
            id_text = id + id_info_text + " " + str(save_id) + ":"
            id_text_list.append(id_text)
    for i in range(0, over_save_id - start_save_id):
        id = str(i)
        id_text = id_text_list[i]
        era_print.little_line_print()
        save_id = str(save_handle.get_save_page_save_id(page_save_value, i))
        if save_handle.judge_save_file_exist(save_id):
            save_info_head = save_handle.load_save_info_head(save_id)
            game_time_data = save_info_head["game_time"]
            game_time_text = game_time.get_date_text(game_time_data)
            character_name = save_info_head["character_name"]
            save_verson = save_info_head["game_verson"]
            save_text = (character_name + " " + game_time_text + " " +
                         save_verson)
            id_text_index = int(text_handle.get_text_index(id_text))
            fix_id_width = text_width - id_text_index
            save_align = text_handle.align(save_text,
                                           "center",
                                           text_width=fix_id_width)
            id_text = id_text + save_align
            py_cmd.pcmd(id_text, id, None)
            input_s.append(id)
            era_print.normal_print("\n")
        else:
            id_text_index = int(text_handle.get_text_index(id_text))
            fix_id_width = text_width - id_text_index
            save_none_align = text_handle.align(save_none_text,
                                                "center",
                                                text_width=fix_id_width)
            id_text = id_text + save_none_align
            if auto_save:
                era_print.normal_print(id_text)
            else:
                py_cmd.pcmd(id_text, id, None)
                input_s.append(id)
        era_print.line_feed_print()
    if auto_save:
        auto_info_text = text_loading.get_text_data(
            constant.FilePath.STAGE_WORD_PATH, "73")
        i = page_save_value
        id = cmd_button_queue.id_index(i)
        era_print.little_line_print()
        if save_handle.judge_save_file_exist("auto"):
            save_info_head = save_handle.load_save_info_head("auto")
            game_time_data = save_info_head["game_time"]
            game_time_text = game_time.get_date_text(game_time_data)
            character_name = save_info_head["character_name"]
            save_verson = save_info_head["game_verson"]
            save_text = (character_name + " " + game_time_text + " " +
                         save_verson)
            id_text = id + auto_info_text
            id_text_index = int(text_handle.get_text_index(id_text))
            fix_id_width = text_width - id_text_index
            save_text_align = text_handle.align(save_text,
                                                "center",
                                                text_width=fix_id_width)
            id_text = id_text + save_text_align
            py_cmd.pcmd(id_text, id, None)
            input_s.append(id)
            era_print.line_feed_print()
        else:
            id_text_index = int(text_handle.get_text_index(auto_info_text))
            fix_id_width = text_width - id_text_index
            save_none_align = text_handle.align(save_none_text,
                                                "center",
                                                text_width=fix_id_width)
            id_text = auto_info_text + save_none_align
            era_print.normal_print(id_text)
            era_print.line_feed_print()
    return input_s
示例#18
0
def see_food_shop_list_by_food_type(max_page: int, food_list: list) -> list:
    """
    用于查看餐馆出售食物列表的面板
    Keyword arguments:
    max_page -- 最大页数
    Return arguments:
    list -- 监听的按钮列表
    """
    era_print.restart_line_print("+")
    tag_text_index = 0
    now_page_id = int(
        cache_contorl.panel_state["SeeFoodShopListByFoodTypePanel"]
    )
    now_page_max = game_config.food_shop_item_max
    now_page_start_id = now_page_id * now_page_max
    now_page_end_id = now_page_start_id + now_page_max
    if not len(food_list):
        era_print.normal_print(
            text_loading.get_text_data(constant.FilePath.MESSAGE_PATH, "34")
        )
        era_print.line_feed_print()
        return []
    if now_page_end_id > len(food_list):
        now_page_end_id = len(food_list)
    input_s = []
    text_list = []
    fix_text = ""
    for i in range(now_page_start_id, now_page_end_id):
        now_food = food_list[i]
        if now_food.recipe == -1:
            food_config = text_loading.get_text_data(
                constant.FilePath.FOOD_PATH, now_food.id
            )
            food_name = food_config["Name"]
        else:
            food_name = cache_contorl.recipe_data[now_food.recipe].name
        now_index = cmd_button_queue.id_index(tag_text_index)
        food_text = now_index + " " + food_name
        food_text += " " + text_loading.get_text_data(
            constant.FilePath.STAGE_WORD_PATH, "154"
        )
        if "Hunger" in now_food.feel:
            food_text += str(round(now_food.feel["Hunger"], 2))
        else:
            food_text += "0"
        food_text += " " + text_loading.get_text_data(
            constant.FilePath.STAGE_WORD_PATH, "153"
        )
        if "Thirsty" in now_food.feel:
            food_text += str(round(now_food.feel["Thirsty"], 2))
        else:
            food_text += "0"
        food_text += (
            " "
            + text_loading.get_text_data(
                constant.FilePath.STAGE_WORD_PATH, "155"
            )
            + str(now_food.weight)
        )
        food_text += text_loading.get_text_data(
            constant.FilePath.STAGE_WORD_PATH, "156"
        )
        food_text += " " + text_loading.get_text_data(
            constant.FilePath.STAGE_WORD_PATH, "152"
        )
        food_text += text_loading.get_text_data(
            constant.FilePath.STAGE_WORD_PATH, "151"
        )[now_food.quality]
        text_list.append(food_text)
        now_fix_text = text_handle.align(food_text, "center", True)
        if fix_text == "":
            fix_text = now_fix_text
        if len(now_fix_text) < len(fix_text):
            fix_text = now_fix_text
        tag_text_index += 1
    for i in range(tag_text_index):
        now_text = fix_text + text_list[i]
        now_text = text_handle.align(now_text)
        py_cmd.pcmd(now_text, i)
        era_print.normal_print("\n")
        input_s.append(str(i))
        if i < tag_text_index - 1:
            era_print.restart_line_print("*")
    return input_s
示例#19
0
 def update(self):
     """ 更新绘制对象 """
     self.return_list = []
     start_id = self.now_page * self.limit
     total_page = int((len(self.text_list) - 1) / self.limit)
     if start_id >= len(self.text_list):
         self.now_page = total_page
         start_id = self.now_page * self.limit
     now_page_list = []
     for i in range(start_id, len(self.text_list)):
         if len(now_page_list) >= self.limit:
             break
         now_page_list.append(self.text_list[i])
     draw_text_group = value_handle.list_of_groups(now_page_list, self.column)
     draw_list: List[draw.NormalDraw] = []
     self.end_index = self.button_start_id
     index = self.button_start_id
     line_feed = draw.NormalDraw()
     line_feed.text = "\n"
     line_feed.width = 1
     for draw_text_list in draw_text_group:
         if self.row_septal_lines != "" and index:
             line_draw = draw.LineDraw(self.row_septal_lines, self.width)
             draw_list.append(line_draw)
         now_width = self.width
         if self.col_septal_lines != "":
             col_index = len(draw_text_list) + 1
             col_width = text_handle.get_text_index(self.col_septal_lines)
             now_width -= col_width * col_index
         value_width = int(now_width / self.column)
         col_fix_draw = draw.NormalDraw()
         col_fix_draw.text = self.col_septal_lines
         col_fix_draw.width = 1
         draw_list.append(col_fix_draw)
         for value in draw_text_list:
             is_button = 1
             if value == self.null_button_text:
                 is_button = 0
             value_draw = self.draw_type(value, value_width, is_button, self.num_button, index)
             value_draw.draw_text = text_handle.align(value_draw.draw_text, "center", 0, 1, value_width)
             if self.num_button:
                 self.return_list.append(str(index))
             else:
                 self.return_list.append(value_draw.button_return)
             index += 1
             draw_list.append(value_draw)
             draw_list.append(col_fix_draw)
         draw_list.append(line_feed)
     if self.num_button:
         self.end_index = index
     if total_page:
         now_line = draw.LineDraw("-", self.width)
         draw_list.append(now_line)
         page_change_start_id = self.button_start_id
         if self.num_button:
             page_change_start_id = index
         old_page_index_text = text_handle.id_index(page_change_start_id)
         old_page_button = draw.CenterButton(
             _("{old_page_index_text} 上一页").format(old_page_index_text=old_page_index_text),
             str(page_change_start_id),
             int(self.width / 3),
             cmd_func=self.old_page,
         )
         self.return_list.append(str(page_change_start_id))
         draw_list.append(old_page_button)
         page_text = f"({self.now_page}/{total_page})"
         page_draw = draw.CenterDraw()
         page_draw.width = int(self.width / 3)
         page_draw.text = page_text
         draw_list.append(page_draw)
         next_page_index_text = text_handle.id_index(page_change_start_id + 1)
         next_page_button = draw.CenterButton(
             _("{next_page_index_text} 下一页").format(next_page_index_text=next_page_index_text),
             str(page_change_start_id + 1),
             int(self.width / 3),
             cmd_func=self.next_page,
         )
         self.end_index = page_change_start_id + 1
         self.return_list.append(str(page_change_start_id + 1))
         draw_list.append(next_page_button)
         draw_list.append(line_feed)
     self.draw_list = draw_list