From 04b5b3185230a5cb49a40a16314ce7b692e99d37 Mon Sep 17 00:00:00 2001 From: CMHopeSunshine <277073121@qq.com> Date: Thu, 25 Aug 2022 13:26:52 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E4=BC=98=E5=8C=96`ysd`=E5=8D=A1?= =?UTF-8?q?=E7=89=87=E5=92=8C=E9=83=A8=E5=88=86=E6=B6=88=E6=81=AF=E6=8F=90?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LittlePaimon/__init__.py | 2 +- LittlePaimon/config/data/enka_icon.json | 1770 ----------------- LittlePaimon/config/data/genshin_info.json | 1429 +++++++++++++ LittlePaimon/database/models/character.py | 19 +- .../plugins/Paimon_Info/damage_model.py | 26 +- .../Paimon_Info/draw_character_detail.py | 273 ++- LittlePaimon/utils/alias.py | 31 +- LittlePaimon/utils/genshin_api.py | 2 +- LittlePaimon/utils/message.py | 12 +- 9 files changed, 1605 insertions(+), 1959 deletions(-) delete mode 100644 LittlePaimon/config/data/enka_icon.json create mode 100644 LittlePaimon/config/data/genshin_info.json diff --git a/LittlePaimon/__init__.py b/LittlePaimon/__init__.py index 4d3e681..9408110 100644 --- a/LittlePaimon/__init__.py +++ b/LittlePaimon/__init__.py @@ -7,7 +7,7 @@ from LittlePaimon.utils.migration import migrate_database from LittlePaimon.utils.tool import check_resource DRIVER = get_driver() -__version__ = '3.0.0beta1' +__version__ = '3.0.0beta2' try: SUPERUSERS: List[int] = [int(s) for s in DRIVER.config.superusers] diff --git a/LittlePaimon/config/data/enka_icon.json b/LittlePaimon/config/data/enka_icon.json deleted file mode 100644 index c62ca22..0000000 --- a/LittlePaimon/config/data/enka_icon.json +++ /dev/null @@ -1,1770 +0,0 @@ -{ - "10000002": { - "Element": "Ice", - "Consts": [ - "UI_Talent_S_Ayaka_01", - "UI_Talent_S_Ayaka_02", - "UI_Talent_U_Ayaka_02", - "UI_Talent_S_Ayaka_03", - "UI_Talent_U_Ayaka_01", - "UI_Talent_S_Ayaka_04" - ], - "SkillOrder": [ - 10024, - 10018, - 10019 - ], - "Skills": { - "10018": "Skill_S_Ayaka_01", - "10019": "Skill_E_Ayaka", - "10024": "Skill_A_01" - }, - "ProudMap": { - "10018": 232, - "10019": 239, - "10024": 231 - }, - "NameTextMapHash": 1006042610, - "SideIconName": "UI_AvatarIcon_Side_Ayaka", - "QualityType": "QUALITY_ORANGE" - }, - "10000003": { - "Element": "Wind", - "Consts": [ - "UI_Talent_S_Qin_01", - "UI_Talent_S_Qin_02", - "UI_Talent_U_Qin_02", - "UI_Talent_S_Qin_03", - "UI_Talent_U_Qin_01", - "UI_Talent_S_Qin_04" - ], - "SkillOrder": [ - 10031, - 10033, - 10034 - ], - "Skills": { - "10031": "Skill_A_01", - "10033": "Skill_S_Qin_02", - "10034": "Skill_E_Qin_01" - }, - "ProudMap": { - "10031": 331, - "10033": 332, - "10034": 339 - }, - "NameTextMapHash": 3221566250, - "SideIconName": "UI_AvatarIcon_Side_Qin", - "QualityType": "QUALITY_ORANGE", - "Costumes": { - "200301": { - "sideIconName": "UI_AvatarIcon_Side_QinCostumeSea", - "icon": "UI_AvatarIcon_QinCostumeSea", - "art": "UI_Costume_QinCostumeSea", - "avatarId": 10000003 - }, - "200302": { - "sideIconName": "UI_AvatarIcon_Side_QinCostumeWic", - "icon": "UI_AvatarIcon_QinCostumeWic", - "art": "UI_Costume_QinCostumeWic", - "avatarId": 10000003 - } - } - }, - "10000005": { - "Element": "Wind", - "Consts": [ - "UI_Talent_S_PlayerWind_01", - "UI_Talent_S_PlayerWind_02", - "UI_Talent_U_PlayerWind_02", - "UI_Talent_S_PlayerWind_03", - "UI_Talent_U_PlayerWind_01", - "UI_Talent_S_PlayerWind_04" - ], - "SkillOrder": [ - 100543, - 10067, - 10068 - ], - "Skills": { - "10067": "Skill_S_PlayerWind_01", - "10068": "Skill_E_PlayerWind_01", - "100543": "Skill_A_01" - }, - "NameTextMapHash": 1533656818, - "ProudMap": { - "10067": 732, - "10068": 739, - "100543": 730 - }, - "SideIconName": "UI_AvatarIcon_Side_PlayerBoy", - "QualityType": "QUALITY_ORANGE" - }, - "10000006": { - "Element": "Electric", - "Consts": [ - "UI_Talent_S_Lisa_01", - "UI_Talent_S_Lisa_02", - "UI_Talent_U_Lisa_02", - "UI_Talent_S_Lisa_03", - "UI_Talent_U_Lisa_01", - "UI_Talent_S_Lisa_04" - ], - "SkillOrder": [ - 10060, - 10061, - 10062 - ], - "Skills": { - "10060": "Skill_A_Catalyst_MD", - "10061": "Skill_S_Lisa_01", - "10062": "Skill_E_Lisa_01" - }, - "ProudMap": { - "10060": 431, - "10061": 432, - "10062": 439 - }, - "NameTextMapHash": 3344622722, - "SideIconName": "UI_AvatarIcon_Side_Lisa", - "QualityType": "QUALITY_PURPLE" - }, - "10000007": { - "Element": "Wind", - "Consts": [ - "UI_Talent_S_PlayerWind_01", - "UI_Talent_S_PlayerWind_02", - "UI_Talent_U_PlayerWind_02", - "UI_Talent_S_PlayerWind_03", - "UI_Talent_U_PlayerWind_01", - "UI_Talent_S_PlayerWind_04" - ], - "SkillOrder": [ - 100553, - 10067, - 10068 - ], - "Skills": { - "10067": "Skill_S_PlayerWind_01", - "10068": "Skill_E_PlayerWind_01", - "100553": "Skill_A_01" - }, - "NameTextMapHash": 3816664530, - "ProudMap": { - "10067": 732, - "10068": 739, - "100553": 731 - }, - "SideIconName": "UI_AvatarIcon_Side_PlayerGirl", - "QualityType": "QUALITY_ORANGE" - }, - "10000014": { - "Element": "Water", - "Consts": [ - "UI_Talent_S_Barbara_01", - "UI_Talent_S_Barbara_02", - "UI_Talent_U_Barbara_02", - "UI_Talent_S_Barbara_03", - "UI_Talent_U_Barbara_01", - "UI_Talent_S_Barbara_04" - ], - "SkillOrder": [ - 10070, - 10071, - 10072 - ], - "Skills": { - "10070": "Skill_A_Catalyst_MD", - "10071": "Skill_S_Barbara_01", - "10072": "Skill_E_Barbara_01" - }, - "ProudMap": { - "10070": 1431, - "10071": 1432, - "10072": 1439 - }, - "NameTextMapHash": 3775299170, - "SideIconName": "UI_AvatarIcon_Side_Barbara", - "QualityType": "QUALITY_PURPLE", - "Costumes": { - "201401": { - "sideIconName": "UI_AvatarIcon_Side_BarbaraCostumeSummertime", - "icon": "UI_AvatarIcon_BarbaraCostumeSummertime", - "art": "UI_Costume_BarbaraCostumeSummertime", - "avatarId": 10000014 - } - } - }, - "10000015": { - "Element": "Ice", - "Consts": [ - "UI_Talent_S_Kaeya_01", - "UI_Talent_S_Kaeya_02", - "UI_Talent_U_Kaeya_01", - "UI_Talent_S_Kaeya_03", - "UI_Talent_U_Kaeya_02", - "UI_Talent_S_Kaeya_04" - ], - "SkillOrder": [ - 10073, - 10074, - 10075 - ], - "Skills": { - "10073": "Skill_A_01", - "10074": "Skill_S_Kaeya_01", - "10075": "Skill_E_Kaeya_01" - }, - "ProudMap": { - "10073": 1531, - "10074": 1532, - "10075": 1539 - }, - "NameTextMapHash": 4119663210, - "SideIconName": "UI_AvatarIcon_Side_Kaeya", - "QualityType": "QUALITY_PURPLE" - }, - "10000016": { - "Element": "Fire", - "Consts": [ - "UI_Talent_S_Diluc_01", - "UI_Talent_S_Diluc_02", - "UI_Talent_U_Diluc_01", - "UI_Talent_S_Diluc_03", - "UI_Talent_U_Diluc_02", - "UI_Talent_S_Diluc_04" - ], - "SkillOrder": [ - 10160, - 10161, - 10165 - ], - "Skills": { - "10160": "Skill_A_04", - "10161": "Skill_S_Diluc_01_01", - "10165": "Skill_E_Diluc_01" - }, - "ProudMap": { - "10160": 1631, - "10161": 1632, - "10165": 1639 - }, - "NameTextMapHash": 3608180322, - "SideIconName": "UI_AvatarIcon_Side_Diluc", - "QualityType": "QUALITY_ORANGE", - "Costumes": { - "201601": { - "sideIconName": "UI_AvatarIcon_Side_DilucCostumeFlamme", - "icon": "UI_AvatarIcon_DilucCostumeFlamme", - "art": "UI_Costume_DilucCostumeFlamme", - "avatarId": 10000016 - } - } - }, - "10000020": { - "Element": "Electric", - "Consts": [ - "UI_Talent_S_Razor_01", - "UI_Talent_S_Razor_02", - "UI_Talent_U_Razor_02", - "UI_Talent_S_Razor_03", - "UI_Talent_U_Razor_01", - "UI_Talent_S_Razor_04" - ], - "SkillOrder": [ - 10201, - 10202, - 10203 - ], - "Skills": { - "10201": "Skill_A_04", - "10202": "Skill_S_Razor_01", - "10203": "Skill_E_Razor_01" - }, - "ProudMap": { - "10201": 2031, - "10202": 2032, - "10203": 2039 - }, - "NameTextMapHash": 4160147242, - "SideIconName": "UI_AvatarIcon_Side_Razor", - "QualityType": "QUALITY_PURPLE" - }, - "10000021": { - "Element": "Fire", - "Consts": [ - "UI_Talent_S_Ambor_01", - "UI_Talent_S_Ambor_02", - "UI_Talent_U_Ambor_02", - "UI_Talent_S_Ambor_03", - "UI_Talent_U_Ambor_01", - "UI_Talent_S_Ambor_04" - ], - "SkillOrder": [ - 10041, - 10032, - 10017 - ], - "Skills": { - "10017": "Skill_E_Ambor", - "10032": "Skill_S_Ambor_01", - "10041": "Skill_A_02" - }, - "ProudMap": { - "10017": 2139, - "10032": 2132, - "10041": 2131 - }, - "NameTextMapHash": 1966438658, - "SideIconName": "UI_AvatarIcon_Side_Ambor", - "QualityType": "QUALITY_PURPLE", - "Costumes": { - "202101": { - "sideIconName": "UI_AvatarIcon_Side_AmborCostumeWic", - "icon": "UI_AvatarIcon_AmborCostumeWic", - "art": "UI_Costume_AmborCostumeWic", - "avatarId": 10000021 - } - } - }, - "10000022": { - "Element": "Wind", - "Consts": [ - "UI_Talent_S_Venti_01", - "UI_Talent_S_Venti_02", - "UI_Talent_U_Venti_02", - "UI_Talent_S_Venti_03", - "UI_Talent_U_Venti_01", - "UI_Talent_S_Venti_04" - ], - "SkillOrder": [ - 10221, - 10224, - 10225 - ], - "Skills": { - "10221": "Skill_A_02", - "10224": "Skill_S_Venti_01", - "10225": "Skill_E_Venti_01" - }, - "ProudMap": { - "10221": 2231, - "10224": 2232, - "10225": 2239 - }, - "NameTextMapHash": 2466140362, - "SideIconName": "UI_AvatarIcon_Side_Venti", - "QualityType": "QUALITY_ORANGE" - }, - "10000023": { - "Element": "Fire", - "Consts": [ - "UI_Talent_S_Xiangling_01", - "UI_Talent_S_Xiangling_02", - "UI_Talent_U_Xiangling_02", - "UI_Talent_S_Xiangling_03", - "UI_Talent_U_Xiangling_01", - "UI_Talent_S_Xiangling_04" - ], - "SkillOrder": [ - 10231, - 10232, - 10235 - ], - "Skills": { - "10231": "Skill_A_03", - "10232": "Skill_S_Xiangling_01", - "10235": "Skill_E_Xiangling_01" - }, - "ProudMap": { - "10231": 2331, - "10232": 2332, - "10235": 2339 - }, - "NameTextMapHash": 1130996346, - "SideIconName": "UI_AvatarIcon_Side_Xiangling", - "QualityType": "QUALITY_PURPLE" - }, - "10000024": { - "Element": "Electric", - "Consts": [ - "UI_Talent_S_Beidou_02", - "UI_Talent_S_Beidou_01", - "UI_Talent_U_Beidou_01", - "UI_Talent_S_Beidou_03", - "UI_Talent_U_Beidou_02", - "UI_Talent_S_Beidou_04" - ], - "SkillOrder": [ - 10241, - 10242, - 10245 - ], - "Skills": { - "10241": "Skill_A_04", - "10242": "Skill_S_Beidou_01", - "10245": "Skill_E_Beidou_01" - }, - "ProudMap": { - "10241": 2431, - "10242": 2432, - "10245": 2439 - }, - "NameTextMapHash": 2646367730, - "SideIconName": "UI_AvatarIcon_Side_Beidou", - "QualityType": "QUALITY_PURPLE" - }, - "10000025": { - "Element": "Water", - "Consts": [ - "UI_Talent_S_Xingqiu_01", - "UI_Talent_S_Xingqiu_02", - "UI_Talent_U_Xingqiu_01", - "UI_Talent_S_Xingqiu_03", - "UI_Talent_U_Xingqiu_02", - "UI_Talent_S_Xingqiu_04" - ], - "SkillOrder": [ - 10381, - 10382, - 10385 - ], - "Skills": { - "10381": "Skill_A_01", - "10382": "Skill_S_Xingqiu_01", - "10385": "Skill_E_Xingqiu_01" - }, - "ProudMap": { - "10381": 2531, - "10382": 2532, - "10385": 2539 - }, - "NameTextMapHash": 4197635682, - "SideIconName": "UI_AvatarIcon_Side_Xingqiu", - "QualityType": "QUALITY_PURPLE" - }, - "10000026": { - "Element": "Wind", - "Consts": [ - "UI_Talent_S_Xiao_01", - "UI_Talent_S_Xiao_02", - "UI_Talent_U_Xiao_01", - "UI_Talent_S_Xiao_03", - "UI_Talent_U_Xiao_02", - "UI_Talent_S_Xiao_04" - ], - "SkillOrder": [ - 10261, - 10262, - 10265 - ], - "Skills": { - "10261": "Skill_A_03", - "10262": "Skill_S_Xiao_01", - "10265": "Skill_E_Xiao_01" - }, - "ProudMap": { - "10261": 2631, - "10262": 2632, - "10265": 2639 - }, - "NameTextMapHash": 1021947690, - "SideIconName": "UI_AvatarIcon_Side_Xiao", - "QualityType": "QUALITY_ORANGE" - }, - "10000027": { - "Element": "Rock", - "Consts": [ - "UI_Talent_S_Ningguang_01", - "UI_Talent_S_Ningguang_05", - "UI_Talent_U_Ningguang_02", - "UI_Talent_S_Ningguang_03", - "UI_Talent_U_Ningguang_01", - "UI_Talent_S_Ningguang_04" - ], - "SkillOrder": [ - 10271, - 10272, - 10274 - ], - "Skills": { - "10271": "Skill_A_Catalyst_MD", - "10272": "Skill_S_Ningguang_01", - "10274": "Skill_E_Ningguang_01" - }, - "ProudMap": { - "10271": 2731, - "10272": 2732, - "10274": 2739 - }, - "NameTextMapHash": 4127888970, - "SideIconName": "UI_AvatarIcon_Side_Ningguang", - "QualityType": "QUALITY_PURPLE", - "Costumes": { - "202701": { - "sideIconName": "UI_AvatarIcon_Side_NingguangCostumeFloral", - "icon": "UI_AvatarIcon_NingguangCostumeFloral", - "art": "UI_Costume_NingguangCostumeFloral", - "avatarId": 10000027 - } - } - }, - "10000029": { - "Element": "Fire", - "Consts": [ - "UI_Talent_S_Klee_01", - "UI_Talent_S_Klee_02", - "UI_Talent_U_Klee_01", - "UI_Talent_S_Klee_03", - "UI_Talent_U_Klee_02", - "UI_Talent_S_Klee_04" - ], - "SkillOrder": [ - 10291, - 10292, - 10295 - ], - "Skills": { - "10291": "Skill_A_Catalyst_MD", - "10292": "Skill_S_Klee_01", - "10295": "Skill_E_Klee_01" - }, - "ProudMap": { - "10291": 2931, - "10292": 2932, - "10295": 2939 - }, - "NameTextMapHash": 3339083250, - "SideIconName": "UI_AvatarIcon_Side_Klee", - "QualityType": "QUALITY_ORANGE" - }, - "10000030": { - "Element": "Rock", - "Consts": [ - "UI_Talent_S_Zhongli_01", - "UI_Talent_S_Zhongli_02", - "UI_Talent_U_Zhongli_01", - "UI_Talent_S_Zhongli_03", - "UI_Talent_U_Zhongli_02", - "UI_Talent_S_Zhongli_04" - ], - "SkillOrder": [ - 10301, - 10302, - 10303 - ], - "Skills": { - "10301": "Skill_A_03", - "10302": "Skill_S_Zhongli_01", - "10303": "Skill_E_Zhongli_01" - }, - "ProudMap": { - "10301": 3031, - "10302": 3032, - "10303": 3039 - }, - "NameTextMapHash": 3862787418, - "SideIconName": "UI_AvatarIcon_Side_Zhongli", - "QualityType": "QUALITY_ORANGE" - }, - "10000031": { - "Element": "Electric", - "Consts": [ - "UI_Talent_S_Fischl_01", - "UI_Talent_S_Fischl_02", - "UI_Talent_U_Fischl_01", - "UI_Talent_S_Fischl_03", - "UI_Talent_U_Fischl_02", - "UI_Talent_S_Fischl_04" - ], - "SkillOrder": [ - 10311, - 10312, - 10313 - ], - "Skills": { - "10311": "Skill_A_02", - "10312": "Skill_S_Fischl_01", - "10313": "Skill_E_Fischl_01" - }, - "ProudMap": { - "10311": 3131, - "10312": 3132, - "10313": 3139 - }, - "NameTextMapHash": 3277782506, - "SideIconName": "UI_AvatarIcon_Side_Fischl", - "QualityType": "QUALITY_PURPLE", - "Costumes": { - "203101": { - "sideIconName": "UI_AvatarIcon_Side_FischlCostumeHighness", - "icon": "UI_AvatarIcon_FischlCostumeHighness", - "art": "UI_Costume_FischlCostumeHighness", - "avatarId": 10000031 - } - } - }, - "10000032": { - "Element": "Fire", - "Consts": [ - "UI_Talent_S_Bennett_01", - "UI_Talent_S_Bennett_02", - "UI_Talent_U_Bennett_01", - "UI_Talent_S_Bennett_03", - "UI_Talent_U_Bennett_02", - "UI_Talent_S_Bennett_04" - ], - "SkillOrder": [ - 10321, - 10322, - 10323 - ], - "Skills": { - "10321": "Skill_A_01", - "10322": "Skill_S_Bennett_01", - "10323": "Skill_E_Bennett_01" - }, - "ProudMap": { - "10321": 3231, - "10322": 3232, - "10323": 3239 - }, - "NameTextMapHash": 968893378, - "SideIconName": "UI_AvatarIcon_Side_Bennett", - "QualityType": "QUALITY_PURPLE" - }, - "10000033": { - "Element": "Water", - "Consts": [ - "UI_Talent_S_Tartaglia_01", - "UI_Talent_S_Tartaglia_02", - "UI_Talent_U_Tartaglia_01", - "UI_Talent_S_Tartaglia_05", - "UI_Talent_U_Tartaglia_02", - "UI_Talent_S_Tartaglia_04" - ], - "SkillOrder": [ - 10331, - 10332, - 10333 - ], - "Skills": { - "10331": "Skill_A_02", - "10332": "Skill_S_Tartaglia_01", - "10333": "Skill_E_Tartaglia_01" - }, - "ProudMap": { - "10331": 3331, - "10332": 3332, - "10333": 3339 - }, - "NameTextMapHash": 3847143266, - "SideIconName": "UI_AvatarIcon_Side_Tartaglia", - "QualityType": "QUALITY_ORANGE" - }, - "10000034": { - "Element": "Rock", - "Consts": [ - "UI_Talent_S_Noel_01", - "UI_Talent_S_Noel_02", - "UI_Talent_U_Noel_01", - "UI_Talent_S_Noel_03", - "UI_Talent_U_Noel_02", - "UI_Talent_S_Noel_04" - ], - "SkillOrder": [ - 10341, - 10342, - 10343 - ], - "Skills": { - "10341": "Skill_A_04", - "10342": "Skill_S_Noel_01", - "10343": "Skill_E_Noel_01" - }, - "ProudMap": { - "10341": 3431, - "10342": 3432, - "10343": 3439 - }, - "NameTextMapHash": 1921418842, - "SideIconName": "UI_AvatarIcon_Side_Noel", - "QualityType": "QUALITY_PURPLE" - }, - "10000035": { - "Element": "Ice", - "Consts": [ - "UI_Talent_S_Qiqi_01", - "UI_Talent_S_Qiqi_02", - "UI_Talent_U_Qiqi_01", - "UI_Talent_S_Qiqi_03", - "UI_Talent_U_Qiqi_02", - "UI_Talent_S_Qiqi_04" - ], - "SkillOrder": [ - 10351, - 10352, - 10353 - ], - "Skills": { - "10351": "Skill_A_01", - "10352": "Skill_S_Qiqi_01", - "10353": "Skill_E_Qiqi_01" - }, - "ProudMap": { - "10351": 3531, - "10352": 3532, - "10353": 3539 - }, - "NameTextMapHash": 168956722, - "SideIconName": "UI_AvatarIcon_Side_Qiqi", - "QualityType": "QUALITY_ORANGE" - }, - "10000036": { - "Element": "Ice", - "Consts": [ - "UI_Talent_S_Chongyun_01", - "UI_Talent_S_Chongyun_02", - "UI_Talent_U_Chongyun_01", - "UI_Talent_S_Chongyun_03", - "UI_Talent_U_Chongyun_02", - "UI_Talent_S_Chongyun_04" - ], - "SkillOrder": [ - 10401, - 10402, - 10403 - ], - "Skills": { - "10401": "Skill_A_04", - "10402": "Skill_S_Chongyun_01", - "10403": "Skill_E_Chongyun_01" - }, - "ProudMap": { - "10401": 3631, - "10402": 3632, - "10403": 3639 - }, - "NameTextMapHash": 2876340530, - "SideIconName": "UI_AvatarIcon_Side_Chongyun", - "QualityType": "QUALITY_PURPLE" - }, - "10000037": { - "Element": "Ice", - "Consts": [ - "UI_Talent_S_Ganyu_01", - "UI_Talent_S_Ganyu_02", - "UI_Talent_U_Ganyu_01", - "UI_Talent_S_Ganyu_03", - "UI_Talent_U_Ganyu_02", - "UI_Talent_S_Ganyu_04" - ], - "SkillOrder": [ - 10371, - 10372, - 10373 - ], - "Skills": { - "10371": "Skill_A_02", - "10372": "Skill_S_Ganyu_01", - "10373": "Skill_E_Ganyu_01" - }, - "ProudMap": { - "10371": 3731, - "10372": 3732, - "10373": 3739 - }, - "NameTextMapHash": 2679781122, - "SideIconName": "UI_AvatarIcon_Side_Ganyu", - "QualityType": "QUALITY_ORANGE" - }, - "10000038": { - "Element": "Rock", - "Consts": [ - "UI_Talent_S_Albedo_01", - "UI_Talent_S_Albedo_02", - "UI_Talent_U_Albedo_01", - "UI_Talent_S_Albedo_03", - "UI_Talent_U_Albedo_02", - "UI_Talent_S_Albedo_04" - ], - "SkillOrder": [ - 10386, - 10387, - 10388 - ], - "Skills": { - "10386": "Skill_A_01", - "10387": "Skill_S_Albedo_01", - "10388": "Skill_E_Albedo_01" - }, - "ProudMap": { - "10386": 3831, - "10387": 3832, - "10388": 3839 - }, - "NameTextMapHash": 4108620722, - "SideIconName": "UI_AvatarIcon_Side_Albedo", - "QualityType": "QUALITY_ORANGE" - }, - "10000039": { - "Element": "Ice", - "Consts": [ - "UI_Talent_S_Diona_01", - "UI_Talent_S_Diona_02", - "UI_Talent_U_Diona_01", - "UI_Talent_S_Diona_03", - "UI_Talent_U_Diona_02", - "UI_Talent_S_Diona_04" - ], - "SkillOrder": [ - 10391, - 10392, - 10395 - ], - "Skills": { - "10391": "Skill_A_02", - "10392": "Skill_S_Diona_01", - "10395": "Skill_E_Diona_01" - }, - "ProudMap": { - "10391": 3931, - "10392": 3932, - "10395": 3939 - }, - "NameTextMapHash": 1468367538, - "SideIconName": "UI_AvatarIcon_Side_Diona", - "QualityType": "QUALITY_PURPLE" - }, - "10000041": { - "Element": "Water", - "Consts": [ - "UI_Talent_S_Mona_01", - "UI_Talent_S_Mona_02", - "UI_Talent_U_Mona_01", - "UI_Talent_S_Mona_03", - "UI_Talent_U_Mona_02", - "UI_Talent_S_Mona_04" - ], - "SkillOrder": [ - 10411, - 10412, - 10415 - ], - "Skills": { - "10411": "Skill_A_Catalyst_MD", - "10412": "Skill_S_Mona_01", - "10415": "Skill_E_Mona_01" - }, - "ProudMap": { - "10411": 4131, - "10412": 4132, - "10415": 4139 - }, - "NameTextMapHash": 1113306282, - "SideIconName": "UI_AvatarIcon_Side_Mona", - "QualityType": "QUALITY_ORANGE", - "Costumes": { - "204101": { - "sideIconName": "UI_AvatarIcon_Side_MonaCostumeWic", - "icon": "UI_AvatarIcon_MonaCostumeWic", - "art": "UI_Costume_MonaCostumeWic", - "avatarId": 10000041 - } - } - }, - "10000042": { - "Element": "Electric", - "Consts": [ - "UI_Talent_S_Keqing_01", - "UI_Talent_S_Keqing_02", - "UI_Talent_U_Keqing_01", - "UI_Talent_S_Keqing_03", - "UI_Talent_U_Keqing_02", - "UI_Talent_S_Keqing_04" - ], - "SkillOrder": [ - 10421, - 10422, - 10425 - ], - "Skills": { - "10421": "Skill_A_01", - "10422": "Skill_S_Keqing_01", - "10425": "Skill_E_Keqing_01" - }, - "ProudMap": { - "10421": 4231, - "10422": 4232, - "10425": 4239 - }, - "NameTextMapHash": 1864015138, - "SideIconName": "UI_AvatarIcon_Side_Keqing", - "QualityType": "QUALITY_ORANGE", - "Costumes": { - "204201": { - "sideIconName": "UI_AvatarIcon_Side_KeqingCostumeFeather", - "icon": "UI_AvatarIcon_KeqingCostumeFeather", - "art": "UI_Costume_KeqingCostumeFeather", - "avatarId": 10000042 - } - } - }, - "10000043": { - "Element": "Wind", - "Consts": [ - "UI_Talent_S_Sucrose_01", - "UI_Talent_S_Sucrose_02", - "UI_Talent_U_Sucrose_01", - "UI_Talent_S_Sucrose_03", - "UI_Talent_U_Sucrose_02", - "UI_Talent_S_Sucrose_04" - ], - "SkillOrder": [ - 10431, - 10432, - 10435 - ], - "Skills": { - "10431": "Skill_A_Catalyst_MD", - "10432": "Skill_S_Sucrose_01", - "10435": "Skill_E_Sucrose_01" - }, - "ProudMap": { - "10431": 4331, - "10432": 4332, - "10435": 4339 - }, - "NameTextMapHash": 1053433018, - "SideIconName": "UI_AvatarIcon_Side_Sucrose", - "QualityType": "QUALITY_PURPLE" - }, - "10000044": { - "Element": "Fire", - "Consts": [ - "UI_Talent_S_Xinyan_01", - "UI_Talent_S_Xinyan_02", - "UI_Talent_U_Xinyan_01", - "UI_Talent_S_Xinyan_03", - "UI_Talent_U_Xinyan_02", - "UI_Talent_S_Xinyan_04" - ], - "SkillOrder": [ - 10441, - 10442, - 10443 - ], - "Skills": { - "10441": "Skill_A_04", - "10442": "Skill_S_Xinyan_01", - "10443": "Skill_E_Xinyan_01" - }, - "ProudMap": { - "10441": 4431, - "10442": 4432, - "10443": 4439 - }, - "NameTextMapHash": 4273845410, - "SideIconName": "UI_AvatarIcon_Side_Xinyan", - "QualityType": "QUALITY_PURPLE" - }, - "10000045": { - "Element": "Ice", - "Consts": [ - "UI_Talent_S_Rosaria_01", - "UI_Talent_S_Rosaria_02", - "UI_Talent_U_Rosaria_01", - "UI_Talent_S_Rosaria_03", - "UI_Talent_U_Rosaria_02", - "UI_Talent_S_Rosaria_04" - ], - "SkillOrder": [ - 10451, - 10452, - 10453 - ], - "Skills": { - "10451": "Skill_A_03", - "10452": "Skill_S_Rosaria_01", - "10453": "Skill_E_Rosaria_01" - }, - "ProudMap": { - "10451": 4531, - "10452": 4532, - "10453": 4539 - }, - "NameTextMapHash": 4260733330, - "SideIconName": "UI_AvatarIcon_Side_Rosaria", - "QualityType": "QUALITY_PURPLE", - "Costumes": { - "204501": { - "sideIconName": "UI_AvatarIcon_Side_RosariaCostumeWic", - "icon": "UI_AvatarIcon_RosariaCostumeWic", - "art": "UI_Costume_RosariaCostumeWic", - "avatarId": 10000045 - } - } - }, - "10000046": { - "Element": "Fire", - "Consts": [ - "UI_Talent_S_Hutao_03", - "UI_Talent_S_Hutao_01", - "UI_Talent_U_Hutao_01", - "UI_Talent_S_Hutao_02", - "UI_Talent_U_Hutao_02", - "UI_Talent_S_Hutao_04" - ], - "SkillOrder": [ - 10461, - 10462, - 10463 - ], - "Skills": { - "10461": "Skill_A_03", - "10462": "Skill_S_Hutao_01", - "10463": "Skill_E_Hutao_01" - }, - "ProudMap": { - "10461": 4631, - "10462": 4632, - "10463": 4639 - }, - "NameTextMapHash": 1940919994, - "SideIconName": "UI_AvatarIcon_Side_Hutao", - "QualityType": "QUALITY_ORANGE" - }, - "10000047": { - "Element": "Wind", - "Consts": [ - "UI_Talent_S_Kazuha_01", - "UI_Talent_S_Kazuha_02", - "UI_Talent_U_Kazuha_01", - "UI_Talent_S_Kazuha_03", - "UI_Talent_U_Kazuha_02", - "UI_Talent_S_Kazuha_04" - ], - "SkillOrder": [ - 10471, - 10472, - 10475 - ], - "Skills": { - "10471": "Skill_A_01", - "10472": "Skill_S_Kazuha_01", - "10475": "Skill_E_Kazuha_01" - }, - "ProudMap": { - "10471": 4731, - "10472": 4732, - "10475": 4739 - }, - "NameTextMapHash": 88505754, - "SideIconName": "UI_AvatarIcon_Side_Kazuha", - "QualityType": "QUALITY_ORANGE" - }, - "10000048": { - "Element": "Fire", - "Consts": [ - "UI_Talent_S_Feiyan_01", - "UI_Talent_S_Feiyan_02", - "UI_Talent_U_Feiyan_01", - "UI_Talent_S_Feiyan_03", - "UI_Talent_U_Feiyan_02", - "UI_Talent_S_Feiyan_04" - ], - "SkillOrder": [ - 10481, - 10482, - 10485 - ], - "Skills": { - "10481": "Skill_A_Catalyst_MD", - "10482": "Skill_S_Feiyan_01", - "10485": "Skill_E_Feiyan_01" - }, - "ProudMap": { - "10481": 4831, - "10482": 4832, - "10485": 4839 - }, - "NameTextMapHash": 697277554, - "SideIconName": "UI_AvatarIcon_Side_Feiyan", - "QualityType": "QUALITY_PURPLE" - }, - "10000049": { - "Element": "Fire", - "Consts": [ - "UI_Talent_S_Yoimiya_01", - "UI_Talent_S_Yoimiya_02", - "UI_Talent_U_Yoimiya_01", - "UI_Talent_S_Yoimiya_03", - "UI_Talent_U_Yoimiya_02", - "UI_Talent_S_Yoimiya_04" - ], - "SkillOrder": [ - 10491, - 10492, - 10495 - ], - "Skills": { - "10491": "Skill_A_02", - "10492": "Skill_S_Yoimiya_01", - "10495": "Skill_E_Yoimiya_01" - }, - "ProudMap": { - "10491": 4931, - "10492": 4932, - "10495": 4939 - }, - "NameTextMapHash": 2504399314, - "SideIconName": "UI_AvatarIcon_Side_Yoimiya", - "QualityType": "QUALITY_ORANGE" - }, - "10000050": { - "Element": "Fire", - "Consts": [ - "UI_Talent_S_Tohma_01", - "UI_Talent_S_Tohma_02", - "UI_Talent_U_Tohma_01", - "UI_Talent_S_Tohma_03", - "UI_Talent_U_Tohma_02", - "UI_Talent_S_Tohma_04" - ], - "SkillOrder": [ - 10501, - 10502, - 10505 - ], - "Skills": { - "10501": "Skill_A_03", - "10502": "Skill_S_Tohma_01", - "10505": "Skill_E_Tohma_01" - }, - "ProudMap": { - "10501": 5031, - "10502": 5032, - "10505": 5039 - }, - "NameTextMapHash": 3555115602, - "SideIconName": "UI_AvatarIcon_Side_Tohma", - "QualityType": "QUALITY_PURPLE" - }, - "10000051": { - "Element": "Ice", - "Consts": [ - "UI_Talent_S_Eula_02", - "UI_Talent_S_Eula_01", - "UI_Talent_U_Eula_01", - "UI_Talent_S_Eula_03", - "UI_Talent_U_Eula_02", - "UI_Talent_S_Eula_04" - ], - "SkillOrder": [ - 10511, - 10512, - 10515 - ], - "Skills": { - "10511": "Skill_A_04", - "10512": "Skill_S_Eula_01", - "10515": "Skill_E_Eula_01" - }, - "ProudMap": { - "10511": 5131, - "10512": 5132, - "10515": 5139 - }, - "NameTextMapHash": 3717667418, - "SideIconName": "UI_AvatarIcon_Side_Eula", - "QualityType": "QUALITY_ORANGE" - }, - "10000052": { - "Element": "Electric", - "Consts": [ - "UI_Talent_S_Shougun_01", - "UI_Talent_S_Shougun_03", - "UI_Talent_U_Shougun_02", - "UI_Talent_S_Shougun_02", - "UI_Talent_U_Shougun_01", - "UI_Talent_S_Shougun_04" - ], - "SkillOrder": [ - 10521, - 10522, - 10525 - ], - "Skills": { - "10521": "Skill_A_03", - "10522": "Skill_S_Shougun_01", - "10525": "Skill_E_Shougun_01" - }, - "ProudMap": { - "10521": 5231, - "10522": 5232, - "10525": 5239 - }, - "NameTextMapHash": 3024507506, - "SideIconName": "UI_AvatarIcon_Side_Shougun", - "QualityType": "QUALITY_ORANGE" - }, - "10000053": { - "Element": "Wind", - "Consts": [ - "UI_Talent_S_Sayu_01", - "UI_Talent_S_Sayu_02", - "UI_Talent_U_Sayu_02", - "UI_Talent_S_Sayu_03", - "UI_Talent_U_Sayu_01", - "UI_Talent_S_Sayu_04" - ], - "SkillOrder": [ - 10531, - 10532, - 10535 - ], - "Skills": { - "10531": "Skill_A_04", - "10532": "Skill_S_Sayu_01", - "10535": "Skill_E_Sayu_01" - }, - "ProudMap": { - "10531": 5331, - "10532": 5332, - "10535": 5339 - }, - "NameTextMapHash": 2388785242, - "SideIconName": "UI_AvatarIcon_Side_Sayu", - "QualityType": "QUALITY_PURPLE" - }, - "10000054": { - "Element": "Water", - "Consts": [ - "UI_Talent_S_Kokomi_01", - "UI_Talent_S_Kokomi_02", - "UI_Talent_U_Kokomi_02", - "UI_Talent_S_Kokomi_03", - "UI_Talent_U_Kokomi_01", - "UI_Talent_S_Kokomi_04" - ], - "SkillOrder": [ - 10541, - 10542, - 10545 - ], - "Skills": { - "10541": "Skill_A_Catalyst_MD", - "10542": "Skill_S_Kokomi_01", - "10545": "Skill_E_Kokomi_01" - }, - "ProudMap": { - "10541": 5431, - "10542": 5432, - "10545": 5439 - }, - "NameTextMapHash": 3914045794, - "SideIconName": "UI_AvatarIcon_Side_Kokomi", - "QualityType": "QUALITY_ORANGE" - }, - "10000055": { - "Element": "Rock", - "Consts": [ - "UI_Talent_S_Gorou_01", - "UI_Talent_S_Gorou_02", - "UI_Talent_U_Gorou_01", - "UI_Talent_S_Gorou_03", - "UI_Talent_U_Gorou_02", - "UI_Talent_S_Gorou_04" - ], - "SkillOrder": [ - 10551, - 10552, - 10555 - ], - "Skills": { - "10551": "Skill_A_02", - "10552": "Skill_S_Gorou_01", - "10555": "Skill_E_Gorou_01" - }, - "ProudMap": { - "10551": 5531, - "10552": 5532, - "10555": 5539 - }, - "NameTextMapHash": 3400133546, - "SideIconName": "UI_AvatarIcon_Side_Gorou", - "QualityType": "QUALITY_PURPLE" - }, - "10000056": { - "Element": "Electric", - "Consts": [ - "UI_Talent_S_Sara_05", - "UI_Talent_S_Sara_02", - "UI_Talent_U_Sara_02", - "UI_Talent_S_Sara_03", - "UI_Talent_U_Sara_01", - "UI_Talent_S_Sara_04" - ], - "SkillOrder": [ - 10561, - 10562, - 10565 - ], - "Skills": { - "10561": "Skill_A_02", - "10562": "Skill_S_Sara_01", - "10565": "Skill_E_Sara_01" - }, - "ProudMap": { - "10561": 5631, - "10562": 5632, - "10565": 5639 - }, - "NameTextMapHash": 1483922610, - "SideIconName": "UI_AvatarIcon_Side_Sara", - "QualityType": "QUALITY_PURPLE" - }, - "10000057": { - "Element": "Rock", - "Consts": [ - "UI_Talent_S_Itto_01", - "UI_Talent_S_Itto_02", - "UI_Talent_U_Itto_01", - "UI_Talent_S_Itto_03", - "UI_Talent_U_Itto_02", - "UI_Talent_S_Itto_04" - ], - "SkillOrder": [ - 10571, - 10572, - 10575 - ], - "Skills": { - "10571": "Skill_A_04", - "10572": "Skill_S_Itto_01", - "10575": "Skill_E_Itto_01" - }, - "ProudMap": { - "10571": 5731, - "10572": 5732, - "10575": 5739 - }, - "NameTextMapHash": 3068316954, - "SideIconName": "UI_AvatarIcon_Side_Itto", - "QualityType": "QUALITY_ORANGE" - }, - "10000058": { - "Element": "Electric", - "Consts": [ - "UI_Talent_S_Yae_01", - "UI_Talent_S_Yae_02", - "UI_Talent_U_Yae_01", - "UI_Talent_S_Yae_03", - "UI_Talent_U_Yae_02", - "UI_Talent_S_Yae_04" - ], - "SkillOrder": [ - 10581, - 10582, - 10585 - ], - "Skills": { - "10581": "Skill_A_Catalyst_MD", - "10582": "Skill_S_Yae_01", - "10585": "Skill_E_Yae_01" - }, - "ProudMap": { - "10581": 5831, - "10582": 5832, - "10585": 5839 - }, - "NameTextMapHash": 2713453234, - "SideIconName": "UI_AvatarIcon_Side_Yae", - "QualityType": "QUALITY_ORANGE" - }, - "10000059": { - "Element": "Wind", - "Consts": [ - "UI_Talent_S_Heizo_01", - "UI_Talent_S_Heizo_02", - "UI_Talent_U_Heizo_01", - "UI_Talent_S_Heizo_03", - "UI_Talent_U_Heizo_02", - "UI_Talent_S_Heizo_04" - ], - "SkillOrder": [ - 10591, - 10592, - 10595 - ], - "Skills": { - "10591": "Skill_A_Catalyst_MD", - "10592": "Skill_S_Heizo_01", - "10595": "Skill_E_Heizo_01" - }, - "ProudMap": { - "10591": 5931, - "10592": 5932, - "10595": 5939 - }, - "NameTextMapHash": 646032090, - "SideIconName": "UI_AvatarIcon_Side_Heizo", - "QualityType": "QUALITY_PURPLE" - }, - "10000060": { - "Element": "Water", - "Consts": [ - "UI_Talent_S_Yelan_01", - "UI_Talent_S_Yelan_02", - "UI_Talent_U_Yelan_01", - "UI_Talent_S_Yelan_03", - "UI_Talent_U_Yelan_02", - "UI_Talent_S_Yelan_04" - ], - "SkillOrder": [ - 10606, - 10607, - 10610 - ], - "Skills": { - "10606": "Skill_A_02", - "10607": "Skill_S_Yelan_01", - "10610": "Skill_E_Yelan_01" - }, - "ProudMap": { - "10606": 6031, - "10607": 6032, - "10610": 6039 - }, - "NameTextMapHash": 2848374378, - "SideIconName": "UI_AvatarIcon_Side_Yelan", - "QualityType": "QUALITY_ORANGE" - }, - "10000062": { - "Element": "Ice", - "Consts": [ - "UI_Talent_S_Aloy_Lock", - "UI_Talent_S_Aloy_Lock", - "UI_Talent_S_Aloy_Lock", - "UI_Talent_S_Aloy_Lock", - "UI_Talent_S_Aloy_Lock", - "UI_Talent_S_Aloy_Lock" - ], - "SkillOrder": [ - 10621, - 10622, - 10625 - ], - "Skills": { - "10621": "Skill_A_02", - "10622": "Skill_S_Aloy_01", - "10625": "Skill_E_Aloy_01" - }, - "ProudMap": { - "10621": 6231, - "10622": 6232, - "10625": 6239 - }, - "NameTextMapHash": 3689108098, - "SideIconName": "UI_AvatarIcon_Side_Aloy", - "QualityType": "QUALITY_ORANGE_SP" - }, - "10000063": { - "Element": "Ice", - "Consts": [ - "UI_Talent_S_Shenhe_02", - "UI_Talent_S_Shenhe_01", - "UI_Talent_U_Shenhe_01", - "UI_Talent_S_Shenhe_03", - "UI_Talent_U_Shenhe_02", - "UI_Talent_S_Shenhe_04" - ], - "SkillOrder": [ - 10631, - 10632, - 10635 - ], - "Skills": { - "10631": "Skill_A_03", - "10632": "Skill_S_Shenhe_01", - "10635": "Skill_E_Shenhe_01" - }, - "ProudMap": { - "10631": 6331, - "10632": 6332, - "10635": 6339 - }, - "NameTextMapHash": 334242634, - "SideIconName": "UI_AvatarIcon_Side_Shenhe", - "QualityType": "QUALITY_ORANGE" - }, - "10000064": { - "Element": "Rock", - "Consts": [ - "UI_Talent_S_Yunjin_01", - "UI_Talent_S_Yunjin_02", - "UI_Talent_U_Yunjin_01", - "UI_Talent_S_Yunjin_03", - "UI_Talent_U_Yunjin_02", - "UI_Talent_S_Yunjin_04" - ], - "SkillOrder": [ - 10641, - 10642, - 10643 - ], - "Skills": { - "10641": "Skill_A_03", - "10642": "Skill_S_Yunjin_01", - "10643": "Skill_E_Yunjin_01" - }, - "ProudMap": { - "10641": 6431, - "10642": 6432, - "10643": 6439 - }, - "NameTextMapHash": 655825874, - "SideIconName": "UI_AvatarIcon_Side_Yunjin", - "QualityType": "QUALITY_PURPLE" - }, - "10000065": { - "Element": "Electric", - "Consts": [ - "UI_Talent_S_Shinobu_01", - "UI_Talent_S_Shinobu_02", - "UI_Talent_U_Shinobu_01", - "UI_Talent_S_Shinobu_03", - "UI_Talent_U_Shinobu_02", - "UI_Talent_S_Shinobu_04" - ], - "SkillOrder": [ - 10651, - 10652, - 10655 - ], - "Skills": { - "10651": "Skill_A_01", - "10652": "Skill_S_Shinobu_01", - "10655": "Skill_E_Shinobu_01" - }, - "ProudMap": { - "10651": 6531, - "10652": 6532, - "10655": 6539 - }, - "NameTextMapHash": 1940821986, - "SideIconName": "UI_AvatarIcon_Side_Shinobu", - "QualityType": "QUALITY_PURPLE" - }, - "10000066": { - "Element": "Water", - "Consts": [ - "UI_Talent_S_Ayato_01", - "UI_Talent_S_Ayato_02", - "UI_Talent_U_Ayato_02", - "UI_Talent_S_Ayato_03", - "UI_Talent_U_Ayato_01", - "UI_Talent_S_Ayato_04" - ], - "SkillOrder": [ - 10661, - 10662, - 10665 - ], - "Skills": { - "10661": "Skill_A_01", - "10662": "Skill_S_Ayato_01", - "10665": "Skill_E_Ayato_01" - }, - "ProudMap": { - "10661": 6631, - "10662": 6632, - "10665": 6639 - }, - "NameTextMapHash": 1588620330, - "SideIconName": "UI_AvatarIcon_Side_Ayato", - "QualityType": "QUALITY_ORANGE" - }, - "10000005-501": {}, - "10000005-502": {}, - "10000005-503": {}, - "10000005-504": { - "Element": "Wind", - "Consts": [ - "UI_Talent_S_PlayerWind_01", - "UI_Talent_S_PlayerWind_02", - "UI_Talent_U_PlayerWind_02", - "UI_Talent_S_PlayerWind_03", - "UI_Talent_U_PlayerWind_01", - "UI_Talent_S_PlayerWind_04" - ], - "SkillOrder": [ - 100543, - 10067, - 10068 - ], - "Skills": { - "10067": "Skill_S_PlayerWind_01", - "10068": "Skill_E_PlayerWind_01", - "100543": "Skill_A_01" - }, - "NameTextMapHash": 1533656818, - "ProudMap": { - "10067": 732, - "10068": 739, - "100543": 730 - }, - "SideIconName": "UI_AvatarIcon_Side_PlayerBoy", - "QualityType": "QUALITY_ORANGE" - }, - "10000005-505": {}, - "10000005-506": { - "Element": "Rock", - "Consts": [ - "UI_Talent_S_PlayerRock_01", - "UI_Talent_S_PlayerRock_02", - "UI_Talent_U_PlayerRock_02", - "UI_Talent_S_PlayerRock_03", - "UI_Talent_U_PlayerRock_01", - "UI_Talent_S_PlayerRock_04" - ], - "SkillOrder": [ - 100545, - 10077, - 10078 - ], - "Skills": { - "10077": "Skill_S_PlayerRock_01", - "10078": "Skill_E_PlayerRock_01", - "100545": "Skill_A_01" - }, - "NameTextMapHash": 1533656818, - "ProudMap": { - "10077": 932, - "10078": 939, - "100545": 730 - }, - "SideIconName": "UI_AvatarIcon_Side_PlayerBoy", - "QualityType": "QUALITY_ORANGE" - }, - "10000005-507": { - "Element": "Electric", - "Consts": [ - "UI_Talent_S_PlayerElectric_01", - "UI_Talent_S_PlayerElectric_02", - "UI_Talent_U_PlayerElectric_01", - "UI_Talent_S_PlayerElectric_03", - "UI_Talent_U_PlayerElectric_02", - "UI_Talent_S_PlayerElectric_04" - ], - "SkillOrder": [ - 100546, - 10602, - 10605 - ], - "Skills": { - "10602": "Skill_S_PlayerElectric_01", - "10605": "Skill_E_PlayerElectric_01", - "100546": "Skill_A_01" - }, - "NameTextMapHash": 1533656818, - "ProudMap": { - "10602": 1032, - "10605": 1039, - "100546": 1030 - }, - "SideIconName": "UI_AvatarIcon_Side_PlayerBoy", - "QualityType": "QUALITY_ORANGE" - }, - "10000007-701": {}, - "10000007-702": {}, - "10000007-703": {}, - "10000007-704": { - "Element": "Wind", - "Consts": [ - "UI_Talent_S_PlayerWind_01", - "UI_Talent_S_PlayerWind_02", - "UI_Talent_U_PlayerWind_02", - "UI_Talent_S_PlayerWind_03", - "UI_Talent_U_PlayerWind_01", - "UI_Talent_S_PlayerWind_04" - ], - "SkillOrder": [ - 100553, - 10067, - 10068 - ], - "Skills": { - "10067": "Skill_S_PlayerWind_01", - "10068": "Skill_E_PlayerWind_01", - "100553": "Skill_A_01" - }, - "NameTextMapHash": 3816664530, - "ProudMap": { - "10067": 732, - "10068": 739, - "100553": 731 - }, - "SideIconName": "UI_AvatarIcon_Side_PlayerGirl", - "QualityType": "QUALITY_ORANGE" - }, - "10000007-705": {}, - "10000007-706": { - "Element": "Rock", - "Consts": [ - "UI_Talent_S_PlayerRock_01", - "UI_Talent_S_PlayerRock_02", - "UI_Talent_U_PlayerRock_02", - "UI_Talent_S_PlayerRock_03", - "UI_Talent_U_PlayerRock_01", - "UI_Talent_S_PlayerRock_04" - ], - "SkillOrder": [ - 100555, - 10077, - 10078 - ], - "Skills": { - "10077": "Skill_S_PlayerRock_01", - "10078": "Skill_E_PlayerRock_01", - "100555": "Skill_A_01" - }, - "NameTextMapHash": 3816664530, - "ProudMap": { - "10077": 932, - "10078": 939, - "100555": 731 - }, - "SideIconName": "UI_AvatarIcon_Side_PlayerGirl", - "QualityType": "QUALITY_ORANGE" - }, - "10000007-707": { - "Element": "Electric", - "Consts": [ - "UI_Talent_S_PlayerElectric_01", - "UI_Talent_S_PlayerElectric_02", - "UI_Talent_U_PlayerElectric_01", - "UI_Talent_S_PlayerElectric_03", - "UI_Talent_U_PlayerElectric_02", - "UI_Talent_S_PlayerElectric_04" - ], - "SkillOrder": [ - 100556, - 10602, - 10605 - ], - "Skills": { - "10602": "Skill_S_PlayerElectric_01", - "10605": "Skill_E_PlayerElectric_01", - "100556": "Skill_A_01" - }, - "NameTextMapHash": 3816664530, - "ProudMap": { - "10602": 1032, - "10605": 1039, - "100556": 1031 - }, - "SideIconName": "UI_AvatarIcon_Side_PlayerGirl", - "QualityType": "QUALITY_ORANGE" - } -} \ No newline at end of file diff --git a/LittlePaimon/config/data/genshin_info.json b/LittlePaimon/config/data/genshin_info.json new file mode 100644 index 0000000..f74b3b2 --- /dev/null +++ b/LittlePaimon/config/data/genshin_info.json @@ -0,0 +1,1429 @@ +{ + "10000002": { + "Element": "Ice", + "Consts": [ + "UI_Talent_S_Ayaka_01", + "UI_Talent_S_Ayaka_02", + "UI_Talent_U_Ayaka_02", + "UI_Talent_S_Ayaka_03", + "UI_Talent_U_Ayaka_01", + "UI_Talent_S_Ayaka_04" + ], + "SkillOrder": [10024, 10018, 10019], + "Skills": { + "10018": "Skill_S_Ayaka_01", + "10019": "Skill_E_Ayaka", + "10024": "Skill_A_01" + }, + "ProudMap": { "10018": 232, "10019": 239, "10024": 231 }, + "NameTextMapHash": 1006042610, + "SideIconName": "UI_AvatarIcon_Side_Ayaka", + "QualityType": "QUALITY_ORANGE" + }, + "10000003": { + "Element": "Wind", + "Consts": [ + "UI_Talent_S_Qin_01", + "UI_Talent_S_Qin_02", + "UI_Talent_U_Qin_02", + "UI_Talent_S_Qin_03", + "UI_Talent_U_Qin_01", + "UI_Talent_S_Qin_04" + ], + "SkillOrder": [10031, 10033, 10034], + "Skills": { + "10031": "Skill_A_01", + "10033": "Skill_S_Qin_02", + "10034": "Skill_E_Qin_01" + }, + "ProudMap": { "10031": 331, "10033": 332, "10034": 339 }, + "NameTextMapHash": 3221566250, + "SideIconName": "UI_AvatarIcon_Side_Qin", + "QualityType": "QUALITY_ORANGE", + "Costumes": { + "200301": { + "sideIconName": "UI_AvatarIcon_Side_QinCostumeSea", + "icon": "UI_AvatarIcon_QinCostumeSea", + "art": "UI_Costume_QinCostumeSea", + "avatarId": 10000003 + }, + "200302": { + "sideIconName": "UI_AvatarIcon_Side_QinCostumeWic", + "icon": "UI_AvatarIcon_QinCostumeWic", + "art": "UI_Costume_QinCostumeWic", + "avatarId": 10000003 + } + } + }, + "10000005": { + "Element": "Wind", + "Consts": [ + "UI_Talent_S_PlayerWind_01", + "UI_Talent_S_PlayerWind_02", + "UI_Talent_U_PlayerWind_02", + "UI_Talent_S_PlayerWind_03", + "UI_Talent_U_PlayerWind_01", + "UI_Talent_S_PlayerWind_04" + ], + "SkillOrder": [100543, 10067, 10068], + "Skills": { + "10067": "Skill_S_PlayerWind_01", + "10068": "Skill_E_PlayerWind_01", + "100543": "Skill_A_01" + }, + "NameTextMapHash": 1533656818, + "ProudMap": { "10067": 732, "10068": 739, "100543": 730 }, + "SideIconName": "UI_AvatarIcon_Side_PlayerBoy", + "QualityType": "QUALITY_ORANGE" + }, + "10000006": { + "Element": "Electric", + "Consts": [ + "UI_Talent_S_Lisa_01", + "UI_Talent_S_Lisa_02", + "UI_Talent_U_Lisa_02", + "UI_Talent_S_Lisa_03", + "UI_Talent_U_Lisa_01", + "UI_Talent_S_Lisa_04" + ], + "SkillOrder": [10060, 10061, 10062], + "Skills": { + "10060": "Skill_A_Catalyst_MD", + "10061": "Skill_S_Lisa_01", + "10062": "Skill_E_Lisa_01" + }, + "ProudMap": { "10060": 431, "10061": 432, "10062": 439 }, + "NameTextMapHash": 3344622722, + "SideIconName": "UI_AvatarIcon_Side_Lisa", + "QualityType": "QUALITY_PURPLE" + }, + "10000007": { + "Element": "Wind", + "Consts": [ + "UI_Talent_S_PlayerWind_01", + "UI_Talent_S_PlayerWind_02", + "UI_Talent_U_PlayerWind_02", + "UI_Talent_S_PlayerWind_03", + "UI_Talent_U_PlayerWind_01", + "UI_Talent_S_PlayerWind_04" + ], + "SkillOrder": [100553, 10067, 10068], + "Skills": { + "10067": "Skill_S_PlayerWind_01", + "10068": "Skill_E_PlayerWind_01", + "100553": "Skill_A_01" + }, + "NameTextMapHash": 3816664530, + "ProudMap": { "10067": 732, "10068": 739, "100553": 731 }, + "SideIconName": "UI_AvatarIcon_Side_PlayerGirl", + "QualityType": "QUALITY_ORANGE" + }, + "10000014": { + "Element": "Water", + "Consts": [ + "UI_Talent_S_Barbara_01", + "UI_Talent_S_Barbara_02", + "UI_Talent_U_Barbara_02", + "UI_Talent_S_Barbara_03", + "UI_Talent_U_Barbara_01", + "UI_Talent_S_Barbara_04" + ], + "SkillOrder": [10070, 10071, 10072], + "Skills": { + "10070": "Skill_A_Catalyst_MD", + "10071": "Skill_S_Barbara_01", + "10072": "Skill_E_Barbara_01" + }, + "ProudMap": { "10070": 1431, "10071": 1432, "10072": 1439 }, + "NameTextMapHash": 3775299170, + "SideIconName": "UI_AvatarIcon_Side_Barbara", + "QualityType": "QUALITY_PURPLE", + "Costumes": { + "201401": { + "sideIconName": "UI_AvatarIcon_Side_BarbaraCostumeSummertime", + "icon": "UI_AvatarIcon_BarbaraCostumeSummertime", + "art": "UI_Costume_BarbaraCostumeSummertime", + "avatarId": 10000014 + } + } + }, + "10000015": { + "Element": "Ice", + "Consts": [ + "UI_Talent_S_Kaeya_01", + "UI_Talent_S_Kaeya_02", + "UI_Talent_U_Kaeya_01", + "UI_Talent_S_Kaeya_03", + "UI_Talent_U_Kaeya_02", + "UI_Talent_S_Kaeya_04" + ], + "SkillOrder": [10073, 10074, 10075], + "Skills": { + "10073": "Skill_A_01", + "10074": "Skill_S_Kaeya_01", + "10075": "Skill_E_Kaeya_01" + }, + "ProudMap": { "10073": 1531, "10074": 1532, "10075": 1539 }, + "NameTextMapHash": 4119663210, + "SideIconName": "UI_AvatarIcon_Side_Kaeya", + "QualityType": "QUALITY_PURPLE" + }, + "10000016": { + "Element": "Fire", + "Consts": [ + "UI_Talent_S_Diluc_01", + "UI_Talent_S_Diluc_02", + "UI_Talent_U_Diluc_01", + "UI_Talent_S_Diluc_03", + "UI_Talent_U_Diluc_02", + "UI_Talent_S_Diluc_04" + ], + "SkillOrder": [10160, 10161, 10165], + "Skills": { + "10160": "Skill_A_04", + "10161": "Skill_S_Diluc_01_01", + "10165": "Skill_E_Diluc_01" + }, + "ProudMap": { "10160": 1631, "10161": 1632, "10165": 1639 }, + "NameTextMapHash": 3608180322, + "SideIconName": "UI_AvatarIcon_Side_Diluc", + "QualityType": "QUALITY_ORANGE", + "Costumes": { + "201601": { + "sideIconName": "UI_AvatarIcon_Side_DilucCostumeFlamme", + "icon": "UI_AvatarIcon_DilucCostumeFlamme", + "art": "UI_Costume_DilucCostumeFlamme", + "avatarId": 10000016 + } + } + }, + "10000020": { + "Element": "Electric", + "Consts": [ + "UI_Talent_S_Razor_01", + "UI_Talent_S_Razor_02", + "UI_Talent_U_Razor_02", + "UI_Talent_S_Razor_03", + "UI_Talent_U_Razor_01", + "UI_Talent_S_Razor_04" + ], + "SkillOrder": [10201, 10202, 10203], + "Skills": { + "10201": "Skill_A_04", + "10202": "Skill_S_Razor_01", + "10203": "Skill_E_Razor_01" + }, + "ProudMap": { "10201": 2031, "10202": 2032, "10203": 2039 }, + "NameTextMapHash": 4160147242, + "SideIconName": "UI_AvatarIcon_Side_Razor", + "QualityType": "QUALITY_PURPLE" + }, + "10000021": { + "Element": "Fire", + "Consts": [ + "UI_Talent_S_Ambor_01", + "UI_Talent_S_Ambor_02", + "UI_Talent_U_Ambor_02", + "UI_Talent_S_Ambor_03", + "UI_Talent_U_Ambor_01", + "UI_Talent_S_Ambor_04" + ], + "SkillOrder": [10041, 10032, 10017], + "Skills": { + "10017": "Skill_E_Ambor", + "10032": "Skill_S_Ambor_01", + "10041": "Skill_A_02" + }, + "ProudMap": { "10017": 2139, "10032": 2132, "10041": 2131 }, + "NameTextMapHash": 1966438658, + "SideIconName": "UI_AvatarIcon_Side_Ambor", + "QualityType": "QUALITY_PURPLE", + "Costumes": { + "202101": { + "sideIconName": "UI_AvatarIcon_Side_AmborCostumeWic", + "icon": "UI_AvatarIcon_AmborCostumeWic", + "art": "UI_Costume_AmborCostumeWic", + "avatarId": 10000021 + } + } + }, + "10000022": { + "Element": "Wind", + "Consts": [ + "UI_Talent_S_Venti_01", + "UI_Talent_S_Venti_02", + "UI_Talent_U_Venti_02", + "UI_Talent_S_Venti_03", + "UI_Talent_U_Venti_01", + "UI_Talent_S_Venti_04" + ], + "SkillOrder": [10221, 10224, 10225], + "Skills": { + "10221": "Skill_A_02", + "10224": "Skill_S_Venti_01", + "10225": "Skill_E_Venti_01" + }, + "ProudMap": { "10221": 2231, "10224": 2232, "10225": 2239 }, + "NameTextMapHash": 2466140362, + "SideIconName": "UI_AvatarIcon_Side_Venti", + "QualityType": "QUALITY_ORANGE" + }, + "10000023": { + "Element": "Fire", + "Consts": [ + "UI_Talent_S_Xiangling_01", + "UI_Talent_S_Xiangling_02", + "UI_Talent_U_Xiangling_02", + "UI_Talent_S_Xiangling_03", + "UI_Talent_U_Xiangling_01", + "UI_Talent_S_Xiangling_04" + ], + "SkillOrder": [10231, 10232, 10235], + "Skills": { + "10231": "Skill_A_03", + "10232": "Skill_S_Xiangling_01", + "10235": "Skill_E_Xiangling_01" + }, + "ProudMap": { "10231": 2331, "10232": 2332, "10235": 2339 }, + "NameTextMapHash": 1130996346, + "SideIconName": "UI_AvatarIcon_Side_Xiangling", + "QualityType": "QUALITY_PURPLE" + }, + "10000024": { + "Element": "Electric", + "Consts": [ + "UI_Talent_S_Beidou_02", + "UI_Talent_S_Beidou_01", + "UI_Talent_U_Beidou_01", + "UI_Talent_S_Beidou_03", + "UI_Talent_U_Beidou_02", + "UI_Talent_S_Beidou_04" + ], + "SkillOrder": [10241, 10242, 10245], + "Skills": { + "10241": "Skill_A_04", + "10242": "Skill_S_Beidou_01", + "10245": "Skill_E_Beidou_01" + }, + "ProudMap": { "10241": 2431, "10242": 2432, "10245": 2439 }, + "NameTextMapHash": 2646367730, + "SideIconName": "UI_AvatarIcon_Side_Beidou", + "QualityType": "QUALITY_PURPLE" + }, + "10000025": { + "Element": "Water", + "Consts": [ + "UI_Talent_S_Xingqiu_01", + "UI_Talent_S_Xingqiu_02", + "UI_Talent_U_Xingqiu_01", + "UI_Talent_S_Xingqiu_03", + "UI_Talent_U_Xingqiu_02", + "UI_Talent_S_Xingqiu_04" + ], + "SkillOrder": [10381, 10382, 10385], + "Skills": { + "10381": "Skill_A_01", + "10382": "Skill_S_Xingqiu_01", + "10385": "Skill_E_Xingqiu_01" + }, + "ProudMap": { "10381": 2531, "10382": 2532, "10385": 2539 }, + "NameTextMapHash": 4197635682, + "SideIconName": "UI_AvatarIcon_Side_Xingqiu", + "QualityType": "QUALITY_PURPLE" + }, + "10000026": { + "Element": "Wind", + "Consts": [ + "UI_Talent_S_Xiao_01", + "UI_Talent_S_Xiao_02", + "UI_Talent_U_Xiao_01", + "UI_Talent_S_Xiao_03", + "UI_Talent_U_Xiao_02", + "UI_Talent_S_Xiao_04" + ], + "SkillOrder": [10261, 10262, 10265], + "Skills": { + "10261": "Skill_A_03", + "10262": "Skill_S_Xiao_01", + "10265": "Skill_E_Xiao_01" + }, + "ProudMap": { "10261": 2631, "10262": 2632, "10265": 2639 }, + "NameTextMapHash": 1021947690, + "SideIconName": "UI_AvatarIcon_Side_Xiao", + "QualityType": "QUALITY_ORANGE" + }, + "10000027": { + "Element": "Rock", + "Consts": [ + "UI_Talent_S_Ningguang_01", + "UI_Talent_S_Ningguang_05", + "UI_Talent_U_Ningguang_02", + "UI_Talent_S_Ningguang_03", + "UI_Talent_U_Ningguang_01", + "UI_Talent_S_Ningguang_04" + ], + "SkillOrder": [10271, 10272, 10274], + "Skills": { + "10271": "Skill_A_Catalyst_MD", + "10272": "Skill_S_Ningguang_01", + "10274": "Skill_E_Ningguang_01" + }, + "ProudMap": { "10271": 2731, "10272": 2732, "10274": 2739 }, + "NameTextMapHash": 4127888970, + "SideIconName": "UI_AvatarIcon_Side_Ningguang", + "QualityType": "QUALITY_PURPLE", + "Costumes": { + "202701": { + "sideIconName": "UI_AvatarIcon_Side_NingguangCostumeFloral", + "icon": "UI_AvatarIcon_NingguangCostumeFloral", + "art": "UI_Costume_NingguangCostumeFloral", + "avatarId": 10000027 + } + } + }, + "10000029": { + "Element": "Fire", + "Consts": [ + "UI_Talent_S_Klee_01", + "UI_Talent_S_Klee_02", + "UI_Talent_U_Klee_01", + "UI_Talent_S_Klee_03", + "UI_Talent_U_Klee_02", + "UI_Talent_S_Klee_04" + ], + "SkillOrder": [10291, 10292, 10295], + "Skills": { + "10291": "Skill_A_Catalyst_MD", + "10292": "Skill_S_Klee_01", + "10295": "Skill_E_Klee_01" + }, + "ProudMap": { "10291": 2931, "10292": 2932, "10295": 2939 }, + "NameTextMapHash": 3339083250, + "SideIconName": "UI_AvatarIcon_Side_Klee", + "QualityType": "QUALITY_ORANGE" + }, + "10000030": { + "Element": "Rock", + "Consts": [ + "UI_Talent_S_Zhongli_01", + "UI_Talent_S_Zhongli_02", + "UI_Talent_U_Zhongli_01", + "UI_Talent_S_Zhongli_03", + "UI_Talent_U_Zhongli_02", + "UI_Talent_S_Zhongli_04" + ], + "SkillOrder": [10301, 10302, 10303], + "Skills": { + "10301": "Skill_A_03", + "10302": "Skill_S_Zhongli_01", + "10303": "Skill_E_Zhongli_01" + }, + "ProudMap": { "10301": 3031, "10302": 3032, "10303": 3039 }, + "NameTextMapHash": 3862787418, + "SideIconName": "UI_AvatarIcon_Side_Zhongli", + "QualityType": "QUALITY_ORANGE" + }, + "10000031": { + "Element": "Electric", + "Consts": [ + "UI_Talent_S_Fischl_01", + "UI_Talent_S_Fischl_02", + "UI_Talent_U_Fischl_01", + "UI_Talent_S_Fischl_03", + "UI_Talent_U_Fischl_02", + "UI_Talent_S_Fischl_04" + ], + "SkillOrder": [10311, 10312, 10313], + "Skills": { + "10311": "Skill_A_02", + "10312": "Skill_S_Fischl_01", + "10313": "Skill_E_Fischl_01" + }, + "ProudMap": { "10311": 3131, "10312": 3132, "10313": 3139 }, + "NameTextMapHash": 3277782506, + "SideIconName": "UI_AvatarIcon_Side_Fischl", + "QualityType": "QUALITY_PURPLE", + "Costumes": { + "203101": { + "sideIconName": "UI_AvatarIcon_Side_FischlCostumeHighness", + "icon": "UI_AvatarIcon_FischlCostumeHighness", + "art": "UI_Costume_FischlCostumeHighness", + "avatarId": 10000031 + } + } + }, + "10000032": { + "Element": "Fire", + "Consts": [ + "UI_Talent_S_Bennett_01", + "UI_Talent_S_Bennett_02", + "UI_Talent_U_Bennett_01", + "UI_Talent_S_Bennett_03", + "UI_Talent_U_Bennett_02", + "UI_Talent_S_Bennett_04" + ], + "SkillOrder": [10321, 10322, 10323], + "Skills": { + "10321": "Skill_A_01", + "10322": "Skill_S_Bennett_01", + "10323": "Skill_E_Bennett_01" + }, + "ProudMap": { "10321": 3231, "10322": 3232, "10323": 3239 }, + "NameTextMapHash": 968893378, + "SideIconName": "UI_AvatarIcon_Side_Bennett", + "QualityType": "QUALITY_PURPLE" + }, + "10000033": { + "Element": "Water", + "Consts": [ + "UI_Talent_S_Tartaglia_01", + "UI_Talent_S_Tartaglia_02", + "UI_Talent_U_Tartaglia_01", + "UI_Talent_S_Tartaglia_05", + "UI_Talent_U_Tartaglia_02", + "UI_Talent_S_Tartaglia_04" + ], + "SkillOrder": [10331, 10332, 10333], + "Skills": { + "10331": "Skill_A_02", + "10332": "Skill_S_Tartaglia_01", + "10333": "Skill_E_Tartaglia_01" + }, + "ProudMap": { "10331": 3331, "10332": 3332, "10333": 3339 }, + "NameTextMapHash": 3847143266, + "SideIconName": "UI_AvatarIcon_Side_Tartaglia", + "QualityType": "QUALITY_ORANGE" + }, + "10000034": { + "Element": "Rock", + "Consts": [ + "UI_Talent_S_Noel_01", + "UI_Talent_S_Noel_02", + "UI_Talent_U_Noel_01", + "UI_Talent_S_Noel_03", + "UI_Talent_U_Noel_02", + "UI_Talent_S_Noel_04" + ], + "SkillOrder": [10341, 10342, 10343], + "Skills": { + "10341": "Skill_A_04", + "10342": "Skill_S_Noel_01", + "10343": "Skill_E_Noel_01" + }, + "ProudMap": { "10341": 3431, "10342": 3432, "10343": 3439 }, + "NameTextMapHash": 1921418842, + "SideIconName": "UI_AvatarIcon_Side_Noel", + "QualityType": "QUALITY_PURPLE" + }, + "10000035": { + "Element": "Ice", + "Consts": [ + "UI_Talent_S_Qiqi_01", + "UI_Talent_S_Qiqi_02", + "UI_Talent_U_Qiqi_01", + "UI_Talent_S_Qiqi_03", + "UI_Talent_U_Qiqi_02", + "UI_Talent_S_Qiqi_04" + ], + "SkillOrder": [10351, 10352, 10353], + "Skills": { + "10351": "Skill_A_01", + "10352": "Skill_S_Qiqi_01", + "10353": "Skill_E_Qiqi_01" + }, + "ProudMap": { "10351": 3531, "10352": 3532, "10353": 3539 }, + "NameTextMapHash": 168956722, + "SideIconName": "UI_AvatarIcon_Side_Qiqi", + "QualityType": "QUALITY_ORANGE" + }, + "10000036": { + "Element": "Ice", + "Consts": [ + "UI_Talent_S_Chongyun_01", + "UI_Talent_S_Chongyun_02", + "UI_Talent_U_Chongyun_01", + "UI_Talent_S_Chongyun_03", + "UI_Talent_U_Chongyun_02", + "UI_Talent_S_Chongyun_04" + ], + "SkillOrder": [10401, 10402, 10403], + "Skills": { + "10401": "Skill_A_04", + "10402": "Skill_S_Chongyun_01", + "10403": "Skill_E_Chongyun_01" + }, + "ProudMap": { "10401": 3631, "10402": 3632, "10403": 3639 }, + "NameTextMapHash": 2876340530, + "SideIconName": "UI_AvatarIcon_Side_Chongyun", + "QualityType": "QUALITY_PURPLE" + }, + "10000037": { + "Element": "Ice", + "Consts": [ + "UI_Talent_S_Ganyu_01", + "UI_Talent_S_Ganyu_02", + "UI_Talent_U_Ganyu_01", + "UI_Talent_S_Ganyu_03", + "UI_Talent_U_Ganyu_02", + "UI_Talent_S_Ganyu_04" + ], + "SkillOrder": [10371, 10372, 10373], + "Skills": { + "10371": "Skill_A_02", + "10372": "Skill_S_Ganyu_01", + "10373": "Skill_E_Ganyu_01" + }, + "ProudMap": { "10371": 3731, "10372": 3732, "10373": 3739 }, + "NameTextMapHash": 2679781122, + "SideIconName": "UI_AvatarIcon_Side_Ganyu", + "QualityType": "QUALITY_ORANGE" + }, + "10000038": { + "Element": "Rock", + "Consts": [ + "UI_Talent_S_Albedo_01", + "UI_Talent_S_Albedo_02", + "UI_Talent_U_Albedo_01", + "UI_Talent_S_Albedo_03", + "UI_Talent_U_Albedo_02", + "UI_Talent_S_Albedo_04" + ], + "SkillOrder": [10386, 10387, 10388], + "Skills": { + "10386": "Skill_A_01", + "10387": "Skill_S_Albedo_01", + "10388": "Skill_E_Albedo_01" + }, + "ProudMap": { "10386": 3831, "10387": 3832, "10388": 3839 }, + "NameTextMapHash": 4108620722, + "SideIconName": "UI_AvatarIcon_Side_Albedo", + "QualityType": "QUALITY_ORANGE" + }, + "10000039": { + "Element": "Ice", + "Consts": [ + "UI_Talent_S_Diona_01", + "UI_Talent_S_Diona_02", + "UI_Talent_U_Diona_01", + "UI_Talent_S_Diona_03", + "UI_Talent_U_Diona_02", + "UI_Talent_S_Diona_04" + ], + "SkillOrder": [10391, 10392, 10395], + "Skills": { + "10391": "Skill_A_02", + "10392": "Skill_S_Diona_01", + "10395": "Skill_E_Diona_01" + }, + "ProudMap": { "10391": 3931, "10392": 3932, "10395": 3939 }, + "NameTextMapHash": 1468367538, + "SideIconName": "UI_AvatarIcon_Side_Diona", + "QualityType": "QUALITY_PURPLE" + }, + "10000041": { + "Element": "Water", + "Consts": [ + "UI_Talent_S_Mona_01", + "UI_Talent_S_Mona_02", + "UI_Talent_U_Mona_01", + "UI_Talent_S_Mona_03", + "UI_Talent_U_Mona_02", + "UI_Talent_S_Mona_04" + ], + "SkillOrder": [10411, 10412, 10415], + "Skills": { + "10411": "Skill_A_Catalyst_MD", + "10412": "Skill_S_Mona_01", + "10415": "Skill_E_Mona_01" + }, + "ProudMap": { "10411": 4131, "10412": 4132, "10415": 4139 }, + "NameTextMapHash": 1113306282, + "SideIconName": "UI_AvatarIcon_Side_Mona", + "QualityType": "QUALITY_ORANGE", + "Costumes": { + "204101": { + "sideIconName": "UI_AvatarIcon_Side_MonaCostumeWic", + "icon": "UI_AvatarIcon_MonaCostumeWic", + "art": "UI_Costume_MonaCostumeWic", + "avatarId": 10000041 + } + } + }, + "10000042": { + "Element": "Electric", + "Consts": [ + "UI_Talent_S_Keqing_01", + "UI_Talent_S_Keqing_02", + "UI_Talent_U_Keqing_01", + "UI_Talent_S_Keqing_03", + "UI_Talent_U_Keqing_02", + "UI_Talent_S_Keqing_04" + ], + "SkillOrder": [10421, 10422, 10425], + "Skills": { + "10421": "Skill_A_01", + "10422": "Skill_S_Keqing_01", + "10425": "Skill_E_Keqing_01" + }, + "ProudMap": { "10421": 4231, "10422": 4232, "10425": 4239 }, + "NameTextMapHash": 1864015138, + "SideIconName": "UI_AvatarIcon_Side_Keqing", + "QualityType": "QUALITY_ORANGE", + "Costumes": { + "204201": { + "sideIconName": "UI_AvatarIcon_Side_KeqingCostumeFeather", + "icon": "UI_AvatarIcon_KeqingCostumeFeather", + "art": "UI_Costume_KeqingCostumeFeather", + "avatarId": 10000042 + } + } + }, + "10000043": { + "Element": "Wind", + "Consts": [ + "UI_Talent_S_Sucrose_01", + "UI_Talent_S_Sucrose_02", + "UI_Talent_U_Sucrose_01", + "UI_Talent_S_Sucrose_03", + "UI_Talent_U_Sucrose_02", + "UI_Talent_S_Sucrose_04" + ], + "SkillOrder": [10431, 10432, 10435], + "Skills": { + "10431": "Skill_A_Catalyst_MD", + "10432": "Skill_S_Sucrose_01", + "10435": "Skill_E_Sucrose_01" + }, + "ProudMap": { "10431": 4331, "10432": 4332, "10435": 4339 }, + "NameTextMapHash": 1053433018, + "SideIconName": "UI_AvatarIcon_Side_Sucrose", + "QualityType": "QUALITY_PURPLE" + }, + "10000044": { + "Element": "Fire", + "Consts": [ + "UI_Talent_S_Xinyan_01", + "UI_Talent_S_Xinyan_02", + "UI_Talent_U_Xinyan_01", + "UI_Talent_S_Xinyan_03", + "UI_Talent_U_Xinyan_02", + "UI_Talent_S_Xinyan_04" + ], + "SkillOrder": [10441, 10442, 10443], + "Skills": { + "10441": "Skill_A_04", + "10442": "Skill_S_Xinyan_01", + "10443": "Skill_E_Xinyan_01" + }, + "ProudMap": { "10441": 4431, "10442": 4432, "10443": 4439 }, + "NameTextMapHash": 4273845410, + "SideIconName": "UI_AvatarIcon_Side_Xinyan", + "QualityType": "QUALITY_PURPLE" + }, + "10000045": { + "Element": "Ice", + "Consts": [ + "UI_Talent_S_Rosaria_01", + "UI_Talent_S_Rosaria_02", + "UI_Talent_U_Rosaria_01", + "UI_Talent_S_Rosaria_03", + "UI_Talent_U_Rosaria_02", + "UI_Talent_S_Rosaria_04" + ], + "SkillOrder": [10451, 10452, 10453], + "Skills": { + "10451": "Skill_A_03", + "10452": "Skill_S_Rosaria_01", + "10453": "Skill_E_Rosaria_01" + }, + "ProudMap": { "10451": 4531, "10452": 4532, "10453": 4539 }, + "NameTextMapHash": 4260733330, + "SideIconName": "UI_AvatarIcon_Side_Rosaria", + "QualityType": "QUALITY_PURPLE", + "Costumes": { + "204501": { + "sideIconName": "UI_AvatarIcon_Side_RosariaCostumeWic", + "icon": "UI_AvatarIcon_RosariaCostumeWic", + "art": "UI_Costume_RosariaCostumeWic", + "avatarId": 10000045 + } + } + }, + "10000046": { + "Element": "Fire", + "Consts": [ + "UI_Talent_S_Hutao_03", + "UI_Talent_S_Hutao_01", + "UI_Talent_U_Hutao_01", + "UI_Talent_S_Hutao_02", + "UI_Talent_U_Hutao_02", + "UI_Talent_S_Hutao_04" + ], + "SkillOrder": [10461, 10462, 10463], + "Skills": { + "10461": "Skill_A_03", + "10462": "Skill_S_Hutao_01", + "10463": "Skill_E_Hutao_01" + }, + "ProudMap": { "10461": 4631, "10462": 4632, "10463": 4639 }, + "NameTextMapHash": 1940919994, + "SideIconName": "UI_AvatarIcon_Side_Hutao", + "QualityType": "QUALITY_ORANGE" + }, + "10000047": { + "Element": "Wind", + "Consts": [ + "UI_Talent_S_Kazuha_01", + "UI_Talent_S_Kazuha_02", + "UI_Talent_U_Kazuha_01", + "UI_Talent_S_Kazuha_03", + "UI_Talent_U_Kazuha_02", + "UI_Talent_S_Kazuha_04" + ], + "SkillOrder": [10471, 10472, 10475], + "Skills": { + "10471": "Skill_A_01", + "10472": "Skill_S_Kazuha_01", + "10475": "Skill_E_Kazuha_01" + }, + "ProudMap": { "10471": 4731, "10472": 4732, "10475": 4739 }, + "NameTextMapHash": 88505754, + "SideIconName": "UI_AvatarIcon_Side_Kazuha", + "QualityType": "QUALITY_ORANGE" + }, + "10000048": { + "Element": "Fire", + "Consts": [ + "UI_Talent_S_Feiyan_01", + "UI_Talent_S_Feiyan_02", + "UI_Talent_U_Feiyan_01", + "UI_Talent_S_Feiyan_03", + "UI_Talent_U_Feiyan_02", + "UI_Talent_S_Feiyan_04" + ], + "SkillOrder": [10481, 10482, 10485], + "Skills": { + "10481": "Skill_A_Catalyst_MD", + "10482": "Skill_S_Feiyan_01", + "10485": "Skill_E_Feiyan_01" + }, + "ProudMap": { "10481": 4831, "10482": 4832, "10485": 4839 }, + "NameTextMapHash": 697277554, + "SideIconName": "UI_AvatarIcon_Side_Feiyan", + "QualityType": "QUALITY_PURPLE" + }, + "10000049": { + "Element": "Fire", + "Consts": [ + "UI_Talent_S_Yoimiya_01", + "UI_Talent_S_Yoimiya_02", + "UI_Talent_U_Yoimiya_01", + "UI_Talent_S_Yoimiya_03", + "UI_Talent_U_Yoimiya_02", + "UI_Talent_S_Yoimiya_04" + ], + "SkillOrder": [10491, 10492, 10495], + "Skills": { + "10491": "Skill_A_02", + "10492": "Skill_S_Yoimiya_01", + "10495": "Skill_E_Yoimiya_01" + }, + "ProudMap": { "10491": 4931, "10492": 4932, "10495": 4939 }, + "NameTextMapHash": 2504399314, + "SideIconName": "UI_AvatarIcon_Side_Yoimiya", + "QualityType": "QUALITY_ORANGE" + }, + "10000050": { + "Element": "Fire", + "Consts": [ + "UI_Talent_S_Tohma_01", + "UI_Talent_S_Tohma_02", + "UI_Talent_U_Tohma_01", + "UI_Talent_S_Tohma_03", + "UI_Talent_U_Tohma_02", + "UI_Talent_S_Tohma_04" + ], + "SkillOrder": [10501, 10502, 10505], + "Skills": { + "10501": "Skill_A_03", + "10502": "Skill_S_Tohma_01", + "10505": "Skill_E_Tohma_01" + }, + "ProudMap": { "10501": 5031, "10502": 5032, "10505": 5039 }, + "NameTextMapHash": 3555115602, + "SideIconName": "UI_AvatarIcon_Side_Tohma", + "QualityType": "QUALITY_PURPLE" + }, + "10000051": { + "Element": "Ice", + "Consts": [ + "UI_Talent_S_Eula_02", + "UI_Talent_S_Eula_01", + "UI_Talent_U_Eula_01", + "UI_Talent_S_Eula_03", + "UI_Talent_U_Eula_02", + "UI_Talent_S_Eula_04" + ], + "SkillOrder": [10511, 10512, 10515], + "Skills": { + "10511": "Skill_A_04", + "10512": "Skill_S_Eula_01", + "10515": "Skill_E_Eula_01" + }, + "ProudMap": { "10511": 5131, "10512": 5132, "10515": 5139 }, + "NameTextMapHash": 3717667418, + "SideIconName": "UI_AvatarIcon_Side_Eula", + "QualityType": "QUALITY_ORANGE" + }, + "10000052": { + "Element": "Electric", + "Consts": [ + "UI_Talent_S_Shougun_01", + "UI_Talent_S_Shougun_03", + "UI_Talent_U_Shougun_02", + "UI_Talent_S_Shougun_02", + "UI_Talent_U_Shougun_01", + "UI_Talent_S_Shougun_04" + ], + "SkillOrder": [10521, 10522, 10525], + "Skills": { + "10521": "Skill_A_03", + "10522": "Skill_S_Shougun_01", + "10525": "Skill_E_Shougun_01" + }, + "ProudMap": { "10521": 5231, "10522": 5232, "10525": 5239 }, + "NameTextMapHash": 3024507506, + "SideIconName": "UI_AvatarIcon_Side_Shougun", + "QualityType": "QUALITY_ORANGE" + }, + "10000053": { + "Element": "Wind", + "Consts": [ + "UI_Talent_S_Sayu_01", + "UI_Talent_S_Sayu_02", + "UI_Talent_U_Sayu_02", + "UI_Talent_S_Sayu_03", + "UI_Talent_U_Sayu_01", + "UI_Talent_S_Sayu_04" + ], + "SkillOrder": [10531, 10532, 10535], + "Skills": { + "10531": "Skill_A_04", + "10532": "Skill_S_Sayu_01", + "10535": "Skill_E_Sayu_01" + }, + "ProudMap": { "10531": 5331, "10532": 5332, "10535": 5339 }, + "NameTextMapHash": 2388785242, + "SideIconName": "UI_AvatarIcon_Side_Sayu", + "QualityType": "QUALITY_PURPLE" + }, + "10000054": { + "Element": "Water", + "Consts": [ + "UI_Talent_S_Kokomi_01", + "UI_Talent_S_Kokomi_02", + "UI_Talent_U_Kokomi_02", + "UI_Talent_S_Kokomi_03", + "UI_Talent_U_Kokomi_01", + "UI_Talent_S_Kokomi_04" + ], + "SkillOrder": [10541, 10542, 10545], + "Skills": { + "10541": "Skill_A_Catalyst_MD", + "10542": "Skill_S_Kokomi_01", + "10545": "Skill_E_Kokomi_01" + }, + "ProudMap": { "10541": 5431, "10542": 5432, "10545": 5439 }, + "NameTextMapHash": 3914045794, + "SideIconName": "UI_AvatarIcon_Side_Kokomi", + "QualityType": "QUALITY_ORANGE" + }, + "10000055": { + "Element": "Rock", + "Consts": [ + "UI_Talent_S_Gorou_01", + "UI_Talent_S_Gorou_02", + "UI_Talent_U_Gorou_01", + "UI_Talent_S_Gorou_03", + "UI_Talent_U_Gorou_02", + "UI_Talent_S_Gorou_04" + ], + "SkillOrder": [10551, 10552, 10555], + "Skills": { + "10551": "Skill_A_02", + "10552": "Skill_S_Gorou_01", + "10555": "Skill_E_Gorou_01" + }, + "ProudMap": { "10551": 5531, "10552": 5532, "10555": 5539 }, + "NameTextMapHash": 3400133546, + "SideIconName": "UI_AvatarIcon_Side_Gorou", + "QualityType": "QUALITY_PURPLE" + }, + "10000056": { + "Element": "Electric", + "Consts": [ + "UI_Talent_S_Sara_05", + "UI_Talent_S_Sara_02", + "UI_Talent_U_Sara_02", + "UI_Talent_S_Sara_03", + "UI_Talent_U_Sara_01", + "UI_Talent_S_Sara_04" + ], + "SkillOrder": [10561, 10562, 10565], + "Skills": { + "10561": "Skill_A_02", + "10562": "Skill_S_Sara_01", + "10565": "Skill_E_Sara_01" + }, + "ProudMap": { "10561": 5631, "10562": 5632, "10565": 5639 }, + "NameTextMapHash": 1483922610, + "SideIconName": "UI_AvatarIcon_Side_Sara", + "QualityType": "QUALITY_PURPLE" + }, + "10000057": { + "Element": "Rock", + "Consts": [ + "UI_Talent_S_Itto_01", + "UI_Talent_S_Itto_02", + "UI_Talent_U_Itto_01", + "UI_Talent_S_Itto_03", + "UI_Talent_U_Itto_02", + "UI_Talent_S_Itto_04" + ], + "SkillOrder": [10571, 10572, 10575], + "Skills": { + "10571": "Skill_A_04", + "10572": "Skill_S_Itto_01", + "10575": "Skill_E_Itto_01" + }, + "ProudMap": { "10571": 5731, "10572": 5732, "10575": 5739 }, + "NameTextMapHash": 3068316954, + "SideIconName": "UI_AvatarIcon_Side_Itto", + "QualityType": "QUALITY_ORANGE" + }, + "10000058": { + "Element": "Electric", + "Consts": [ + "UI_Talent_S_Yae_01", + "UI_Talent_S_Yae_02", + "UI_Talent_U_Yae_01", + "UI_Talent_S_Yae_03", + "UI_Talent_U_Yae_02", + "UI_Talent_S_Yae_04" + ], + "SkillOrder": [10581, 10582, 10585], + "Skills": { + "10581": "Skill_A_Catalyst_MD", + "10582": "Skill_S_Yae_01", + "10585": "Skill_E_Yae_01" + }, + "ProudMap": { "10581": 5831, "10582": 5832, "10585": 5839 }, + "NameTextMapHash": 2713453234, + "SideIconName": "UI_AvatarIcon_Side_Yae", + "QualityType": "QUALITY_ORANGE" + }, + "10000059": { + "Element": "Wind", + "Consts": [ + "UI_Talent_S_Heizo_01", + "UI_Talent_S_Heizo_02", + "UI_Talent_U_Heizo_01", + "UI_Talent_S_Heizo_03", + "UI_Talent_U_Heizo_02", + "UI_Talent_S_Heizo_04" + ], + "SkillOrder": [10591, 10592, 10595], + "Skills": { + "10591": "Skill_A_Catalyst_MD", + "10592": "Skill_S_Heizo_01", + "10595": "Skill_E_Heizo_01" + }, + "ProudMap": { "10591": 5931, "10592": 5932, "10595": 5939 }, + "NameTextMapHash": 646032090, + "SideIconName": "UI_AvatarIcon_Side_Heizo", + "QualityType": "QUALITY_PURPLE" + }, + "10000060": { + "Element": "Water", + "Consts": [ + "UI_Talent_S_Yelan_01", + "UI_Talent_S_Yelan_02", + "UI_Talent_U_Yelan_01", + "UI_Talent_S_Yelan_03", + "UI_Talent_U_Yelan_02", + "UI_Talent_S_Yelan_04" + ], + "SkillOrder": [10606, 10607, 10610], + "Skills": { + "10606": "Skill_A_02", + "10607": "Skill_S_Yelan_01", + "10610": "Skill_E_Yelan_01" + }, + "ProudMap": { "10606": 6031, "10607": 6032, "10610": 6039 }, + "NameTextMapHash": 2848374378, + "SideIconName": "UI_AvatarIcon_Side_Yelan", + "QualityType": "QUALITY_ORANGE" + }, + "10000062": { + "Element": "Ice", + "Consts": [ + "UI_Talent_S_Aloy_Lock", + "UI_Talent_S_Aloy_Lock", + "UI_Talent_S_Aloy_Lock", + "UI_Talent_S_Aloy_Lock", + "UI_Talent_S_Aloy_Lock", + "UI_Talent_S_Aloy_Lock" + ], + "SkillOrder": [10621, 10622, 10625], + "Skills": { + "10621": "Skill_A_02", + "10622": "Skill_S_Aloy_01", + "10625": "Skill_E_Aloy_01" + }, + "ProudMap": { "10621": 6231, "10622": 6232, "10625": 6239 }, + "NameTextMapHash": 3689108098, + "SideIconName": "UI_AvatarIcon_Side_Aloy", + "QualityType": "QUALITY_ORANGE_SP" + }, + "10000063": { + "Element": "Ice", + "Consts": [ + "UI_Talent_S_Shenhe_02", + "UI_Talent_S_Shenhe_01", + "UI_Talent_U_Shenhe_01", + "UI_Talent_S_Shenhe_03", + "UI_Talent_U_Shenhe_02", + "UI_Talent_S_Shenhe_04" + ], + "SkillOrder": [10631, 10632, 10635], + "Skills": { + "10631": "Skill_A_03", + "10632": "Skill_S_Shenhe_01", + "10635": "Skill_E_Shenhe_01" + }, + "ProudMap": { "10631": 6331, "10632": 6332, "10635": 6339 }, + "NameTextMapHash": 334242634, + "SideIconName": "UI_AvatarIcon_Side_Shenhe", + "QualityType": "QUALITY_ORANGE" + }, + "10000064": { + "Element": "Rock", + "Consts": [ + "UI_Talent_S_Yunjin_01", + "UI_Talent_S_Yunjin_02", + "UI_Talent_U_Yunjin_01", + "UI_Talent_S_Yunjin_03", + "UI_Talent_U_Yunjin_02", + "UI_Talent_S_Yunjin_04" + ], + "SkillOrder": [10641, 10642, 10643], + "Skills": { + "10641": "Skill_A_03", + "10642": "Skill_S_Yunjin_01", + "10643": "Skill_E_Yunjin_01" + }, + "ProudMap": { "10641": 6431, "10642": 6432, "10643": 6439 }, + "NameTextMapHash": 655825874, + "SideIconName": "UI_AvatarIcon_Side_Yunjin", + "QualityType": "QUALITY_PURPLE" + }, + "10000065": { + "Element": "Electric", + "Consts": [ + "UI_Talent_S_Shinobu_01", + "UI_Talent_S_Shinobu_02", + "UI_Talent_U_Shinobu_01", + "UI_Talent_S_Shinobu_03", + "UI_Talent_U_Shinobu_02", + "UI_Talent_S_Shinobu_04" + ], + "SkillOrder": [10651, 10652, 10655], + "Skills": { + "10651": "Skill_A_01", + "10652": "Skill_S_Shinobu_01", + "10655": "Skill_E_Shinobu_01" + }, + "ProudMap": { "10651": 6531, "10652": 6532, "10655": 6539 }, + "NameTextMapHash": 1940821986, + "SideIconName": "UI_AvatarIcon_Side_Shinobu", + "QualityType": "QUALITY_PURPLE" + }, + "10000066": { + "Element": "Water", + "Consts": [ + "UI_Talent_S_Ayato_01", + "UI_Talent_S_Ayato_02", + "UI_Talent_U_Ayato_02", + "UI_Talent_S_Ayato_03", + "UI_Talent_U_Ayato_01", + "UI_Talent_S_Ayato_04" + ], + "SkillOrder": [10661, 10662, 10665], + "Skills": { + "10661": "Skill_A_01", + "10662": "Skill_S_Ayato_01", + "10665": "Skill_E_Ayato_01" + }, + "ProudMap": { "10661": 6631, "10662": 6632, "10665": 6639 }, + "NameTextMapHash": 1588620330, + "SideIconName": "UI_AvatarIcon_Side_Ayato", + "QualityType": "QUALITY_ORANGE" + }, + "10000067": { + "Element": "Grass", + "Consts": [ + "UI_Talent_S_Collei_01", + "UI_Talent_S_Collei_02", + "UI_Talent_U_Collei_02", + "UI_Talent_S_Collei_03", + "UI_Talent_U_Collei_01", + "UI_Talent_S_Collei_04" + ], + "SkillOrder": [10671, 10672, 10675], + "Skills": { + "10671": "Skill_A_02", + "10672": "Skill_S_Collei_01", + "10675": "Skill_E_Collei_01" + }, + "ProudMap": { "10671": 6731, "10672": 6732, "10675": 6739 }, + "NameTextMapHash": 2948362178, + "SideIconName": "UI_AvatarIcon_Side_Collei", + "QualityType": "QUALITY_PURPLE" + }, + "10000068": { + "Element": "Electric", + "Consts": [ + "UI_Talent_S_Dori_01", + "UI_Talent_S_Dori_02", + "UI_Talent_U_Dori_02", + "UI_Talent_S_Dori_03", + "UI_Talent_U_Dori_01", + "UI_Talent_S_Dori_04" + ], + "SkillOrder": [10681, 10682, 10685], + "Skills": { + "10681": "Skill_A_04", + "10682": "Skill_S_Dori_01", + "10685": "Skill_E_Dori_01" + }, + "ProudMap": { "10681": 6831, "10682": 6832, "10685": 6839 }, + "NameTextMapHash": 388272194, + "SideIconName": "UI_AvatarIcon_Side_Dori", + "QualityType": "QUALITY_PURPLE" + }, + "10000069": { + "Element": "Grass", + "Consts": [ + "UI_Talent_S_Tighnari_01", + "UI_Talent_S_Tighnari_02", + "UI_Talent_U_Tighnari_01", + "UI_Talent_S_Tighnari_03", + "UI_Talent_U_Tighnari_02", + "UI_Talent_S_Tighnari_04" + ], + "SkillOrder": [10691, 10692, 10695], + "Skills": { + "10691": "Skill_A_02", + "10692": "Skill_S_Tighnari_01", + "10695": "Skill_E_Tighnari_01" + }, + "ProudMap": { "10691": 6931, "10692": 6932, "10695": 6939 }, + "NameTextMapHash": 2506955778, + "SideIconName": "UI_AvatarIcon_Side_Tighnari", + "QualityType": "QUALITY_ORANGE" + }, + "10000005-501": { + "Element": "None", + "Consts": ["None", "None", "None", "None", "None", "None"], + "SkillOrder": [100540, 10067, 10068], + "Skills": { "10067": "None", "10068": "None", "100540": "Skill_A_01" }, + "NameTextMapHash": 3816664530, + "ProudMap": { "10067": 732, "10068": 739, "100540": 731 }, + "SideIconName": "UI_AvatarIcon_Side_PlayerBoy", + "QualityType": "QUALITY_ORANGE" + }, + "10000005-502": {}, + "10000005-503": {}, + "10000005-504": { + "Element": "Wind", + "Consts": [ + "UI_Talent_S_PlayerWind_01", + "UI_Talent_S_PlayerWind_02", + "UI_Talent_U_PlayerWind_02", + "UI_Talent_S_PlayerWind_03", + "UI_Talent_U_PlayerWind_01", + "UI_Talent_S_PlayerWind_04" + ], + "SkillOrder": [100543, 10067, 10068], + "Skills": { + "10067": "Skill_S_PlayerWind_01", + "10068": "Skill_E_PlayerWind_01", + "100543": "Skill_A_01" + }, + "NameTextMapHash": 1533656818, + "ProudMap": { "10067": 732, "10068": 739, "100543": 730 }, + "SideIconName": "UI_AvatarIcon_Side_PlayerBoy", + "QualityType": "QUALITY_ORANGE" + }, + "10000005-505": {}, + "10000005-506": { + "Element": "Rock", + "Consts": [ + "UI_Talent_S_PlayerRock_01", + "UI_Talent_S_PlayerRock_02", + "UI_Talent_U_PlayerRock_02", + "UI_Talent_S_PlayerRock_03", + "UI_Talent_U_PlayerRock_01", + "UI_Talent_S_PlayerRock_04" + ], + "SkillOrder": [100545, 10077, 10078], + "Skills": { + "10077": "Skill_S_PlayerRock_01", + "10078": "Skill_E_PlayerRock_01", + "100545": "Skill_A_01" + }, + "NameTextMapHash": 1533656818, + "ProudMap": { "10077": 932, "10078": 939, "100545": 730 }, + "SideIconName": "UI_AvatarIcon_Side_PlayerBoy", + "QualityType": "QUALITY_ORANGE" + }, + "10000005-507": { + "Element": "Electric", + "Consts": [ + "UI_Talent_S_PlayerElectric_01", + "UI_Talent_S_PlayerElectric_02", + "UI_Talent_U_PlayerElectric_01", + "UI_Talent_S_PlayerElectric_03", + "UI_Talent_U_PlayerElectric_02", + "UI_Talent_S_PlayerElectric_04" + ], + "SkillOrder": [100546, 10602, 10605], + "Skills": { + "10602": "Skill_S_PlayerElectric_01", + "10605": "Skill_E_PlayerElectric_01", + "100546": "Skill_A_01" + }, + "NameTextMapHash": 1533656818, + "ProudMap": { "10602": 1032, "10605": 1039, "100546": 1030 }, + "SideIconName": "UI_AvatarIcon_Side_PlayerBoy", + "QualityType": "QUALITY_ORANGE" + }, + "10000005-508": { + "Element": "Grass", + "Consts": [ + "UI_Talent_S_PlayerGrass_01", + "UI_Talent_S_PlayerGrass_02", + "UI_Talent_S_PlayerGrass_03", + "UI_Talent_S_PlayerGrass_04", + "UI_Talent_S_PlayerGrass_05", + "UI_Talent_S_PlayerGrass_06" + ], + "SkillOrder": [100547, 10117, 10118], + "Skills": { + "10117": "Skill_E_PlayerGrass_01", + "10118": "Skill_S_PlayerGrass_01", + "100547": "Skill_A_01" + }, + "NameTextMapHash": 1533656818, + "ProudMap": { "10117": 1132, "10118": 1139, "100547": 1130 }, + "SideIconName": "UI_AvatarIcon_Side_PlayerBoy", + "QualityType": "QUALITY_ORANGE" + }, + "10000007-701": { + "Element": "None", + "Consts": ["None", "None", "None", "None", "None", "None"], + "SkillOrder": [100550, 10067, 10068], + "Skills": { "10067": "None", "10068": "None", "100550": "Skill_A_01" }, + "NameTextMapHash": 3816664530, + "ProudMap": { "10067": 732, "10068": 739, "100550": 731 }, + "SideIconName": "UI_AvatarIcon_Side_PlayerGirl", + "QualityType": "QUALITY_ORANGE" + }, + "10000007-702": {}, + "10000007-703": {}, + "10000007-704": { + "Element": "Wind", + "Consts": [ + "UI_Talent_S_PlayerWind_01", + "UI_Talent_S_PlayerWind_02", + "UI_Talent_U_PlayerWind_02", + "UI_Talent_S_PlayerWind_03", + "UI_Talent_U_PlayerWind_01", + "UI_Talent_S_PlayerWind_04" + ], + "SkillOrder": [100553, 10067, 10068], + "Skills": { + "10067": "Skill_S_PlayerWind_01", + "10068": "Skill_E_PlayerWind_01", + "100553": "Skill_A_01" + }, + "NameTextMapHash": 3816664530, + "ProudMap": { "10067": 732, "10068": 739, "100553": 731 }, + "SideIconName": "UI_AvatarIcon_Side_PlayerGirl", + "QualityType": "QUALITY_ORANGE" + }, + "10000007-705": {}, + "10000007-706": { + "Element": "Rock", + "Consts": [ + "UI_Talent_S_PlayerRock_01", + "UI_Talent_S_PlayerRock_02", + "UI_Talent_U_PlayerRock_02", + "UI_Talent_S_PlayerRock_03", + "UI_Talent_U_PlayerRock_01", + "UI_Talent_S_PlayerRock_04" + ], + "SkillOrder": [100555, 10077, 10078], + "Skills": { + "10077": "Skill_S_PlayerRock_01", + "10078": "Skill_E_PlayerRock_01", + "100555": "Skill_A_01" + }, + "NameTextMapHash": 3816664530, + "ProudMap": { "10077": 932, "10078": 939, "100555": 731 }, + "SideIconName": "UI_AvatarIcon_Side_PlayerGirl", + "QualityType": "QUALITY_ORANGE" + }, + "10000007-707": { + "Element": "Electric", + "Consts": [ + "UI_Talent_S_PlayerElectric_01", + "UI_Talent_S_PlayerElectric_02", + "UI_Talent_U_PlayerElectric_01", + "UI_Talent_S_PlayerElectric_03", + "UI_Talent_U_PlayerElectric_02", + "UI_Talent_S_PlayerElectric_04" + ], + "SkillOrder": [100556, 10602, 10605], + "Skills": { + "10602": "Skill_S_PlayerElectric_01", + "10605": "Skill_E_PlayerElectric_01", + "100556": "Skill_A_01" + }, + "NameTextMapHash": 3816664530, + "ProudMap": { "10602": 1032, "10605": 1039, "100556": 1031 }, + "SideIconName": "UI_AvatarIcon_Side_PlayerGirl", + "QualityType": "QUALITY_ORANGE" + }, + "10000007-708": { + "Element": "Grass", + "Consts": [ + "UI_Talent_S_PlayerGrass_01", + "UI_Talent_S_PlayerGrass_02", + "UI_Talent_S_PlayerGrass_03", + "UI_Talent_S_PlayerGrass_04", + "UI_Talent_S_PlayerGrass_05", + "UI_Talent_S_PlayerGrass_06" + ], + "SkillOrder": [100557, 10117, 10118], + "Skills": { + "10117": "Skill_E_PlayerGrass_01", + "10118": "Skill_S_PlayerGrass_01", + "100557": "Skill_A_01" + }, + "NameTextMapHash": 3816664530, + "ProudMap": { "10117": 1132, "10118": 1139, "100557": 1131 }, + "SideIconName": "UI_AvatarIcon_Side_PlayerGirl", + "QualityType": "QUALITY_ORANGE" + } +} \ No newline at end of file diff --git a/LittlePaimon/database/models/character.py b/LittlePaimon/database/models/character.py index d81e6e1..c6e52e1 100644 --- a/LittlePaimon/database/models/character.py +++ b/LittlePaimon/database/models/character.py @@ -19,7 +19,7 @@ weapon_map = load_json(JSON_DATA / 'weapon.json') prop_list_map = load_json(JSON_DATA / 'prop.json') artifact_map = load_json(JSON_DATA / 'artifact.json') score_talent_map = load_json(JSON_DATA / 'score.json') -enka_icon_map = load_json(JSON_DATA / 'enka_icon.json') +enka_icon_map = load_json(JSON_DATA / 'genshin_info.json') reaction_coefficient = { '蒸发': 0, '融化': 0, @@ -165,6 +165,9 @@ class Artifacts(BaseModel): def append(self, artifact: Artifact): self.artifact_list.append(artifact) + def index(self, artifact: Artifact) -> int: + return self.artifact_list.index(artifact) + class Constellation(BaseModel): """命座数据""" @@ -325,14 +328,13 @@ class Character(Model): data['skillLevelMap'][ list(data['skillLevelMap'].keys())[score_talent_map['Talent'][role_name][1]]] += 3 + if character.name in ['神里绫华', '莫娜']: + del data['skillLevelMap'][list(data['skillLevelMap'].keys())[2]] + character.talents = Talents(talent_list=[Talent(name=role_skill_map['Name'][talent], level=data['skillLevelMap'][talent], icon=role_skill_map['Icon'][talent]) for talent in data['skillLevelMap']]) - - if character.name == '神里绫华': - character.talents[0], character.talents[-1] = character.talents[-1], character.talents[0] - character.talents[2], character.talents[-1] = character.talents[-1], character.talents[2] if character.name == '安柏': character.talents[0], character.talents[-1] = character.talents[-1], character.talents[0] if character.name in ['空', '荧']: @@ -431,7 +433,6 @@ class Character(Model): range(data['actived_constellation_num']) ]) if character.name in ['荧', '空']: - # TODO 草主 character.fetter = 10 character.element = '岩' if data['element'] == 'Geo' else '风' if data['element'] == 'Anemo' else '草' if data['element'] == 'Dendro' else '雷' role_name = character.element + '主' @@ -446,10 +447,10 @@ class Character(Model): data['skill_list'][score_talent_map['Talent'][role_name][0]]['level_current'] += 3 if len(data['talentIdList']) >= 5: data['skill_list'][score_talent_map['Talent'][role_name][1]]['level_current'] += 3 - talents_list = data['skill_list'][:3] if character.name in ['莫娜', '神里绫华']: - talents_list[-1] = data['skill_list'][3] - elif character.name == '达达利亚': + del data['skill_list'][2] + talents_list = data['skill_list'][:3] + if character.name == '达达利亚': talents_list[0]['level_current'] += 1 character.talents = Talents(talent_list=[Talent(name=t['name'], level=t['level_current'], diff --git a/LittlePaimon/plugins/Paimon_Info/damage_model.py b/LittlePaimon/plugins/Paimon_Info/damage_model.py index a275a80..9f69a34 100644 --- a/LittlePaimon/plugins/Paimon_Info/damage_model.py +++ b/LittlePaimon/plugins/Paimon_Info/damage_model.py @@ -863,32 +863,32 @@ async def draw_dmg_pic(dmg: Dict[str, Union[tuple, list]]) -> PMImage: :return: 伤害图片 """ height = 60 * len(dmg) - 20 - img = PMImage(size=(948, height + 80), color=(0, 0, 0, 0), mode='RGBA') - await img.draw_rounded_rectangle((0, 0, img.width, img.height), 10, (0, 0, 0, 100)) - await img.draw_line((250, 0), (250, 948), (255, 255, 255, 75), 2) - await img.draw_line((599, 0), (599, 60), (255, 255, 255, 75), 2) - await img.draw_line((0, 60), (948, 60), (255, 255, 255, 75), 2) + img = PMImage(size=(1002, height + 80), color=(0, 0, 0, 0), mode='RGBA') + await img.draw_rounded_rectangle((0, 0, img.width, img.height), 10, (14, 41, 68, 115)) + await img.draw_line((250, 0), (250, 1002), (255, 255, 255, 75), 2) + await img.draw_line((626, 0), (626, 60), (255, 255, 255, 75), 2) + await img.draw_line((0, 60), (1002, 60), (255, 255, 255, 75), 2) await img.text('伤害计算', (0, 250), (0, 60), font_manager.get('hywh.ttf', 30), 'white', 'center') - await img.text('期望伤害', (250, 599), (0, 60), font_manager.get('hywh.ttf', 30), 'white', 'center') - await img.text('暴击伤害', (599, 948), (0, 60), font_manager.get('hywh.ttf', 30), 'white', 'center') + await img.text('期望伤害', (250, 626), (0, 60), font_manager.get('hywh.ttf', 30), 'white', 'center') + await img.text('暴击伤害', (626, 1002), (0, 60), font_manager.get('hywh.ttf', 30), 'white', 'center') i = 1 for describe, dmg_list in dmg.items(): - await img.draw_line((0, 60 * i), (948, 60 * i), (255, 255, 255, 75), 2) + await img.draw_line((0, 60 * i), (1002, 60 * i), (255, 255, 255, 75), 2) await img.text(describe, (0, 250), (60 * i, 60 * (i + 1)), font_manager.get('hywh.ttf', 30), 'white', 'center') if len(dmg_list) == 1: if describe == '额外说明': - await img.text(dmg_list[0], (250, 948), (60 * i, 60 * (i + 1)), font_manager.get('hywh.ttf', 30), + await img.text(dmg_list[0], (250, 1002), (60 * i, 60 * (i + 1)), font_manager.get('hywh.ttf', 30), 'white', 'center') else: - await img.text(dmg_list[0], (250, 948), (60 * i, 60 * (i + 1)), font_manager.get('number.ttf', 30), + await img.text(dmg_list[0], (250, 1002), (60 * i, 60 * (i + 1)), font_manager.get('number.ttf', 30), 'white', 'center') else: - await img.draw_line((599, 60 * i), (599, 60 * (i + 1)), (255, 255, 255, 75), 2) - await img.text(dmg_list[0], (250, 599), (60 * i, 60 * (i + 1)), font_manager.get('number.ttf', 30), 'white', + await img.draw_line((626, 60 * i), (626, 60 * (i + 1)), (255, 255, 255, 75), 2) + await img.text(dmg_list[0], (250, 626), (60 * i, 60 * (i + 1)), font_manager.get('number.ttf', 30), 'white', 'center') - await img.text(dmg_list[1], (599, 948), (60 * i, 60 * (i + 1)), font_manager.get('number.ttf', 30), 'white', + await img.text(dmg_list[1], (626, 1002), (60 * i, 60 * (i + 1)), font_manager.get('number.ttf', 30), 'white', 'center') i += 1 diff --git a/LittlePaimon/plugins/Paimon_Info/draw_character_detail.py b/LittlePaimon/plugins/Paimon_Info/draw_character_detail.py index d34f5c5..04be4d5 100644 --- a/LittlePaimon/plugins/Paimon_Info/draw_character_detail.py +++ b/LittlePaimon/plugins/Paimon_Info/draw_character_detail.py @@ -1,10 +1,11 @@ from nonebot import logger from LittlePaimon.config.path import ENKA_RES, RESOURCE_BASE_PATH -from LittlePaimon.utils import load_image, aiorequests +from LittlePaimon.utils import load_image from LittlePaimon.utils.genshin import GenshinTools from LittlePaimon.utils.image import PMImage, font_manager as fm from LittlePaimon.utils.message import MessageBuild +from LittlePaimon.utils.alias import get_icon from LittlePaimon.database.models import Character from .damage_cal import get_role_dmg @@ -22,11 +23,7 @@ ICON = RESOURCE_BASE_PATH / 'icon' async def draw_chara_detail(uid: str, info: Character): - # 暂时用风 - if info.element == '草': - img = PMImage(image=ENKA_RES / f'背景_风.png') - else: - img = PMImage(image=ENKA_RES / f'背景_{info.element}.png') + img = PMImage(await load_image(ENKA_RES / f'背景_{info.element}.png')) try: dmg_img = await get_role_dmg(info) except Exception as e: @@ -34,87 +31,95 @@ async def draw_chara_detail(uid: str, info: Character): dmg_img = None if dmg_img: await img.stretch((730, 1377), dmg_img.height + 667, 'height') - await img.paste(dmg_img, (71, 1846)) - await img.paste(await load_image(ENKA_RES / '底遮罩.png'), (0, 0)) - if info.name not in ['荧', '空', '埃洛伊']: - await img.paste(await load_image(ENKA_RES / f'{info.region}.png', size=(130, 130)), (0, 0)) + await img.paste(dmg_img, (42, 1820)) - await img.text(f"UID{uid}", 131, 100, fm.get('number.ttf', 48)) - await img.text(info.name, 134, 150, fm.get('优设标题黑.ttf', 72)) + # 立绘 + chara_img = await load_image(RESOURCE_BASE_PATH / 'splash' / f'{get_icon(chara_id=info.character_id, icon_type="splash")}.png') + if chara_img.height >= 630: + chara_img = chara_img.resize((chara_img.width * 630 // chara_img.height, 630)) + await img.paste(chara_img, (770 - chara_img.width // 2, 20)) + await img.paste(await load_image(ENKA_RES / '底遮罩.png'), (0, 0)) + # 地区 + if info.name not in ['荧', '空', '埃洛伊']: + await img.paste(await load_image(ENKA_RES / f'{info.region}.png', size=(108, 108)), (25, 25)) + + await img.text(f"UID{uid}", 160, 100, fm.get('number.ttf', 48)) + await img.text(info.name, 45, 150, fm.get('优设标题黑.ttf', 72)) + name_length = img.text_length(info.name, fm.get('优设标题黑.ttf', 72)) level_mask = await load_image(ENKA_RES / '等级遮罩.png') - await img.paste(level_mask, (298 + 60 * (len(info.name) - 2), 172)) + await img.paste(level_mask, (45 + name_length + 25, 172)) await img.text(f'LV{info.level}', - (298 + 60 * (len(info.name) - 2), 298 + 60 * (len(info.name) - 2) + 171), - (170, 172 + 52), + (40 + name_length + 25, 40 + name_length + 25 + 171), + (172, 172 + 52), fm.get('number.ttf', 48), - 'black', + '#0e2944', 'center') # 属性值 - await img.text('生命值', 89, 262, fm.get('hywh.ttf', 34)) + await img.text('生命值', 59, 267, fm.get('hywh.ttf', 34)) await img.text(f"{info.prop.base_health}", - 480 - img.text_length(f"+{info.prop.extra_health}", fm.get('number.ttf', 34)) - 5, - 264, + 450 - img.text_length(f"+{info.prop.extra_health}", fm.get('number.ttf', 34)) - 5, + 269, fm.get('number.ttf', 34), align='right') await img.text(f"+{info.prop.extra_health}", - 480, - 264, + 450, + 269, fm.get('number.ttf', 34), '#59c538', 'right') - await img.text('攻击力', 89, 319, fm.get('hywh.ttf', 34)) + await img.text('攻击力', 59, 324, fm.get('hywh.ttf', 34)) await img.text(f"{info.prop.base_attack}", - 480 - img.text_length(f"+{info.prop.extra_attack}", fm.get('number.ttf', 34)) - 5, - 321, + 450 - img.text_length(f"+{info.prop.extra_attack}", fm.get('number.ttf', 34)) - 5, + 326, fm.get('number.ttf', 34), align='right') await img.text(f"+{info.prop.extra_attack}", - 480, - 321, + 450, + 326, fm.get('number.ttf', 34), '#59c538', 'right') - await img.text('防御力', 89, 377, fm.get('hywh.ttf', 34)) + await img.text('防御力', 59, 382, fm.get('hywh.ttf', 34)) await img.text(f"{info.prop.base_defense}", - 480 - img.text_length(f"+{info.prop.extra_defense}", fm.get('number.ttf', 34)) - 5, - 379, + 450 - img.text_length(f"+{info.prop.extra_defense}", fm.get('number.ttf', 34)) - 5, + 384, fm.get('number.ttf', 34), align='right') await img.text(f"+{info.prop.extra_defense}", - 480, - 379, + 450, + 384, fm.get('number.ttf', 34), '#59c538', 'right') - await img.text('暴击率', 89, 436, fm.get('hywh.ttf', 34)) + await img.text('暴击率', 59, 441, fm.get('hywh.ttf', 34)) await img.text(f"{round(info.prop.crit_rate * 100, 1)}%", - 480, - 438, + 450, + 443, fm.get('number.ttf', 34), align='right') - await img.text('暴击伤害', 89, 493, fm.get('hywh.ttf', 34)) + await img.text('暴击伤害', 59, 498, fm.get('hywh.ttf', 34)) await img.text(f"{round(info.prop.crit_damage * 100, 1)}%", - 480, - 495, + 450, + 500, fm.get('number.ttf', 34), align='right') - await img.text('元素精通', 89, 551, fm.get('hywh.ttf', 34)) + await img.text('元素精通', 59, 556, fm.get('hywh.ttf', 34)) await img.text(str(int(info.prop.elemental_mastery)), - 480, - 553, + 450, + 558, fm.get('number.ttf', 34), align='right') - await img.text('元素充能效率', 89, 610, fm.get('hywh.ttf', 34)) + await img.text('元素充能效率', 59, 615, fm.get('hywh.ttf', 34)) await img.text(f"{round(info.prop.elemental_efficiency * 100, 1)}%", - 480, - 612, + 450, + 617, fm.get('number.ttf', 34), align='right') @@ -123,99 +128,91 @@ async def draw_chara_detail(uid: str, info: Character): if v >= max_element[1]: max_element = e, v await img.text(f'{max_element[0]}伤害加成' if max_element[0] == '物理' else f'{max_element[0]}元素伤害加成', - 89, - 669, + 59, + 674, fm.get('hywh.ttf', 34)) await img.text(f"{round(max_element[1] * 100, 1)}%", - 480, - 671, + 450, + 676, fm.get('number.ttf', 34), align='right') # 天赋 - if info.element == '草': - base_icon = await load_image(ENKA_RES / '图标_风.png', mode='RGBA') - else: - base_icon = await load_image(ENKA_RES / f'图标_{info.element}.png', mode='RGBA') + base_icon = await load_image(ENKA_RES / f'图标_{info.element}.png', mode='RGBA') base_icon_grey = await load_image(ENKA_RES / '图标_灰.png', mode='RGBA') - if info.name in ['神里绫华', '莫娜']: - info.talents.pop(2) + for i in range(3): - await img.paste(base_icon.resize((132, 142)), (564, 253 + 146 * i)) + await img.paste(base_icon.resize((132, 142)), (551 + i * 176, 633)) await img.text(str(info.talents[i].level), - (510, 552), - (304 + 146 * i, 349 + 146 * i), + (517 + 176 * i, 559 + 176 * i), + 690, fm.get('number.ttf', 34), - 'black', + '#0e2944', 'center') - talent_icon = await load_image(TALENT_ICON / f'{info.talents[i].icon}.png', size=(57, 57), mode='RGBA') - await img.paste(talent_icon, (603, 298 + 147 * i)) + await img.paste(await load_image(TALENT_ICON / f'{info.talents[i].icon}.png', size=(57, 57), mode='RGBA'), (588 + i * 176, 679)) # 命座 lock = await load_image(ENKA_RES / '锁.png', mode='RGBA', size=(45, 45)) t = 0 for con in info.constellation: - await img.paste(base_icon.resize((83, 90)), (510 + t * 84, 790)) + await img.paste(base_icon.resize((83, 90)), (510 + t * 84, 805)) con_icon = await load_image(TALENT_ICON / f'{con.icon}.png', size=(45, 45), mode='RGBA') - await img.paste(con_icon, (529 + t * 84, 813)) + await img.paste(con_icon, (529 + t * 84, 828)) t += 1 for t2 in range(t, 6): - await img.paste(base_icon_grey.resize((83, 90)), (510 + t2 * 84, 790)) - await img.paste(lock, (530 + t2 * 84, 813)) + await img.paste(base_icon_grey.resize((83, 90)), (510 + t2 * 84, 805)) + await img.paste(lock, (530 + t2 * 84, 828)) # 武器 weapon_bg = await load_image(ICON / f'star{info.weapon.rarity}.png', size=(150, 150)) - await img.paste(weapon_bg, (91, 760)) + await img.paste(weapon_bg, (59, 757)) weapon_icon = await load_image(WEAPON_ICON / f'{info.weapon.icon}.png', size=(150, 150), mode='RGBA') - await img.paste(weapon_icon, (91, 760)) - await img.text(info.weapon.name, 268, 758, fm.get('hywh.ttf', 34)) + await img.paste(weapon_icon, (59, 757)) + await img.text(info.weapon.name, 254, 759, fm.get('hywh.ttf', 34)) star = await load_image(ENKA_RES / 'star.png') for i in range(info.weapon.rarity): - await img.paste(star, (267 + i * 30, 799)) + await img.paste(star, (254 + i * 30, 798)) await img.text(f'LV{info.weapon.level}', - (268, 268 + 98), - (835, 864), + (254, 254 + 98), + (834, 864), fm.get('number.ttf', 27), - 'black', + '#0e2944', 'center') - await img.text(f'精炼{info.weapon.affix_level}阶', 266, 869, fm.get('hywh.ttf', 34)) + await img.text(f'精炼{info.weapon.affix_level}阶', 254, 879, fm.get('hywh.ttf', 34)) # 圣遗物 effective = GenshinTools.get_effective(info) average = GenshinTools.get_expect_score(effective) total_score = 0 - # 第一排 - for i in range(2): - try: - artifact = info.artifacts[i] - except IndexError: - break - artifact_bg = await load_image(RESOURCE_BASE_PATH / 'other' / f'star{artifact.rarity}.png', size=(100, 100)) - await img.paste(artifact_bg, (587 + 317 * i, 1002)) - artifact_icon = await load_image(ARTIFACT_ICON / f'{artifact.icon}.png', size=(100, 100), mode='RGBA') - await img.paste(artifact_icon, (587 + 317 * i, 1002)) - await img.text(artifact.name, 411 + 317 * i, 951, fm.get('hywh.ttf', 40)) + w = 380 + h = 937 + for artifact in info.artifacts: + artifact_bg = await load_image(ICON / f'star{artifact.rarity}.png', size=(93, 93)) + await img.paste(artifact_bg, (216 + w, 70 + h)) + a_icon = await load_image(ARTIFACT_ICON / f'{artifact.icon}.png', size=(93, 93), mode='RGBA') + await img.paste(a_icon, (217 + w, 70 + h)) + await img.text(artifact.name, 22 + w, 24 + h, fm.get('hywh.ttf', 36)) value, score = GenshinTools.artifact_score(info.prop, artifact, effective) total_score += value rank = 'SSS' if score >= 140 else 'SS' if 120 <= score < 140 else 'S' if 100 <= score < 120 else 'A' if 75 <= score < 100 else 'B' if 50 <= score < 75 else 'C' - await img.text(f'{rank}-{value}', 412 + 317 * i, 998, fm.get('number.ttf', 28)) - await img.paste(level_mask.resize((98, 30)), (412 + 317 * i, 1032)) - await img.text(f"LV{artifact.level}", - (412 + 317 * i, 412 + 317 * i + 98), - (1032, 1062), + await img.text(f'{rank}-{value}', 22 + w, 66 + h, fm.get('number.ttf', 28), '#ffde6b') + await img.paste(level_mask.resize((98, 30)), (21 + w, 97 + h)) + await img.text(f"+{artifact.level}", + (21 + w, 21 + w + 98), + 99 + h, fm.get('number.ttf', 27), 'black', 'center') - await img.text(artifact.main_property.name, 410 + 317 * i, 1069, fm.get('hywh.ttf', 25)) + await img.text(artifact.main_property.name, 21 + w, 134 + h, fm.get('hywh.ttf', 25)) value_text = f'+{artifact.main_property.value}%' if artifact.main_property.name not in ['生命值', '攻击力', '元素精通'] else f'+{int(artifact.main_property.value)}' - await img.text(value_text, 408 + 317 * i, 1100, font=fm.get('number.ttf', 48)) + await img.text(value_text, 21 + w, 168 + h, font=fm.get('number.ttf', 48)) for j in range(len(artifact.prop_list)): if '百分比' in artifact.prop_list[j].name: text = artifact.prop_list[j].name.replace('百分比', '') else: text = artifact.prop_list[j].name - await img.text(text, 411 + 317 * i, 1163 + 50 * j, + await img.text(text, 21 + w, 230 + h + 50 * j, color='white' if GenshinTools.check_effective(artifact.prop_list[j].name, effective) else '#afafaf', font=fm.get('hywh.ttf', 25)) @@ -223,107 +220,67 @@ async def draw_chara_detail(uid: str, info: Character): num = '+' + str(artifact.prop_list[j].value) + '%' else: num = '+' + str(int(artifact.prop_list[j].value)) - await img.text(num, 679 + 317 * i, 1163 + 50 * j, - color='white' if GenshinTools.check_effective(artifact.prop_list[j].name, - effective) else '#afafaf', - font=fm.get('number.ttf', 25), align='right') - # 第二排 - for i in range(3): - try: - artifact = info.artifacts[i + 2] - except IndexError: - break - artifact_bg = await load_image(RESOURCE_BASE_PATH / 'other' / f'star{artifact.rarity}.png', size=(100, 100)) - await img.paste(artifact_bg, (270 + 317 * i, 1439)) - artifact_icon = await load_image(ARTIFACT_ICON / f'{artifact.icon}.png', size=(100, 100), mode='RGBA') - await img.paste(artifact_icon, (270 + 317 * i, 1439)) - await img.text(artifact.name, 94 + 317 * i, 1388, fm.get('hywh.ttf', 40)) - value, score = GenshinTools.artifact_score(info.prop, artifact, effective) - total_score += value - rank = 'SSS' if score >= 140 else 'SS' if 120 <= score < 140 else 'S' if 100 <= score < 120 else 'A' if 75 <= score < 100 else 'B' if 50 <= score < 75 else 'C' - await img.text(f'{rank}-{value}', 95 + 317 * i, 1435, fm.get('number.ttf', 28)) - await img.paste(level_mask.resize((98, 30)), (95 + 317 * i, 1469)) - await img.text(f"LV{artifact.level}", - (95 + 317 * i, 95 + 317 * i + 98), - (1469, 1499), - fm.get('number.ttf', 27), - 'black', - 'center') - await img.text(artifact.main_property.name, 94 + 317 * i, 1506, fm.get('hywh.ttf', 25)) - value_text = f'+{artifact.main_property.value}%' if artifact.main_property.name not in ['生命值', '攻击力', - '元素精通'] else f'+{int(artifact.main_property.value)}' - await img.text(value_text, 91 + 317 * i, 1538, font=fm.get('number.ttf', 48)) - for j in range(len(artifact.prop_list)): - if '百分比' in artifact.prop_list[j].name: - text = artifact.prop_list[j].name.replace('百分比', '') - else: - text = artifact.prop_list[j].name - await img.text(text, 94 + 317 * i, 1600 + 50 * j, - color='white' if GenshinTools.check_effective(artifact.prop_list[j].name, - effective) else '#afafaf', - font=fm.get('hywh.ttf', 25)) - if artifact.prop_list[j].name not in ['攻击力', '防御力', '生命值', '元素精通']: - num = '+' + str(artifact.prop_list[j].value) + '%' - else: - num = '+' + str(int(artifact.prop_list[j].value)) - await img.text(num, 362 + 317 * i, 1600 + 50 * j, + await img.text(num, 307 + w, 230 + h + 50 * j, color='white' if GenshinTools.check_effective(artifact.prop_list[j].name, effective) else '#afafaf', font=fm.get('number.ttf', 25), align='right') + if info.artifacts.index(artifact) == 1: + w = 42 + h += 437 + else: + w += 338 # 圣遗物评分 - await img.text('总有效词条数', 119, 1057, color='#afafaf', font=fm.get('hywh.ttf', 36)) score_pro = total_score / (average * 5) * 100 total_rank = 'SSS' if score_pro >= 140 else 'SS' if 120 <= score_pro < 140 else 'S' if 100 <= score_pro < 120 else 'A' if 75 <= score_pro < 100 else 'B' if 50 <= score_pro < 75 else 'C' rank_icon = await load_image(ENKA_RES / f'评分{total_rank[0]}.png', mode='RGBA') if len(total_rank) == 3: + await img.paste(rank_icon, (65, 964)) + await img.paste(rank_icon, (115, 964)) + await img.paste(rank_icon, (165, 964)) + await img.text(str(round(total_score, 1)), 220, 974, font=fm.get('number.ttf', 60)) + elif len(total_rank) == 2: await img.paste(rank_icon, (95, 964)) await img.paste(rank_icon, (145, 964)) - await img.paste(rank_icon, (195, 964)) - await img.text(str(round(total_score, 1)), 250, 974, font=fm.get('number.ttf', 60)) - elif len(total_rank) == 2: - await img.paste(rank_icon, (125, 964)) - await img.paste(rank_icon, (175, 964)) - await img.text(str(round(total_score, 1)), 235, 974, font=fm.get('number.ttf', 60)) + await img.text(str(round(total_score, 1)), 205, 974, font=fm.get('number.ttf', 60)) else: - await img.paste(rank_icon, (143, 964)) - await img.text(str(round(total_score, 1)), 217, 974, font=fm.get('number.ttf', 60)) + await img.paste(rank_icon, (113, 964)) + await img.text(str(round(total_score, 1)), 187, 974, font=fm.get('number.ttf', 60)) # 圣遗物套装 suit = GenshinTools.get_artifact_suit(info.artifacts) if not suit: - await img.text('未激活套装', 184, 1168, font=fm.get('hywh.ttf', 36)) - await img.text('未激活套装', 184, 1292, font=fm.get('hywh.ttf', 36)) + await img.text('未激活套装', 154, 1168, font=fm.get('hywh.ttf', 36)) + await img.text('未激活套装', 154, 1292, font=fm.get('hywh.ttf', 36)) elif len(suit) == 1: artifact1 = await load_image(ARTIFACT_ICON / f'{suit[0][1]}.png', size=(110, 110), mode='RGBA') - await img.paste(artifact1, (76, 1130)) - await img.text(f'{suit[0][0][:2]}二件套', 184, 1168, font=fm.get('hywh.ttf', 36)) - await img.text('未激活套装', 184, 1292, font=fm.get('hywh.ttf', 36)) + await img.paste(artifact1, (46, 1130)) + await img.text(f'{suit[0][0][:2]}二件套', 154, 1168, font=fm.get('hywh.ttf', 36)) + await img.text('未激活套装', 154, 1292, font=fm.get('hywh.ttf', 36)) else: if suit[0][0] == suit[1][0]: artifact2 = artifact1 = await load_image(ARTIFACT_ICON / f'{suit[0][1]}.png', size=(110, 110), mode='RGBA') - await img.text(f'{suit[0][0][:2]}四件套', 184, 1168, font=fm.get('hywh.ttf', 36)) - await img.text(f'{suit[0][0][:2]}四件套', 184, 1292, font=fm.get('hywh.ttf', 36)) + await img.text(f'{suit[0][0][:2]}四件套', 154, 1168, font=fm.get('hywh.ttf', 36)) + await img.text(f'{suit[0][0][:2]}四件套', 154, 1292, font=fm.get('hywh.ttf', 36)) else: artifact1 = await load_image(ARTIFACT_ICON / f'{suit[0][1]}.png', size=(110, 110), mode='RGBA') artifact2 = await load_image(ARTIFACT_ICON / f'{suit[1][1]}.png', size=(110, 110), mode='RGBA') - await img.text(f'{suit[0][0][:2]}两件套', 184, 1168, font=fm.get('hywh.ttf', 36)) - await img.text(f'{suit[1][0][:2]}两件套', 184, 1292, font=fm.get('hywh.ttf', 36)) - await img.paste(artifact1, (76, 1130)) - await img.paste(artifact2, (76, 1255)) + await img.text(f'{suit[0][0][:2]}两件套', 154, 1168, font=fm.get('hywh.ttf', 36)) + await img.text(f'{suit[1][0][:2]}两件套', 154, 1292, font=fm.get('hywh.ttf', 36)) + await img.paste(artifact1, (46, 1130)) + await img.paste(artifact2, (46, 1255)) # 立绘 - await img.paste(await load_image(ENKA_RES / '立绘' / f'{info.name}.png'), (695, 234)) await img.text(f'更新于{info.update_time.strftime("%m-%d %H:%M")}', (0, 1080), - (img.height - 110, img.height - 50), + (img.height - 123, img.height - 80), fm.get('优设标题黑.ttf', 33), '#afafaf', 'center') await img.text('Created by LittlePaimon | Powered by Enka.Network', (0, 1080), - (img.height - 60, img.height), - fm.get('优设标题黑.ttf', 36), + (img.height - 80, img.height - 40), + fm.get('优设标题黑.ttf', 33), 'white', 'center') diff --git a/LittlePaimon/utils/alias.py b/LittlePaimon/utils/alias.py index 9ba1831..1b28ef2 100644 --- a/LittlePaimon/utils/alias.py +++ b/LittlePaimon/utils/alias.py @@ -1,10 +1,11 @@ import difflib -from typing import Union, Literal, List +from typing import Union, Literal, List, Optional from .files import load_json from LittlePaimon.config import JSON_DATA alias_file = load_json(JSON_DATA / 'alias.json') +info_file = load_json(JSON_DATA / 'genshin_info.json') def get_short_name(name: str) -> str: @@ -85,3 +86,31 @@ def get_match_alias(msg: str, type: Literal['角色', '武器', '原魔', '圣 elif type == '原魔': match_list = difflib.get_close_matches(msg, alias_list, cutoff=0.4, n=5) return match_list[0] if len(match_list) == 1 else match_list + + +def get_icon(name: Optional[str] = None, chara_id: Optional[int] = None, + icon_type: Literal['avatar', 'card', 'splash', 'slice', 'side'] = 'avatar') -> Optional[str]: + """ + 根据角色名字或id获取角色的图标 + :param name: 角色名 + :param chara_id:角色id + :param icon_type: 图标类型,有roles、weapons、monsters + :return: 图标字符串 + """ + if name and not chara_id: + chara_id = get_id_by_name(name) + info = info_file.get(str(chara_id)) + if not info: + return None + side_icon = info['SideIconName'] + if icon_type == 'side': + return side_icon + elif icon_type == 'avatar': + return side_icon.replace('_Side', '') + elif icon_type == 'card': + return side_icon.replace('_Side', '') + '_Card' + elif icon_type == 'splash': + return side_icon.replace('Icon_Side', 'Img').replace('UI_', 'UI_Gacha_') + elif icon_type == 'slice': + return side_icon.replace('_Side', '').replace('UI_', 'UI_Gacha_') + diff --git a/LittlePaimon/utils/genshin_api.py b/LittlePaimon/utils/genshin_api.py index 5c7c03d..f6d5ba3 100644 --- a/LittlePaimon/utils/genshin_api.py +++ b/LittlePaimon/utils/genshin_api.py @@ -330,7 +330,7 @@ async def get_mihoyo_private_data( if await check_retcode(data, cookie_info, 'private', user_id, uid): return data else: - return 'cookie疑似失效' + return f'你的UID{uid}的cookie疑似失效了' async def get_sign_reward_list() -> dict: diff --git a/LittlePaimon/utils/message.py b/LittlePaimon/utils/message.py index e076392..1e339e3 100644 --- a/LittlePaimon/utils/message.py +++ b/LittlePaimon/utils/message.py @@ -180,7 +180,7 @@ def CommandPlayer(limit: int = 3, only_cn: bool = True) -> List[Player]: elif uid := await get_uid(event=event, user_id=user): uids = [uid] else: - await matcher.finish('请把uid给我哦', at_sender=True) + await matcher.finish('第一次查询请把uid给我哦', at_sender=True) extra_info = replace_all(extra_info, uids) for uid in uids: query_list.append(Player(user_id=user, uid=uid)) @@ -212,7 +212,7 @@ def CommandUID(only_cn: bool = True) -> str: elif uid := await get_uid(event=event): uid = uid else: - await matcher.finish('请提供uid') + await matcher.finish('第一次查询请把UID给我哦') state['msg'] = event.message.extract_plain_text().replace(uid, '') return uid @@ -228,7 +228,7 @@ def CommandCharacter(limit: int = 3, replace_uid: bool = True) -> List[str]: async def _character(matcher: Matcher, state: T_State, msg: str = Arg('msg')): if not msg: - await matcher.finish('请输入要查询的角色名称') + await matcher.finish('请给出要查询的角色名称') character_list = [] characters = msg.split(' ') for character_name in characters: @@ -237,7 +237,7 @@ def CommandCharacter(limit: int = 3, replace_uid: bool = True) -> List[str]: character_list.append(list(character_match.keys())[0]) msg.replace(character_name, '') if not character_list: - await matcher.finish(f'没有名为{msg}的角色') + await matcher.finish(f'没有名为{msg}的角色!') state['msg'] = msg if len(character_list) > limit: character_list = character_list[:limit] @@ -246,7 +246,7 @@ def CommandCharacter(limit: int = 3, replace_uid: bool = True) -> List[str]: async def _character2(matcher: Matcher, state: T_State, msg: Message = CommandArg()): msg = msg.extract_plain_text().strip() if not msg: - await matcher.finish('请输入角色名称') + await matcher.finish('请给出要查询的角色名称') character_list = [] characters = msg.split(' ') for character_name in characters: @@ -255,7 +255,7 @@ def CommandCharacter(limit: int = 3, replace_uid: bool = True) -> List[str]: character_list.append(list(character_match.keys())[0]) msg.replace(character_name, '') if not character_list: - await matcher.finish(f'没有名为{msg}的角色') + await matcher.finish(f'没有名为{msg}的角色!') state['msg'] = msg if len(character_list) > limit: character_list = character_list[:limit]