コード例 #1
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
コード例 #2
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
コード例 #3
0
ファイル: see_save_info_panel.py プロジェクト: gin234/dieloli
 def draw_save_handle(self):
     """ 处理读写存档 """
     py_cmd.clr_cmd()
     line_feed.draw()
     if self.save_exist_judge:
         now_ask_list = []
         now_id = 0
         load_save_button = draw.Button(text_handle.id_index(now_id) +
                                        _("读取"),
                                        str(now_id),
                                        cmd_func=self.load_save)
         load_save_button.width = self.width
         load_save_button.draw()
         line_feed.draw()
         now_ask_list.append(str(now_id))
         now_id += 1
         if self.write_save:
             re_write_save_button = draw.Button(
                 text_handle.id_index(now_id) + _("覆盖"),
                 str(now_id),
                 cmd_func=save_handle.establish_save,
                 args=(self.text, ),
             )
             re_write_save_button.width = self.width
             re_write_save_button.draw()
             now_ask_list.append(str(now_id))
             line_feed.draw()
             now_id += 1
         delete_save_button = draw.Button(text_handle.id_index(now_id) +
                                          _("删除"),
                                          str(now_id),
                                          cmd_func=self.delete_save)
         delete_save_button.width = self.width
         delete_save_button.draw()
         now_ask_list.append(str(now_id))
         now_id += 1
         line_feed.draw()
         back_button = draw.Button(
             text_handle.id_index(now_id) + _("返回"), str(now_id))
         back_button.width = self.width
         back_button.draw()
         line_feed.draw()
         now_ask_list.append(str(now_id))
         flow_handle.askfor_all(now_ask_list)
         py_cmd.clr_cmd()
     else:
         save_handle.establish_save(self.text)
コード例 #4
0
 def __init__(self, text: str, width: int, is_button: bool,
              num_button: bool, button_id: int):
     """ 初始化绘制对象 """
     self.language_id: int = text[0]
     """ 语言id """
     self.language_exp: int = text[1]
     """ 语言经验 """
     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)
     """ 按钮返回值 """
     self.draw_list: List[draw.NormalDraw] = []
     """ 绘制的对象列表 """
     language_config = game_config.config_language[self.language_id]
     language_name = language_config.name
     name_draw = draw.NormalDraw()
     name_draw.width = self.width
     if is_button:
         button_text = ""
         if num_button:
             index_text = text_handle.id_index(button_id)
             button_text = f"{index_text} {language_name}:"
             name_draw = draw.Button(button_text,
                                     self.button_return,
                                     cmd_func=self.see_language_info)
         else:
             button_text = f"{language_name}:"
             name_draw = draw.Button(button_text,
                                     language_name,
                                     cmd_func=self.see_language_info)
             self.button_return = language_name
     else:
         name_draw.text = f"{language_name}:"
     level_draw = draw.ExpLevelDraw(self.language_exp)
     name_draw.width = self.width - len(level_draw)
     self.draw_list = [name_draw, level_draw]
コード例 #5
0
ファイル: see_save_info_panel.py プロジェクト: gin234/dieloli
 def draw(self):
     """ 绘制对象 """
     if self.is_button and (self.save_exist_judge or self.write_save):
         now_draw = draw.Button(self.draw_text,
                                self.button_return,
                                cmd_func=self.draw_save_handle)
     else:
         now_draw = draw.NormalDraw()
         now_draw.text = self.draw_text
     now_draw.width = self.width
     now_draw.draw()
コード例 #6
0
 def draw(self):
     """ 绘制道具 """
     if self.is_button:
         now_draw = draw.Button(self.draw_text,
                                self.button_return,
                                cmd_func=self.draw_item_info)
     else:
         now_draw = draw.NormalDraw()
         now_draw.text = self.draw_text
     now_draw.width = self.width
     now_draw.draw()
コード例 #7
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()
コード例 #8
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()
コード例 #9
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()
コード例 #10
0
 def set(
     self,
     button_list: List[str],
     return_list: List[str],
     normal_style="standard",
     onbutton_style="onbutton",
 ):
     """
     设置按钮和返回列表
     Keyword arguments:
     button_list -- 按钮列表
     return_list -- 返回列表
     normal_style -- 按钮通常样式
     onbutton_style -- 鼠标悬停时样式
     """
     for i in range(len(button_list)):
         if i <= self.max_height:
             draw_button = draw.Button(button_list[i], return_list[i], normal_style, onbutton_style)
             draw_button.width = self.width
             self.button_list.append(draw_button)
         self.return_list[return_list[i]] = button_list[i]
コード例 #11
0
 def draw(self):
     """ 绘制对象 """
     move_menu_panel_data = {
         0: MapSceneNameDraw(self.now_map, self.width),
         1: GlobalSceneNamePanel(self.now_map, self.width),
         2: SocialSceneNamePanel(self.now_map, self.width),
         3: CollectionSceneNamePanel(self.now_map, self.width),
     }
     move_menu_panel = MoveMenuPanel(self.width)
     while 1:
         line_feed.draw()
         if cache.now_panel_id != constant.Panel.SEE_MAP:
             break
         map_path_str = map_handle.get_map_system_path_str_for_list(
             self.now_map)
         map_data: game_type.Map = cache.map_data[map_path_str]
         map_name = attr_text.get_map_path_text(self.now_map)
         title_draw = draw.TitleLineDraw(_("移动:") + map_name, self.width)
         title_draw.draw()
         now_draw_list: game_type.MapDraw = map_data.map_draw
         character_data: game_type.Character = cache.character_data[0]
         character_scene_id = map_handle.get_map_scene_id_for_scene_path(
             self.now_map, character_data.position)
         return_list = []
         index = 0
         for now_draw_line in now_draw_list.draw_text:
             fix_width = int((self.width - now_draw_line.width) / 2)
             fix_text = " " * fix_width
             fix_draw = draw.NormalDraw()
             fix_draw.text = fix_text
             fix_draw.width = fix_width
             fix_draw.draw()
             for draw_text in now_draw_line.draw_list:
                 if draw_text.is_button and draw_text.text != character_scene_id:
                     scene_path = map_handle.get_scene_path_for_map_scene_id(
                         self.now_map, draw_text.text)
                     now_draw = draw.Button(draw_text.text,
                                            draw_text.text,
                                            cmd_func=self.move_now,
                                            args=(scene_path, ))
                     now_draw.width = self.width
                     now_draw.draw()
                     return_list.append(now_draw.return_text)
                 else:
                     now_draw = draw.NormalDraw()
                     now_draw.text = draw_text.text
                     now_draw.width = self.width
                     if draw_text.is_button and draw_text.text == character_scene_id:
                         now_draw.style = "nowmap"
                     now_draw.draw()
             line_feed.draw()
         path_edge = map_data.path_edge
         scene_path = path_edge[character_scene_id].copy()
         if character_scene_id in scene_path:
             del scene_path[character_scene_id]
         scene_path_list = list(scene_path.keys())
         if len(scene_path_list):
             line = draw.LineDraw(".", self.width)
             line.draw()
             message_draw = draw.NormalDraw()
             message_draw.text = _("你可以从这里前往:\n")
             message_draw.width = self.width
             message_draw.draw()
             draw_list = []
             for scene in scene_path_list:
                 load_scene_data = map_handle.get_scene_data_for_map(
                     map_path_str, scene)
                 now_scene_path = map_handle.get_map_system_path_for_str(
                     load_scene_data.scene_path)
                 now_draw = draw.CenterButton(
                     f"[{load_scene_data.scene_name}]",
                     load_scene_data.scene_name,
                     self.width / 4,
                     cmd_func=self.move_now,
                     args=(now_scene_path, ),
                 )
                 return_list.append(now_draw.return_text)
                 draw_list.append(now_draw)
             draw_group = value_handle.list_of_groups(draw_list, 4)
             for now_draw_list in draw_group:
                 for now_draw in now_draw_list:
                     now_draw.draw()
                 line_feed.draw()
         scene_id_list = list(path_edge.keys())
         now_index = len(scene_id_list)
         index = now_index
         move_menu_panel.update()
         move_menu_panel.draw()
         return_list.extend(move_menu_panel.return_list)
         if move_menu_panel.now_type in move_menu_panel_data:
             now_move_menu = move_menu_panel_data[move_menu_panel.now_type]
             now_move_menu.update(self.now_map, index)
             now_move_menu.draw()
             now_index = now_move_menu.end_index + 1
             return_list.extend(now_move_menu.return_list)
         line = draw.LineDraw("=", self.width)
         line.draw()
         if self.now_map != []:
             now_id = text_handle.id_index(now_index)
             now_text = now_id + _("查看上级地图")
             up_button = draw.CenterButton(now_text,
                                           str(now_index),
                                           self.width / 3,
                                           cmd_func=self.up_map)
             up_button.draw()
             return_list.append(up_button.return_text)
             now_index += 1
         else:
             now_draw = draw.NormalDraw()
             now_draw.text = " " * int(self.width / 3)
             now_draw.width = self.width / 3
             now_draw.draw()
         back_id = text_handle.id_index(now_index)
         now_text = back_id + _("返回")
         back_button = draw.CenterButton(now_text, str(now_index),
                                         self.width / 3)
         back_button.draw()
         return_list.append(back_button.return_text)
         now_index += 1
         character_map = map_handle.get_map_for_path(
             character_data.position)
         if character_map != self.now_map:
             now_id = text_handle.id_index(now_index)
             now_text = now_id + _("查看下级地图")
             down_button = draw.CenterButton(now_text,
                                             str(now_index),
                                             self.width / 3,
                                             cmd_func=self.down_map)
             down_button.draw()
             return_list.append(down_button.return_text)
         line_feed.draw()
         yrn = flow_handle.askfor_all(return_list)
         py_cmd.clr_cmd()
         if yrn == back_button.return_text:
             cache.now_panel_id = constant.Panel.IN_SCENE
             break