装扮选项属性 = { "神器": { "智力": 65, "体力": 65, "精神": 65, "力量": 65, "施放速度": 0.14, "移动速度": 0.07, "攻击速度": 0.07, "火属性抗性": 45, "光属性抗性": 45, "冰属性抗性": 45, "暗属性抗性": 45, "所有异常抗性": 0.042 }, "稀有": { "智力": 55, "体力": 55, "精神": 55, "力量": 55, "施放速度": 0.12, "移动速度": 0.06, "攻击速度": 0.06, "火属性抗性": 35, "光属性抗性": 35, "冰属性抗性": 35, "暗属性抗性": 35, "所有异常抗性": 0.036 }, "高级": { "智力": 45, "体力": 45, "精神": 45, "力量": 45, "施放速度": 0.12, "移动速度": 0.05, "攻击速度": 0.05, "火属性抗性": 25, "光属性抗性": 25, "冰属性抗性": 25, "暗属性抗性": 25, "所有异常抗性": 0.03 } } class 装扮: 部位: str 品质: str 套装: str 选项集合: tuple[str] def 效果(self, 角色, 选项: str): if 选项 in self.选项集合: 数值 = 装扮选项属性[self.品质][选项] 角色.SetStatus(**{选项: 数值}) elif str(选项) == '0': pass else: skill = 角色.GetSkillByName(选项) if skill is not None: skill.lv += 1 class 神器装扮头发(装扮): 部位 = "头发" 品质 = "神器" 套装 = "神器装扮" id = 1 选项集合 = ("智力", "精神", "施放速度") class 神器装扮帽子(装扮): 部位 = "帽子" 品质 = "神器" 套装 = "神器装扮" 选项集合 = ("智力", "精神", "施放速度") class 神器装扮脸部(装扮): 部位 = "脸部" 品质 = "神器" 套装 = "神器装扮" # 逗号不能删 选项集合 = ("攻击速度", "所有异常抗性") class 神器装扮胸部(装扮): 部位 = "胸部" 品质 = "神器" 套装 = "神器装扮" 选项集合 = ("攻击速度", "所有异常抗性") class 神器装扮上衣(装扮): 部位 = "上衣" 品质 = "神器" 套装 = "神器装扮" 选项集合 = () class 神器装扮腰带(装扮): 部位 = "腰带" 品质 = "神器" 套装 = "神器装扮" 选项集合 = ("力量", "体力", "火属性抗性", "光属性抗性", "冰属性抗性", "暗属性抗性") class 神器装扮下装(装扮): 部位 = "下装" 品质 = "神器" 套装 = "神器装扮" 选项集合 = () class 神器装扮鞋(装扮): 部位 = "鞋" 品质 = "神器" 套装 = "神器装扮" 选项集合 = ("力量", "体力", "移动速度") class 稀有装扮头发(装扮): 部位 = "头发" 品质 = "稀有" 套装 = "稀有装扮" 选项集合 = ("智力", "精神", "施放速度") class 稀有装扮帽子(装扮): 部位 = "帽子" 品质 = "稀有" 套装 = "稀有装扮" 选项集合 = ("智力", "精神", "施放速度") class 稀有装扮脸部(装扮): 部位 = "脸部" 品质 = "稀有" 套装 = "稀有装扮" 选项集合 = ("攻击速度", "所有异常抗性") class 稀有装扮胸部(装扮): 部位 = "胸部" 品质 = "稀有" 套装 = "稀有装扮" 选项集合 = ("攻击速度", "所有异常抗性") class 稀有装扮上衣(装扮): 部位 = "上衣" 品质 = "稀有" 套装 = "稀有装扮" 选项集合 = () class 稀有装扮腰带(装扮): 部位 = "腰带" 品质 = "稀有" 套装 = "稀有装扮" 选项集合 = ("力量", "体力", "火属性抗性", "光属性抗性", "冰属性抗性", "暗属性抗性") class 稀有装扮下装(装扮): 部位 = "下装" 品质 = "稀有" 套装 = "稀有装扮" 选项集合 = () class 稀有装扮鞋(装扮): 部位 = "鞋" 品质 = "稀有" 套装 = "稀有装扮" 选项集合 = ("力量", "体力", "移动速度") class 高级装扮头发(装扮): 部位 = "头发" 品质 = "高级" 套装 = "高级装扮" 选项集合 = ("智力", "精神", "施放速度") class 高级装扮帽子(装扮): 部位 = "帽子" 品质 = "高级" 套装 = "高级装扮" 选项集合 = ("智力", "精神", "施放速度") class 高级装扮脸部(装扮): 部位 = "脸部" 品质 = "高级" 套装 = "高级装扮" 选项集合 = ("攻击速度", "所有异常抗性") class 高级装扮胸部(装扮): 部位 = "胸部" 品质 = "高级" 套装 = "高级装扮" 选项集合 = ("攻击速度", "所有异常抗性") class 高级装扮上衣(装扮): 部位 = "上衣" 品质 = "高级" 套装 = "高级装扮" 选项集合 = () class 高级装扮腰带(装扮): 部位 = "腰带" 品质 = "高级" 套装 = "高级装扮" 选项集合 = ("力量", "体力", "火属性抗性", "光属性抗性", "冰属性抗性", "暗属性抗性") class 高级装扮下装(装扮): 部位 = "下装" 品质 = "高级" 套装 = "高级装扮" 选项集合 = () class 高级装扮鞋(装扮): 部位 = "鞋" 品质 = "高级" 套装 = "高级装扮" 选项集合 = ("力量", "体力", "移动速度") 神器装扮集合 = (神器装扮头发, 神器装扮帽子, 神器装扮脸部, 神器装扮胸部, 神器装扮上衣, 神器装扮腰带, 神器装扮下装, 神器装扮鞋) 稀有装扮集合 = (稀有装扮头发, 稀有装扮帽子, 稀有装扮脸部, 稀有装扮胸部, 稀有装扮上衣, 稀有装扮腰带, 稀有装扮下装, 稀有装扮鞋) 高级装扮集合 = (高级装扮头发, 高级装扮帽子, 高级装扮脸部, 高级装扮胸部, 高级装扮上衣, 高级装扮腰带, 高级装扮下装, 高级装扮鞋) 装扮集合 = tuple(map(lambda x: x(), (神器装扮集合 + 稀有装扮集合 + 高级装扮集合))) class 装扮套装: 名称: str 兼容于: str = None 所需数量: int def 效果(self, 属性): pass class 神器装扮3(装扮套装): 名称 = "神器装扮" 兼容于 = "稀有装扮" 所需数量 = 3 def 效果(self, 属性): # print("effect unique suit 3") 属性.SetStatus(四维=50, 三速=0.03) class 神器装扮8(装扮套装): 名称 = "神器装扮" 兼容于 = "稀有装扮" 所需数量 = 8 def 效果(self, 属性): # print("effect unique suit 8") 属性.SetStatus(四维=50, 三速=0.03) 属性.AddElementDB('火',10) 属性.AddElementDB('光',10) 属性.AddElementDB('冰',10) 属性.AddElementDB('暗',10) # 属性.所有属性强化加成(10) # 属性.所有属性抗性加成(15) class 稀有装扮3(装扮套装): 名称 = "稀有装扮" 所需数量 = 3 def 效果(self, 属性): # print("effect rare suit 3") 属性.SetStatus(四维=40, 三速=0.02) class 稀有装扮8(装扮套装): 名称 = "稀有装扮" 所需数量 = 8 def 效果(self, 属性): # print("effect rare suit 8") 属性.SetStatus(四维=40, 三速=0.02) 属性.AddElementDB('火',6) 属性.AddElementDB('光',6) 属性.AddElementDB('冰',6) 属性.AddElementDB('暗',6) class 节日装扮8(装扮套装): 名称 = "节日装扮" 所需数量 = 8 def 效果(self, 属性): 属性.SetStatus(四维=25, 三速=0.02) class 高级装扮3(装扮套装): 名称 = "高级装扮" 所需数量 = 3 def 效果(self, 属性): # print("effect uncommon suit 3") 属性.SetStatus(四维=10) class 高级装扮8(装扮套装): 名称 = "高级装扮" 所需数量 = 8 def 效果(self, 属性): # print("effect uncommon suit 8") 属性.SetStatus(四维=10, 三速=0.01) 装扮套装集合 = tuple( map(lambda x: x(), (神器装扮3, 神器装扮8, 稀有装扮3, 稀有装扮8, 节日装扮8, 高级装扮3, 高级装扮8))) def get_dress_list(skills_coat:list[str] = [],skills_pants:list[str] = []) -> dict: """ 获取装扮列表 :param info: 装扮信息 :return: 装扮列表 """ dress_list = {} for dress in 装扮集合: 部位 = dress.部位 if 部位 not in dress_list: dress_list[部位] = [] 选项集合 = dress.选项集合 if dress.部位 == "上衣": 选项集合 = 选项集合 + tuple(skills_coat) elif dress.部位 == "下装": 选项集合 = 选项集合 + tuple(skills_pants) data = {} data["id"] = len(dress_list[部位]) data["options"] = 选项集合 data["part"] = 部位 data["rarity"] = dress.品质 data["suit"] = dress.套装 data["name"] = f"{dress.品质}装扮{dress.部位}" dress_list[部位].append(data) return dress_list def calc_dress_effect(avatar,char): """ 计算装扮效果 """ 时装品级列表 = {} for 部位 in avatar: id = avatar[部位].get("id") if id is None or id == '': continue 时装 = 装扮集合[int(id)] 时装.效果(角色=char, 选项=avatar[部位].get("option")) 时装品级列表[时装.套装] = 时装品级列表.get(时装.套装, 0) + 1 套装集合: list[装扮套装] = [] for 套装 in 装扮套装集合: 数量 = 时装品级列表.get(套装.名称, 0) if 数量 > 0: if 数量 >= 套装.所需数量: 查找 = len( [ i for i in 套装集合 if hasattr(i, "兼容于") and i.兼容于 == 套装.名称 and i.所需数量 == 套装.所需数量 ] ) if 查找 == 0: 套装集合.append(套装) else: if hasattr(套装, "兼容于") and 套装.兼容于 is not None: 数量 += 时装品级列表.get(套装.兼容于, 0) 时装品级列表[套装.兼容于] = 数量 时装品级列表.pop(套装.名称) for 套装 in 套装集合: 套装.效果(char)