From 451f0c5f5d3c1daa1ec5b61ef8ffd84e9045eb76 Mon Sep 17 00:00:00 2001 From: qwerdvd <105906879+qwerdvd@users.noreply.github.com> Date: Tue, 5 Dec 2023 08:46:14 +0800 Subject: [PATCH] fix excel load --- ArknightsUID/arknightsuid_wiki/__init__.py | 24 ++ .../arknightsuid_wiki/draw_wiki_img.py | 250 +++++++++++++++++- .../texture2D/skill1_bar.png | Bin 0 -> 16676 bytes .../texture2D/skill2_bar.png | Bin 0 -> 16989 bytes .../texture2D/skill3_bar.png | Bin 0 -> 11322 bytes .../arknightsuid_wiki/texture2D/skill_bg.png | Bin 0 -> 5008 bytes 6 files changed, 260 insertions(+), 14 deletions(-) create mode 100644 ArknightsUID/arknightsuid_wiki/texture2D/skill1_bar.png create mode 100644 ArknightsUID/arknightsuid_wiki/texture2D/skill2_bar.png create mode 100644 ArknightsUID/arknightsuid_wiki/texture2D/skill3_bar.png create mode 100644 ArknightsUID/arknightsuid_wiki/texture2D/skill_bg.png diff --git a/ArknightsUID/arknightsuid_wiki/__init__.py b/ArknightsUID/arknightsuid_wiki/__init__.py index 71ed30b..4504430 100644 --- a/ArknightsUID/arknightsuid_wiki/__init__.py +++ b/ArknightsUID/arknightsuid_wiki/__init__.py @@ -1,8 +1,13 @@ +import asyncio import re +from pathlib import Path from gsuid_core.bot import Bot +from gsuid_core.data_store import get_res_path from gsuid_core.models import Event +from gsuid_core.plugins.ArknightsUID.ArknightsUID.arknightsuid_resource.memoryStore import store from gsuid_core.plugins.ArknightsUID.ArknightsUID.arknightsuid_wiki.draw_wiki_img import ( + # draw_wiki, get_equip_info, get_wiki_info, ) @@ -32,6 +37,15 @@ async def text2pic(text: str, max_size: int = 800, font_size: int = 20): async def send_role_wiki_pic(bot: Bot, ev: Event): char_name = ' '.join(re.findall('[\u4e00-\u9fa5]+', ev.text)) + try: + CHARACTER_TABLE = Excel.CHARATER_TABLE + except AttributeError: + TASK = [] + for file_path in Path(get_res_path(['ArknightsUID', 'resource', 'gamedata'])).glob('*.json'): + TASK.append(store.get_file(file_path)) + asyncio.gather(*TASK) + + await Excel.preload_table() CHARACTER_TABLE = Excel.CHARATER_TABLE char_id = None @@ -43,6 +57,7 @@ async def send_role_wiki_pic(bot: Bot, ev: Event): await bot.send('未找到该干员') return await bot.logger.info(f'开始获取{char_name}图鉴') + # img = await draw_wiki(char_id=char_id) img = await get_wiki_info(char_id=char_id) await bot.send(await text2pic(img)) @@ -51,6 +66,15 @@ async def send_role_wiki_pic(bot: Bot, ev: Event): async def send_equip_wiki_pic(bot: Bot, ev: Event): char_name = ' '.join(re.findall('[\u4e00-\u9fa5]+', ev.text)) + try: + CHARACTER_TABLE = Excel.CHARATER_TABLE + except AttributeError: + TASK = [] + for file_path in Path(get_res_path(['ArknightsUID', 'resource', 'gamedata'])).glob('*.json'): + TASK.append(store.get_file(file_path)) + asyncio.gather(*TASK) + + await Excel.preload_table() CHARACTER_TABLE = Excel.CHARATER_TABLE char_id = None diff --git a/ArknightsUID/arknightsuid_wiki/draw_wiki_img.py b/ArknightsUID/arknightsuid_wiki/draw_wiki_img.py index 10ae1ac..9c1d586 100644 --- a/ArknightsUID/arknightsuid_wiki/draw_wiki_img.py +++ b/ArknightsUID/arknightsuid_wiki/draw_wiki_img.py @@ -1,17 +1,23 @@ import asyncio import re from pathlib import Path -from typing import Union +from pprint import pformat +from typing import Any, Dict, Union +from colorama import Fore, Style +from gsuid_core.utils.colortext.ColorText import ColorTextGroup, split_ctg +from gsuid_core.utils.image.image_tools import draw_text_by_line from jinja2 import Template from PIL import Image, ImageDraw from ..arknightsuid_resource.constants import Excel from ..utils.fonts.source_han_sans import ( - # sans_font_18, - # sans_font_26, - # sans_font_34, - # sans_font_50, + sans_font_18, + sans_font_20, + sans_font_24, + sans_font_26, + sans_font_34, + sans_font_50, sans_font_120, ) @@ -80,7 +86,18 @@ potential_id_to_cn = { } -def render_template(template_str, data): +def test_ctg(length: int, *params): + print( + f'{Fore.GREEN}> running split_ctg(){Style.RESET_ALL}\ + \n length: {length}\ + \n texts: {params}' + ) + groups_ = ColorTextGroup(list(params)) + f_ = pformat(split_ctg(groups_, length)).split('\n') + print(Fore.CYAN, '\t', f_[0], '\n\t'.join(f_[0:])) + + +def render_template(template_str: str, data: Dict[str, Union[float, int]]): matches = re.finditer(r'\{([^}:]+)\}', template_str) matches_1 = re.finditer(r'\{([^{}]+):([^{}]+)\}', template_str) @@ -91,8 +108,13 @@ def render_template(template_str, data): placeholder_data[placeholder[0]] = (formatting_option, data.get(placeholder[0], '')) for match in matches_1: placeholder, formatting_option = match.groups() - - placeholder_data[placeholder] = (formatting_option, data.get(placeholder.replace('-', ''), '')) + value = data.get(placeholder.replace('-', ''), '') + # 可以在下列状态和初始状态间切换:\n攻击范围缩小,防御力+{def:0%}, + # 每秒恢复最大生命的{HP_RECOVERY_PER_SEC_BY_MAX_HP_RATIO:0.0%} + # {'def': 1, 'hp_recovery_per_sec_by_max_hp_ratio': 0.06} + if value == '': + value = data.get(placeholder.replace('-', '_').lower(), '') + placeholder_data[placeholder] = (formatting_option, value) for placeholder, (formatting_option, value) in placeholder_data.items(): if formatting_option == '': @@ -367,18 +389,19 @@ async def draw_wiki(char_id: str): CHARACTER_TABLE = Excel.CHARATER_TABLE SKILL_TABLE = Excel.SKILL_TABLE UNIEQUIP_TABLE = Excel.UNIEQUIP_TABLE + RANGE_TABLE = Excel.RANGE_TABLE img = Image.new('RGBA', (1500, 2800), (255, 255, 255, 0)) draw = ImageDraw.Draw(img) img.paste(bg_img, (0, 0)) img.paste(vvan_img, (-700, -100), vvan_img) - img.paste(title_img, (0, 0), title_img) + img.paste(title_img, (0, -50), title_img) character_data = CHARACTER_TABLE[char_id] char_name = character_data.name draw.text( - (80, 145), + (144, 85), char_name, font=sans_font_120, fill=black_color, @@ -387,24 +410,202 @@ async def draw_wiki(char_id: str): char_rarity = character_data.rarity rarity_img = Image.open(TEXTURE2D_PATH / f'rarity_yellow_{char_rarity}.png') - img.paste(rarity_img, (800, 300), rarity_img) + img.paste(rarity_img, (960, 120), rarity_img) profession = character_data.profession profession_img = Image.open(TEXTURE2D_PATH / f'icon_{profession.lower()}.png') - img.paste(profession_img, (1000, 500), profession_img) + img.paste(profession_img, (1100, 7050), profession_img) + + bar_img = Image.open(TEXTURE2D_PATH / 'bar.png') + light_line = Image.open(TEXTURE2D_PATH / 'light_line.png') + bar_img.paste(light_line, (290, 60), light_line) + bar_img_draw = ImageDraw.ImageDraw(bar_img) char_position = character_data.position + char_position_cn = char_position_en_to_cn[char_position] + bar_img_draw.text( + (160, 100), + char_position_cn, + font=sans_font_34, + fill=white_color, + anchor='lm', + ) + sub_profession_id = character_data.subProfessionId sub_profession = UNIEQUIP_TABLE.subProfDict[sub_profession_id].subProfessionName + bar_img_draw.text( + (360, 100), + sub_profession, + font=sans_font_34, + fill=white_color, + anchor='lm', + ) + img.paste(bar_img, (40, 110), bar_img) + nation_id = character_data.nationId + bar_img = Image.open(TEXTURE2D_PATH / 'bar.png') + light_line = Image.open(TEXTURE2D_PATH / 'light_line.png') + bar_img.paste(light_line, (290, 60), light_line) + bar_img_draw = ImageDraw.ImageDraw(bar_img) + bar_img_draw.text( + (155, 100), + '势力', + font=sans_font_34, + fill=white_color, + anchor='lm', + ) + bar_img_draw.text( + (355, 100), + nation_id if nation_id else '未知', + font=sans_font_34, + fill=white_color, + anchor='lm', + ) + img.paste(bar_img, (940, 180 - 50), bar_img) + group_id = character_data.groupId + bar_img = Image.open(TEXTURE2D_PATH / 'bar.png') + light_line = Image.open(TEXTURE2D_PATH / 'light_line.png') + bar_img.paste(light_line, (290, 60), light_line) + bar_img_draw = ImageDraw.ImageDraw(bar_img) + bar_img_draw.text( + (155, 100), + '阵营', + font=sans_font_34, + fill=white_color, + anchor='lm', + ) + bar_img_draw.text( + (355, 100), + group_id if group_id else '未知', + font=sans_font_34, + fill=white_color, + anchor='lm', + ) + img.paste(bar_img, (940, 188 + 20), bar_img) + team_id = character_data.teamId + bar_img = Image.open(TEXTURE2D_PATH / 'bar.png') + light_line = Image.open(TEXTURE2D_PATH / 'light_line.png') + bar_img.paste(light_line, (290, 60), light_line) + bar_img_draw = ImageDraw.ImageDraw(bar_img) + bar_img_draw.text( + (155, 100), + '队伍', + font=sans_font_34, + fill=white_color, + anchor='lm', + ) + bar_img_draw.text( + (355, 100), + team_id if team_id else '未知', + font=sans_font_34, + fill=white_color, + anchor='lm', + ) + img.paste(bar_img, (940, 196 + 90), bar_img) char_phases_data = character_data.phases[-1] char_max_phase = len(character_data.phases) char_max_level = char_phases_data.maxLevel char_attributes_key_frame = char_phases_data.attributesKeyFrames[-1].data + bar_img = Image.open(TEXTURE2D_PATH / 'bar.png') + light_line = Image.open(TEXTURE2D_PATH / 'light_line.png') + bar_img.paste(light_line, (320, 60), light_line) + bar_img_draw = ImageDraw.ImageDraw(bar_img) + bar_img_draw.text( + (140, 100), + '生命上限', + font=sans_font_34, + fill=white_color, + anchor='lm', + ) + bar_img_draw.text( + (420, 100), + str(char_attributes_key_frame.maxHp), + font=sans_font_34, + fill=white_color, + anchor='mm', + ) + img.paste(bar_img, (940, 380), bar_img) + + bar_img = Image.open(TEXTURE2D_PATH / 'bar.png') + light_line = Image.open(TEXTURE2D_PATH / 'light_line.png') + bar_img.paste(light_line, (320, 60), light_line) + bar_img_draw = ImageDraw.ImageDraw(bar_img) + bar_img_draw.text( + (140, 100), + '攻击力', + font=sans_font_34, + fill=white_color, + anchor='lm', + ) + bar_img_draw.text( + (420, 100), + str(char_attributes_key_frame.atk), + font=sans_font_34, + fill=white_color, + anchor='mm', + ) + img.paste(bar_img, (940, 380 + 78), bar_img) + + bar_img = Image.open(TEXTURE2D_PATH / 'bar.png') + light_line = Image.open(TEXTURE2D_PATH / 'light_line.png') + bar_img.paste(light_line, (320, 60), light_line) + bar_img_draw = ImageDraw.ImageDraw(bar_img) + bar_img_draw.text( + (140, 100), + '防御力', + font=sans_font_34, + fill=white_color, + anchor='lm', + ) + bar_img_draw.text( + (420, 100), + str(char_attributes_key_frame.def_), + font=sans_font_34, + fill=white_color, + anchor='mm', + ) + img.paste(bar_img, (940, 380 + 78 * 2), bar_img) + + bar_img = Image.open(TEXTURE2D_PATH / 'bar.png') + light_line = Image.open(TEXTURE2D_PATH / 'light_line.png') + bar_img.paste(light_line, (320, 60), light_line) + bar_img_draw = ImageDraw.ImageDraw(bar_img) + bar_img_draw.text( + (140, 100), + '法抗', + font=sans_font_34, + fill=white_color, + anchor='lm', + ) + bar_img_draw.text( + (420, 100), + str(char_attributes_key_frame.magicResistance), + font=sans_font_34, + fill=white_color, + anchor='mm', + ) + img.paste(bar_img, (940, 380 + 78 * 3), bar_img) + + # 攻击范围 + range_id = char_phases_data.rangeId + attack_area_img = Image.open(TEXTURE2D_PATH / 'attack_area.png') + if range_id: + range_data = RANGE_TABLE.range_[range_id] + grids = range_data.grids + area_0 = Image.open(TEXTURE2D_PATH / 'area_0.png').resize((58, 58)) + area_1 = Image.open(TEXTURE2D_PATH / 'area_1.png') + for grid in grids: + col = grid.col + row = grid.row + if col == 1 and row == 1: + attack_area_img.paste(area_1, (90, 105), area_1) + attack_area_img.paste(area_0, (105 + col * 56, 120 + row * 56), area_0) + img.paste(attack_area_img, (915, 730), attack_area_img) + char_potential_data = character_data.potentialRanks potential_add_dict: dict[int, tuple[int, float]] = {} for potential_id, potential in enumerate(char_potential_data): @@ -441,6 +642,9 @@ async def draw_wiki(char_id: str): skill_id_list.append(skill.skillId) for skill in skill_id_list: + skill_bg = Image.open(TEXTURE2D_PATH / 'skill_bg.png') + skill3_bar_bg = Image.open(TEXTURE2D_PATH / 'skill3_bar.png') + skill_data = SKILL_TABLE.skills[skill] skill_level_data = skill_data.levels[-1] skill_name = skill_level_data.name @@ -453,8 +657,26 @@ async def draw_wiki(char_id: str): black_board_dict[black_board.key] = black_board.value if skill_description: skill_description = re.sub(r'<[^>]+>', '', skill_description) - skill_description = skill_description.format(**black_board_dict) - skill_description = re.sub(r'.000000', '', skill_description) + skill_description = render_template(skill_description, black_board_dict).replace('--', '-') + last_skill_description = re.sub(r'.000000', '', skill_description) + print(last_skill_description) + if '{' in last_skill_description: + raise NotImplementedError + # 匹配 -70% +200% 这种格式的数字 + c = re.sub(r'(\d+)%', r'\1%', last_skill_description) + print(c) + print(test_ctg(30, last_skill_description)) + draw_text_by_line( + img=skill_bg, + pos=(70, 20), + text=last_skill_description, + font=sans_font_24, + fill='#3b4354', + max_length=400, + ) + # skill_bg.show() + + # img.show() return img diff --git a/ArknightsUID/arknightsuid_wiki/texture2D/skill1_bar.png b/ArknightsUID/arknightsuid_wiki/texture2D/skill1_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..60ab6f8038f17c017d4782a8270c698f62ca0234 GIT binary patch literal 16676 zcmeI3c{JOJ{`d8E?o2zaX?0VvO{YDp|1o^c0 z8JW7wBfIziE+g}O|1IllP7l16ihHtsO(VTpD--*3Zsus+c29n2oSl-}V|%%V^fbIm zmL8yF8*gQCs06ZDd*0$Jsv=tMH)Zec^lG#66Cb}R`Nvh?Qr=Rk zY_?>-^5Q|s4vf5a5LXY8k-5^x*7*1^;vHk6`~{^ANQe+X+h}n=^CBHjUTwM$iS}K` z5;rW$N)kg)$jDG(D$L_K^3~_&ZCx|zNYBHYe-D9ukPD{GmA8kygw>D^SGl=Wb zU+kqvTFP7I)!noD@Q;Hs9$SMmh7TUk{gDSUUoT33@Ju5Jp-L=y4XO;EdoZy+LJ46r4esN}A*P zEDG5NWRjpH^BeR#WMtk_fu#|6C6Xu%9Z!qgA(4aV5uqRRK&sd5L@1+Ch8fOboQR-L zP41Y7=$k!(U>xel(+qGp#MM%}~g!(4Us0JxD?YRY$A@cAJDf z8g%07y)JW^EFIjtFdB0XyVM@A)6M&G6i>MC=?eqL$jWSq;vUca$d?sQ?1eB@D2$7e zJk@Xe9q2`tL!F%H{w~G`Q;;L#%+-3;nyMy4)bY)UBNBzH(}K8#=Geq3o`&kRMD5Ix z$pQeJQBJUF* zNA(Z*6-Q_|e#8)kWj+s&No@3B^cf<$(HpKETB2@A#6&O!DlmkB^+!w4Ww@RN1&-6^ zO^Qx#Vp+2#5hrSl4KW~&5D}QO9I?eUemZN^J#ns;raQjwpl4X6f1YjjR$Jr-#0>AX zFn@v-|0+5KRWoVD@m|ci$`Y|~6ApR*u0s1@)UjiITEf+AP1J4+%rHS4SHM6p3DPGZt{a(k)r?HkN^Hqg`y4x7D@24R!Rrjcw3oYC zpd9w|nr2ewy=jV>+{4V&L${8Z^yUR&UWqS~O0j&H&U9n%);j}9efqvvSG(SH?E9w- zp*U^T16N;oOr0353|S4MadDsYp|SJgrvx^L4POy&-u7DQNch4(EZ4B#tHY24sdEq8 zI2h0soQNMK`jjj+PttTuHmXwq%J@Z9&v!t7l*w9ES*Z}@(W*&M->-J|vR878bqsxBt7W{$JA*}E0yw@WaPlpX~&qaRC_ zzugQ0*6%4~#eO_kym%2W-jU^O+xASyZuZl}g~7$S1uNYtefszG52` zl3S4vIX*jKtip@zH>m~BE#Zl5zFvq6Rbq=vH=ECM4KY1+=lRzo*=IY2B6HR4;G9!= z*JCnOxRG9}@cn9X0v`6oj(KNQ3Y`wdtd3$%b0%qKx@@ASZ(wW4c?Mk6c8q_XM~^Zj zZVJt(ROQ^hxs+fGl_e)(LrhqqwRHEyU%AIETo zDxUt`o;@pX%h!1PMJjzq*5eg}KTaLIJqIRI+vk>AcalcT4jWEpoy_+EucFZ5hzyGP zeK8J}j{b2YeQ_L*omkn{a^6_g;Q1wVc;UKZh~+l^;$$VmRJJ)RGkv;vh!(PK)EIV( z*ZdT>B)YZp)x%wt^R$#AAI~~BMw4@YFUbxgXR2}R97o)FlMxQ(FK)d;>0S`GnOlpt z1A|10Y-Ts&5S<8fW#A!vVchi=1c19U;^47g%8q-x4d`F@@J-0ojF|9}waMZONji+- zUeN%~x*xmX@2|={iL9gqHN4uiuk&;CSt@5|hmwUGX2&}B-4qgGU5S^bCv#VCYd-<{ ziGN=Al8nL-A+sLhVOL#`=Ek7I+v_Bcdq-Ga?dc;>{=iJJy2hLwaKrlghtBeamfuV2 z9yUkmYL$K!uX)egnbFc6XWAuTLX!`! z4h1LRO6Rwy&+S2OjQzx)K9`3qTmp;r-fxu~NURjv9l8|t1J2|uj9yJXW`@E#*X0nC zGnzV?H|$y^L8_><=sa>t_Kx^h0k6!RR*^Bqq{Lozc_nh6?Y}z0U{>2SW9I+nJXAGv zJzwr56wK~$5~GPB-+YC>0RD=U@Rr=8k0NDON0$8=b-k8rvnGSlpyhc6;20%)*+g^x zTk62-r5LBH?B^T`xwbq>akGebmiuVKLydo4tWMm!2{NpLd(N~e`G^*EI_$=A{=APG zSC4Uq?^ONHy7RCG%%ziek=c8he!Jlc?Ot6cQ))6V){O%;V^bnq8OQGraRJ!{)xrm}>pCJTiJkeQ{?X)vOPiy6qe~%lFqDjZd5R ze$p(@-Iagre|f5fd2IUad&_Ztrv=QhdTBa>ICkvuvFou`iQhxM`Ht2%1rfPT)Bp{( z>2ZXKEMaI(Y-Xsxq^-QqE2O77bENkqCp46)PWB7|YatMZrd zUsBj`p)L8UG4B>5&ajnJbuPjSqi;Ha&JtQs$%d~7`c;*C?8qhltpm=HI^%Za!l2oC zyxRVqE>$2mM+=%!EFX0?5czTRgtZSgka%34(GqyZkNU_x+_p~pW7-LcjbQDB$Kut^ zsUy07e^@c}*yFibQZ=Rq%3H84>{|lIS*PkPM&r3Rqw}9veV9_HO-yO8Z0~qt80YAb z=H``i*`9^4(PNhqU(EvyO3iAI`4xV0IIH|y*2DMu#4XC`=J0b4-HQThe@^)w{yFc{ z`${%*IaN9ZLOE32c`m)C#h3N@G2@733!arNpaXzXulfTPz3?Fq~%9vGS-tR7&|tWWKi`^_7U z9t&;gCAYo1e)nWCuuLAxe2)lIH7d?8GZyFN=Q)BS*;~ePH;zH)MUA(TJE5-PAO*^B z+?`>gs%wB6JV0{y&5fp5?}^+9rES(xR?_q4hZ}XU*xdZ;%Qxszjt`9v3k}+XT6*IH zqjLzA(Y3_50#wb~iBtw@?qi4}0;i|f$qYW?M}6*|4wFaOkJ4!VQ8L7b$VVV9W~TUc zUA|`Uw6r&U)qS40QryXJ!Loyu<c zP;qZXp!V)CQNe(j8um(+A}4q%2=>wmTI(4fu2Ex&=!bTwAwn`);&h`k)0<)hvh#5?CC#GH*m0Fryaqvfn;^(#otz% zy|A}_h`w5uTAFS;GjaI6(qVcdOV@_`ps4DR@1bbrH%1L0`YC!jcJMqq>s8#d)=IS7 z?C>1$6vc?RdrucFcK2`<*sPs^eQ4`6)8Ki;-_!mRtaW_P-GX8|%*S?YQ| zp44idE8kG8Wgp=yKe!Ije8dmzTl5>(?>}kk?;Pfgaw4#AV3vdqIG;6|X-AE)9_Lft zYgu`}L~2cuhY!IktWi3ZJO%NRC-lfct}8yam`0c{C6k~t%r_bhQGD37?EORk9e!IS zM{_(Q$j9%po}JfRP)ya)`%tWl50=)ji0LIiy?@Ln@*c{z>UBT1+I>Ag-@c@V7Cdmd zs;4lkmp^uW?9%qc!op_E36m^n_4Sr515e;{*l2L}Nw$Dru1ZC}o>WZ8QM|rtObGUT z2Z&r)<6NL{uzDV3Xk$9z65pC=&Sv|eIbp0LZh9UOMm?tY&@yCW({*LjH`4x08of}2 zVD>O~bJtrW4Pz!MH`G^ZF`VwdQk>exgfS7D_4z&4vH`0!i}}Bqu)Ps{m6qz3QH?mn zORLWGHUb0d69`G&K+&Qwh7Vsn%!$Oz?|D}x2`##29*A$S#9N~(6es+6%#^HW)7B+Z z)_e7DP2S0!Ykpp7NB!<`SdB}gcK z*LJ9@p)D*gLf6@D`X7Qp&f1fob?w4z6>INhFyWN$!3viMFNf=4QZ|@+=PAP0In@OH$ehAJu153DnQ=);r+;2UP%(_u$ka{ET1}0ROrrg6xE7^vV z!fNVV!Weq~VV?>dD3ArPF&Bc?ugY2nH*cS{Q@uL4xjU6U!S#CUciFO!_sdHI zI$)-pXUZaN1|6c!wJBkj5_^_{5r&aF^ zReOEuu3rbi!Aj^CJD|Yq!s`DnU9ElJ&VpNj{E9%pLI75`TOfz1Hk>Sx0@Jbaw&AF0&5Z#5qEGOaVH zY3UtA>p1d^t!#x6b!^vL+;?yK-ihWu zjZxjc)Ksn442MPf)6#LTq|@ECrAtXQ-bVO#r` zaaG+2gpbWWoz-9#@X@+7pwAxTT4SEs2TRM1beQ;eBTuF;9;U%jFvdEi?eVhWi)ohgwn##nZM_CG{t`?XKwAZ zY~Kk-1RH?4d>7FG0>bC-w-)BJ{i!8SP9wji+J{Z2Vc-8+MJmiop$>o25D(^_iJ}Uf zD8|IjJAj3I2QN3zWUohqM@UIUYb8*EjM`rFAl zgU5B3t_kny%$y+TQM$M4(~V8IpVR~#;~~RF)<{(&Paba~#yL<>QA1*gzKdlP06*H? zRgw2+E3NXv#(!KonMgB%wCYG(>HkUuXZdS>33(<%H!#nXIFA!VN7&d|VT(_ZW<+20 zM73xDd7gb`%^Ir4eZ&)`c*Vx|(|5GMgFtHxNt#K23hwW%<4mxnPrzU5Lf5(2&j8dC zoa{&Ru4iKSbj77xv?g+%+gWW;NRB@Yzi#1xxOvdfP z<(TmBUuzm2csrGARb+>m!QV_!#YWJae!4c*vo;cjYtmUyFe^7MKbSO^wmOs_ zad&ER4G|SRb`)WKwQz5+_mCrzujky=$Qj&qhS7)GjHZLyazLy*@dNo9l%s!t96$|N zbFqsalHVsCrQ{w0t!HSxmtj8U_Dhv(V{Tz|yn!c_H6BtlqdNh8(9L->NwNlQF0#AWEHp72I6G`U9Dv z-OwB*di`(!4qDA8x4k)X>(%9RLBRF|yQH!>!y8G$&M&XEyjmZpoL7=3V0+C1_2gr> zF&8Hd10}C*@ddipwOSdqcit(L`FZ&&PG3%PfYac&l^OJADB-^e?MO4qYwKli)Y z%@+BCfFHj;qF_Iy7rBsivM@J7yZ$nHo9`}n*EM(3AE5>@F7WYRRTFEk3;_LG6gbvo zzBiV#C1{73Nc&)i>TZdHEje@dyg0J&rnIyh{%N*?&|BxJ zDdgqb_}MCdk_`(fqz<&PK2aL7{dWIoUcE?uy^RVdxKOkxfDpsigG&qr^WG#@9QV#kMS>1I3@&N=1*F5^`~mor-1F13=nsj%yP|t8eY1C1A?@DlF;_#TteX}8LmG9|{E4TxhILKukIFKC zL~q{=b5gxe*tyt&-Oou@UDfNE|4K4=+)2&=_|-tg123@ArB&A^ph-yb&4D`y)!f}@ z?%AjZ=kE>{o{p2YMWsDRL>YfF<}xOa7^D=rd*a7&Bd+f-xK@RLCZx8T%a>3nS+x@S zGg{w|)ldHR+e%}RDxv3Ah^mc0g-OmdiwqYT4>qFXSd#VTo`YSy8}IrAP_5e~ zXPeaJSsT3XGS!MQj;TxpluZ2Ysa^9negJA*3RWx3G!Cm!Nb$c#wR(&wK6ihj7j}~0 z@?!Z;om)Mu_W)vx{dI|lI?3GId;)Y1iXR*I8}dq@%=*O5Ifu@YS~FH7IqH=V$Vz%$uJr*1}id4UZ=dmIy5> zD1jw=G{--#wJo1q0_81F)oAhU^2gTflEYf3Cs9F*-UYvh(@qA14p4s%sO9DiJ1n7I zXWaMH#C-gDW^^S9QzdwZT6LZKIb+ra^^9SRKsP@>5?TQ@^z>pObbfZLp=vXJvgu!M z-h49LnBJd3gRZjp84oh2(Wk;lE15_%_4HWNTrfVEI)wB@XrGN}#z8>GfXm;F-YzA>zWzF4>2cs* zomKfnc{}=%wd#S_Y8IB1Qmvl`@-CQAsz4iB4M|@OXv6j*{)o%*?EfWXw9v$B-i1(0 zy~+AY&~!lN5BdPNl}4OTbp7pMTrn8+{n)*PgYRl&K2bgiRCNiDGKFeND{6^aylKfH zn&i;hb}wzOdwr*7Dso1%jgUkrPa^n9ZYFK6gy$O8!50vyea3~7hv+sSF?yXe=3}@V z4Optt{H5UFeVgvzvk}xhL$Cd<@EDJuYgvAUO6p$w>}z`oO}0vfv{cC`rZ)P;OsC@q zBWDjLD5>PjO%h?T#Mg=86R#5UA?CbrZDXghwt!WlCxF`TI~FpN_aFKS9}jLE*SRQi zq&lPK3Ha-X2Y;+vlyPFmyuIFam-xg?ZN5Js^P9rPyFcU-&Xkl$erww}xkUS5q6oQ| z;oN5Y^2K1lI?jK^z1m7(Vyj-3@MY_AP=@8-A^^&_UstvNq~#_>>d-#gS?`BR8{ou^6R zl&E<|1;};TuiZTCfpXqI`X0t?t&?NbrDJXhS85V2*A-$2OCJ$p^;ce_4+5{r7UacI z%FB2r-omL{uK95iSgjr~Z%g^q&|+`|cj=&v4C7kZs3q{Q>eDACqrHrElmbwVP7ZQ< zIS>$2qZFAknr^M8(KtQ&)RhZj8_^$6TWxCT>4dJPe7bi}RegJRou_KSpT4k~l|9<2 zEmSkLMHH^wZS1s5!sug2yD3TB{V(n-mY*GN_w&H4UWsE!c;YDA+Bl$r3t6ct;*0Rm zUf}lb4R*OF{*aDd)hRkwr_3%Zzz*G$j;I2ZOb0$#&mTdmq-xi#+MmvwYh&dQIs#N= z#SEsV;K<86y{`=^9<`N5ZnMGfkXgMu7<~hjZle6YcTsZ+|L5VX0uJL-GN5q{hbZxD zUC-6K>)u;v ziBp>MNsKB5elhT!^~2*sn3>*pMxL_Z5cBu08$US}WLeTKd^wN_Nt-$M!XHX6Dl`WE zW7ar1Gk5D&?2u1U2({#Uqv1gNxXe+MMc(KaF*DPuO{#XAj8UMx-O)QbBL8=Ecr4u`RoDj@EUg zzuimHEj0;rDo=h;@7YKCSdTcKc;u2}&<*^~dj8UWiX8`xPTkdZM%d;JsO0Z;HE(V= zJ?3{HYxy5?1W%9XNG{bZpCi9a*z?GZpj!quSZ3kRMNI&I2)4Tf3wm$kHKzGKGG3w5 zG34vE8A#}nRAiyvrdwzDIjDya7I6l)jVC;Q?sfFuy7^b=n^E^c22#;rJxxuYG1WZ^ z@m9$QJv(UxMerzeZ~q4w@QI?hjJEz7R1)tGK7L}BxuUjWzp}wWAF-G)r``(%b>U6- zNZoO2;(|geua^T}OWzefOp3CX=j8UI!{tL144g=}bvrnY)2HoEA%cxGgVxTIfj&1# z=`X?x-gdgI=amyaKC63gMzBV(EM6W*G$!cxw%>1^x74tjpm{WM+@rx z`7s4vV-X?~+0Q3Ir^F3R3AGe4i&O{OMHszTZ|elFYrFL9uf0l8x)3pXGI&qgGqUwg zf81}LxN0Ub&Wq;iDc{%YKx5mr?jKQ*T#8iYxA4mXkGIwYsBS-SZrk!^gqWu>0YpFF zNq~z-QPB5#C8XMEN7Go9fgj7a&W<+(*T$3ho`A8E#9G-mNqfL9nuBkv-o`0vf11kn zjePp%Kc+Smf|8p z*dHtmERrSP`-{R-Hm`saBDWifP*y+6A_ryDf5rk6Z~mP|$!4Pk+^eeXXB<@&R>wxm z_NZdpPM3tK5^0UsE#QqfO`dYI-VRCBA1GpY8^@J^ucDh^E3tLe9;qQ^tW#G^0AJRb zdD7>AMLF||+3Mi@faYgu?LhrrtvNwe3z+l0d5t#I!O>-7>?9stbII7=Pgf2Q^MfJmh67{m13Dwr93e&r}<#883c>7jN zW%HUu*&UtoI|f-_$jJNyvi8!x0e_^)+b_cB+mBsuMJu4A)SILPRS0P1b^TCdg;6=;L^=zX15_F#2KX*J7XfEdt-JwZ5ifO6X|L|gJV^j{TbxIUcwE0pYxX_lY7qQ zHtR9ns|3@VT~z^gZ;pPvr1z@shk_&d8eQx2V{g5%7nzOKvM$5g_XqhfWDX^v`W&EK z%gK9GWflhb9l+OoEnEnKs`(1zMpUireSLCU($JiDQS*bB%Bp$$atvaUB;r>glB$8a z%$wue&;B|Tu5F(&)XnqWegHNLv#~8|cV}(V@{QzIrX*y(&RVF?JiJ?sXx< z3@3KGpn~C1<+VpRrG7>9VyjZm?g37UjV1Xi2veePjeyyBJK>cQGu(sM=f7D#uUoH` z+Ng4U@WA9z;z4A`&(x`&_b6oMUL4&Jksr2k!+nKQm5(q#xisy@W71Z99&DJ^CX_7? zxOP4>seJ4Rx-v58?)keTSxu9@P%rr@X0j0%YdOUEvKn zX})eO2>7v5N6fUxcavPuc(K_)=;tX33Y2+|yQzp2-u0<|mj|lICEREaUAISsY zk%75in&3WIgvZ~u$`A$Z1^mLtjdusB(1w(Ao}gFU3VG)dk;qjpb>@a`6&JuC;YN7% zrtQ8`knA`f)7DVVb$Wf3ssT>TJncA;-9A-3hURIoPkWQWPElx5M|{iC0*)r zL?mi8vx3bvV%tCK%R(k7>(>kWyg!S(1-JqZ9m;Hd_D(qU)rjRjbM2w+AiV(~7_;5~ zL9yMVi(u@z#vZ-XSCYTl=(p?enQ^!_y0$?V zFylsqmbYJDo2@ePl~YVAGkG1?k>}7qqD~(1%c^o>^*lYEX96-<2md zFYNqXb8O%XHmoVH+1rY+T4;^0X-*iNInw^fx7dYpTUfufF}gh!T?bV7zlvfn_YVYv z`RTz^Qf%k542D~;w=^{CD*7jT@~5`_=X#eDx-+5_21a6-%_{$=x+pxW&h@bOan|Ew z!g1aDL?ltFbyGqkWR;&hwRn%^)F5V%ZYw@FSdrJ+8vH!m9^>4t;XxY1} z&K~BaRKu9bnCU&mkRkHN@l)BO^TpBB(A(G=tPShUSksw{AgTs35clrHdRlrgw`J=U zHNFH&oeOQrpX0U+KhQC7uT5PGF&S^`&#pN#sgAyO1sjD4*jlS;f>7`EmST7OY{QxU zJ12;x*7bA3f#2#?@|V)3@e^0?99SJ) zp1_&h{^h#`b&l`Cw8fWrS;jY0-M`O1r;I{arjCDNP&|3!O66y%y9x5AQd`Pv6EM;- z`clc7%9Dpj^;BaG|I{G-$XE+wn$+Mv(X|kfMVD*79^aI;(`WHM=f7K=S9{g^L}cJI zV#p~TChXon#cpN1R3$TNY)Ejj@@@5r^uo|ZR9rL3E6fBReE|~pc1O$pioNe%B{<53 zFchE|R_;(%{OSX3czX@-Lz{6e;rOfHYp>-undc9e z47%E6+I$N&nzGYN9RBw8wbqXPvk~V2tMNKl&#!zj+6yHH$*>>6->E{_xF5a(o^x_g z9D2mNk!1gxg$;X_v$3TV-G{A7zOsqASl{n6*vD+Fh1J44f(E?`?RQ=#dFm!klAFD} z-DmyU$?SX$K>l+8^@;@mpTYQMPEHhjH9Ph%KI%V2$*et7|J;0GpSF}T$^7t7Q77@T zhS(7Anl;_%tzEJBHD1%pvF+lI%rE4pf=kzj#0ZzTx|+QpGs1L!Ir};EyH3!301ztj!)P6^D7BSnca-?6&jR4IiKQU(wGcWL*t zo&!?tOtqMpX{*LoW0n3%vHWGotdajt*-aZKGJ=X;hj{wv>Ct8Yf6)WJ3?Q=g!*2J< z5V|rvBBNj#(Cj7Ufd*)Y#E*PBDw3WvuRs|^uQh!crY|?sJgly0a9_b&d!%5&XBAS1 zc@VHPsb#gA=-xG%zq$o()hy6m{PuQf88K)Uc#2^zZt}WQN`uH$; z$b*^>w0@57U2ZF~B#CDdnBLCH_nlIID3ZGl;^z z0_1g3ks7kS8~Dhl-V^y5!2*JX*7F1O1~Au3mIw&R7z?QSJqEv2##L2ZJsAQVm4amt z6_;=$qQ?dl*V64PtyjXCZ_3VY=Z@MA9C{LwvY;5~5OOb#{j7cAAs|gXp3-jji}wP{ zV`$sE<#fr)L%G1P$H?;FncT9iOOoFJ@~60+1VD&Bp)n}=A%EMf)OPB!LMy-r_H4B! zH7tgEfs|lh^TiESj=a#jRa71~wX@ZEMf9*P`nchwR7#Awuwwg9khX8)4?{e1bG~d7 zWs!QCW0~3`%7Xc#FvT4DKlzJ4HE&EuXy=B+5Q%OvL)cdLw!;}fe<7w8A1;N>I`VXl zRHbr_lui_fOjfbkpT_FEoqfs>hd9;n)~EJtR@`}B#-bmH-M@JgLkCv#%y02UX%1eP z@p`OOPK0|9fQbcg%S)D*wucZm#CO(^yE#GS>{L3=-tlgfs_xbE%`Vj9%Z{)s0u@t!z!BPE0koZPzRx~do zXy&s{;op+_ggsz!}0AW#ToaP>^7%Z5xM|Cg}$ziXlG zJmN@}lrNPQ#?Qo|+FvE|&qQSBFFph`OGuwfc&E|e&3!Z8;f2oF;A@oqAiDGi3ScSl{66*lE?`cU_Loc|rl#hls ztn(U}KUNKhx@8-2!L0+5cE4Sk0lGC^{=R9SRrO1s`uz4KRSQq5m+$+9@*z320q>R8 zra!g#*qh11*rO%qVUaDN-*qprT3;F8Ev(56FJk5_^Darq@4kFOf{!ILqPnvh4ZkYJ@XL|+u6!kM7nnby$C*T z3OL^z%;3)e$Zne?6a4ewlY2O8%)*ieZA6bO(j-S2R%+I(Xpg(1Dr=gP6hru-3H;zRoh zTU&U^Z|S$Y1YandhMW2mL|)aO4-cgHX?NHn{7=k2@j_SnX9xIKT@n;qa=^i{-@NGc;_xCBcx{=zU-5zB`bUw zuCqEXI)}#+3wPFaksyMfln3Fg*!X&;3)~n&u;dTI{_IXz(RPm%?1jb>i=!=>B3Sxx zP6&hPyPs(wfhz=2{aW4m)9cTz?mmn6tF1)OWd7Wy{(9SUd_fscY(AZ+%Bb2^{v(H- zn3l{*0Y$ux?9)Qel`yG)nd2|k@AKKgf7+uD?Fx|IRezZU!U#w_&9Vb+hEYI1L2=%jl3hCaT~&3%(% z2zYz9Nm4BeIK=N~SY+|Co3l>GfqFT|-Q;UEeK##^F_WWs)4>3^l$o~BkltXp$>TDE zr*3BO!L2~f^}8A5r%}^O()b{Qc73__ji;+JF}wE_b{a|h2&okk%a2;_CE0z~58sOtUj=pVyFe;LK;3T@1USV(#b>K|> zESQT_398i@58#!L1JLhvu!V@d+3rbgEBmH>Pla|^l7;(J88m`aa(x2g@1GbeQn4u6 z?KohrP|NN$MCG6~+*jtGB@Rpa#{&1;(+7@W4L2-*gBR_6b7wa=4DX)GTpfECK!=Jb z%pcG4&0_bqu{EZtKw^=KvUG2luh#CJ=>gNPGHHRFy38#|$P}FuSAa33NrWg}^l>DM zLaW=OsDW3Zb#PJajD;ayn(-vk;vhX9Ic;JF?ws3lkj}@EW7T8<9tp=dqzmxt<=gWk zomwoPGzSV{=PPi>J?WGZbYwy0tvz}Dr^w>y&ej8s3^Z^UGw_sd6-oP=wlQ;7W{bQq zIRg&EWzKXf@>LjP(*@FFs)E_fi7+_Ozlc-f4P3s409ADfuJn&&3hecXg;FoV5&4Vo zAY7U>_irY%R5=i`LTa%xjY7H?>m=^e?-v+?`N}mPo6w2SZALv~sw0m8se?~L%&Vj~ zg*J{L?2bhH-0?3SN$YT{Ur=g2m51MCmqaoC2$gTFOCoQTA<4UE61kl*COoqovW*9s|BX$}Hw1=) z&dgp3i>e`ue)6Zd2^_=)q`m?mgJpSgKY5ffR>BFc?-XF;&LtFC2b>K02~K|##Ta)= zD^g1o9TrnCJ){FN6Tfg2MLJ<`8Gi`8cD5uSpvm9&P;U|_duMRbk_K8$*PL_PGkvSpKLp~#*Ypb@tmQcCB?@5e>YQM+uV9bv%@}^Znw-%0z<)_D zv*NxpNmR)1`>1$Lw(;v&`(}EDLY^fT7)xA|6{}r%Yat`^9KXqcNMw4by@JKQc1!qom(x5LMK? zdS=vdxv%0j`PK>#6!abvBO|kA@!=Q+viBoesQM}M$Cz|DI*&?=+fiZdsw}t5*_$py zjHzLCM*#Pl8ubG%^+;imbp6XaS)w++!`aPigA8q4qETs(P^|<1KOP1D&;Rs47Wf|v l{J&uV>S^@WN7#YC|B|x!jo(?j&kuF$#%=4`>p%YTzW_JlB}f1O literal 0 HcmV?d00001 diff --git a/ArknightsUID/arknightsuid_wiki/texture2D/skill2_bar.png b/ArknightsUID/arknightsuid_wiki/texture2D/skill2_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..6f9efc700e69b03a7ecb29f65acf9896e3eb659e GIT binary patch literal 16989 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 VWz)M4@84)SdL%xUdHAbu{|A0Wkpch! literal 0 HcmV?d00001 diff --git a/ArknightsUID/arknightsuid_wiki/texture2D/skill_bg.png b/ArknightsUID/arknightsuid_wiki/texture2D/skill_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..5024145f842ff3ecd0d374b363708656d6a01053 GIT binary patch literal 5008 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 A4gdfE literal 0 HcmV?d00001