From 31e7242edc0d185ea847c33e0ef2d825ca48a723 Mon Sep 17 00:00:00 2001 From: fuyn101 Date: Tue, 8 Jul 2025 15:18:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=B5=84=E6=BA=90=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ArknightsGameData | 2 +- ArknightsGameResource | 2 +- ArknightsResource | 2 +- auto_get_res.py | 296 +++++++++++++- mower/data/agent.json | 10 + mower/data/building_skill/skill.json | 70 ++++ mower/data/key_mapping.json | 14 + mower/static/MATERIAL.pkl | 4 +- mower/static/avatar.pkl | 4 +- mower/static/avatar_skill/司霆惊蛰/1.png | 3 + mower/static/avatar_skill/司霆惊蛰/2.png | 3 + mower/static/avatar_skill/司霆惊蛰/3.png | 3 + mower/static/avatar_skill/录武官/1.png | 3 + mower/static/avatar_skill/录武官/2.png | 3 + mower/static/operator_room.model | 4 +- mower/static/portrait.pkl | 4 +- ui/dist/assets/BasementSkill.js | 2 +- ui/dist/assets/DesktopSettings.css | 6 +- ui/dist/assets/DesktopSettings.js | 2 +- ui/dist/assets/Doc.css | 2 +- ui/dist/assets/Doc.js | 2 +- ui/dist/assets/HelpText.css | 2 +- ui/dist/assets/HelpText.js | 2 +- ui/dist/assets/Log.css | 24 +- ui/dist/assets/Log.js | 6 +- ui/dist/assets/LongTasks.css | 192 ++++----- ui/dist/assets/LongTasks.js | 24 +- ui/dist/assets/Material_all_in_one.js | 482 +--------------------- ui/dist/assets/Plan.css | 100 ++--- ui/dist/assets/Plan.js | 10 +- ui/dist/assets/RecordLine.css | 4 +- ui/dist/assets/RecordLine.js | 2 +- ui/dist/assets/SlickOperatorSelect.css | 2 +- ui/dist/assets/SlickOperatorSelect.js | 2 +- ui/dist/assets/TaskDialog.css | 16 +- ui/dist/assets/TaskDialog.js | 2 +- ui/dist/assets/depot.css | 24 +- ui/dist/assets/depot.js | 2 +- ui/dist/assets/index.css | 4 +- ui/dist/assets/index.js | 2 +- ui/dist/assets/paomadeng.css | 8 +- ui/dist/assets/paomadeng.js | 4 +- ui/dist/assets/report.css | 4 +- ui/dist/assets/report.js | 2 +- ui/dist/index.html | 24 +- ui/public/avatar/司霆惊蛰.webp | 3 + ui/public/avatar/录武官.webp | 3 + ui/public/depot/“棠梨儿”.webp | 3 + ui/public/depot/司霆惊蛰的信物.webp | 3 + ui/public/depot/录武官的信物.webp | 3 + ui/src/pages/basement_skill/buffer.json | 2 +- ui/src/pages/stage_data/event_data.json | 497 +++++++++++++++++------ 52 files changed, 1043 insertions(+), 856 deletions(-) create mode 100644 mower/static/avatar_skill/司霆惊蛰/1.png create mode 100644 mower/static/avatar_skill/司霆惊蛰/2.png create mode 100644 mower/static/avatar_skill/司霆惊蛰/3.png create mode 100644 mower/static/avatar_skill/录武官/1.png create mode 100644 mower/static/avatar_skill/录武官/2.png create mode 100644 ui/public/avatar/司霆惊蛰.webp create mode 100644 ui/public/avatar/录武官.webp create mode 100644 ui/public/depot/“棠梨儿”.webp create mode 100644 ui/public/depot/司霆惊蛰的信物.webp create mode 100644 ui/public/depot/录武官的信物.webp diff --git a/ArknightsGameData b/ArknightsGameData index 39e36ab3..521d803b 160000 --- a/ArknightsGameData +++ b/ArknightsGameData @@ -1 +1 @@ -Subproject commit 39e36ab39ed8df3a68e8e424a08ab17edc0f0b09 +Subproject commit 521d803b9647e42feb774630790adc703d75724c diff --git a/ArknightsGameResource b/ArknightsGameResource index d6bad2e6..b29dbac9 160000 --- a/ArknightsGameResource +++ b/ArknightsGameResource @@ -1 +1 @@ -Subproject commit d6bad2e63c9c8055db38f231ede203de1280dde3 +Subproject commit b29dbac9695b219094b0763018510b4bcc82ea6a diff --git a/ArknightsResource b/ArknightsResource index a4869a31..83bf3699 160000 --- a/ArknightsResource +++ b/ArknightsResource @@ -1 +1 @@ -Subproject commit a4869a31c7fc316e9fe2b4f2c7c26d4842ef8450 +Subproject commit 83bf369929da847be61e7e9e2309028f4619260c diff --git a/auto_get_res.py b/auto_get_res.py index fa965ec2..d24cf42d 100644 --- a/auto_get_res.py +++ b/auto_get_res.py @@ -27,29 +27,47 @@ def 加载json(file_path): class Arknights数据处理器: def __init__(self): self.当前时间戳 = datetime.now().timestamp() + 仓库_1 = "ArknightsGameResource/gamedata/excel" # noqa: F841 + 仓库_2 = "ArknightsGameData/zh_CN/gamedata/excel" # noqa: F841 + 仓库_3 = "ArknightsResource/gamedata/excel" # noqa: F841 - self.物品表 = 加载json(f"./{仓库_1}/item_table.json") - self.干员表 = 加载json(f"./{仓库_1}/character_table.json") - self.阿米娅表 = 加载json(f"./{仓库_1}/char_patch_table.json") - self.抽卡表 = 加载json(f"./{仓库_1}/gacha_table.json") - self.关卡表 = 加载json(f"./{仓库_1}/stage_table.json") - self.活动表 = 加载json(f"./{仓库_1}/activity_table.json") - self.基建表 = 加载json(f"./{仓库_1}/building_data.json") - self.游戏变量 = 加载json(f"./{仓库_1}/gamedata_const.json") - self.模组 = 加载json(f"./{仓库_1}/uniequip_table.json") - self.战斗技能 = 加载json(f"./{仓库_1}/skill_table.json") + self.物品表 = 加载json(f"./{仓库_2}/item_table.json") + + self.干员表 = 加载json(f"./{仓库_2}/character_table.json") + + self.阿米娅表 = 加载json(f"./{仓库_2}/char_patch_table.json") + + self.抽卡表 = 加载json(f"./{仓库_2}/gacha_table.json") + + self.关卡表 = 加载json(f"./{仓库_2}/stage_table.json") + + self.活动表 = 加载json(f"./{仓库_2}/activity_table.json") + + self.基建表 = 加载json(f"./{仓库_2}/building_data.json") + + self.游戏变量 = 加载json(f"./{仓库_2}/gamedata_const.json") + + self.模组 = 加载json(f"./{仓库_2}/uniequip_table.json") + + self.战斗技能 = 加载json(f"./{仓库_2}/skill_table.json") + self.装仓库物品的字典 = {"NORMAL": [], "CONSUME": [], "MATERIAL": []} + self.常驻关卡 = 加载json("mower/data/stage_data.json") self.所有buff = [] self.限定十连 = self.抽卡表["limitTenGachaItem"] + self.联动十连 = self.抽卡表["linkageTenGachaItem"] + self.普通十连 = self.抽卡表["normalGachaItem"] + self.所有卡池 = self.限定十连 + self.联动十连 + self.普通十连 + self.总掉落表 = [] def 添加物品至前端文件(self): @@ -57,16 +75,21 @@ class Arknights数据处理器: def 检查图标代码匹配(目标图标代码, 物品类型, 分类类型, 排序代码): 匹配结果 = False + for 池子限时物品 in self.所有卡池: if ( 池子限时物品["itemId"] == 目标图标代码 and self.当前时间戳 > 池子限时物品["endTime"] ): 匹配结果 = True + break + 分割部分 = 目标图标代码.split("_") + if len(分割部分) == 2 and 分割部分[0].endswith("recruitment10"): 匹配结果 = True + if len(分割部分) == 6 and int(分割部分[5]) < 2023: 匹配结果 = True @@ -75,91 +98,136 @@ class Arknights数据处理器: if len(分割部分) == 3 and 目标图标代码.startswith("voucher_full"): 匹配结果 = True + if 目标图标代码 == "ap_supply_lt_60": 匹配结果 = True + 抽卡 = self.抽卡表.get("gachaPoolClient", []) + for 卡池 in 抽卡: if 卡池["LMTGSID"] == 目标图标代码 and self.当前时间戳 > int( 卡池["endTime"] ): 匹配结果 = True + if 分类类型 == "NONE": 匹配结果 = True + if 排序代码 <= 0: 匹配结果 = True + if 分类类型 == "NONE": for item in self.总掉落表: if 目标图标代码 == item["id"]: 匹配结果 = False + return 匹配结果 self.物品_名称_输出用 = {} + self.物品_名称_模型用 = {} + if not os.path.exists("./ui/public/depot/理智.webp"): png_image = Image.open("./ArknightsGameResource/item/AP_GAMEPLAY.png") + png_image.save("./ui/public/depot/理智.webp", "WEBP") + if not os.path.exists("./ui/public/depot/EXP.webp"): png_image = Image.open("./ArknightsGameResource/item/EXP_PLAYER.png") + png_image.save("./ui/public/depot/EXP.webp", "WEBP") + for 物品代码, 物品数据 in self.物品表["items"].items(): 中文名称 = 物品数据.get("name", "") + 图标代码 = 物品数据.get("iconId", "") + 排序代码 = 物品数据.get("sortId", "") + 分类类型 = 物品数据.get("classifyType", "") + 物品类型 = 物品数据.get("itemType", "") + # 源文件路径 = f"./ArknightsGameResource/item/{图标代码}.png" + 源文件路径 = f"./ArknightsResource/items/{图标代码}.png" + 排除开关 = False + 排除开关 = 检查图标代码匹配(图标代码, 物品类型, 分类类型, 排序代码) + if not 排除开关: if os.path.exists(源文件路径): 目标文件路径 = f"./ui/public/depot/{中文名称}.webp" + if not os.path.exists(目标文件路径): png_image = Image.open(源文件路径) + png_image.save(目标文件路径, "WEBP") + if 分类类型 != "NONE": self.装仓库物品的字典[分类类型].append( [目标文件路径, 源文件路径] ) + templist = [物品代码, 图标代码, 中文名称, 分类类型, 排序代码] + self.物品_名称_输出用[物品代码] = templist + self.物品_名称_模型用[中文名称] = templist + self.物品_名称_模型用[物品代码] = templist + print(f"复制 {源文件路径} 到 {目标文件路径}") + with open("./mower/data/key_mapping.json", "w", encoding="utf8") as json_file: json.dump(self.物品_名称_输出用, json_file, ensure_ascii=False, indent=4) print() def 干员列表(self): """读取干员列表并输出至./mower/data/agent.json""" + 干员_名称字典 = {} + for 干员代码, 干员数据 in self.干员表.items(): if not 干员数据["itemObtainApproach"]: continue + 干员名 = 干员数据["name"] + 干员_名称字典[干员名] = { "key": 干员代码, "profession": 干员数据["profession"], "name": 干员数据["appellation"], } + 干员头像路径 = f"./ArknightsGameResource/avatar/{干员代码}.png" + # 干员头像路径 = f"./ArknightsResource/avatar/ASSISTANT/{干员代码}.png" + 目标路径 = f"./ui/public/avatar/{干员数据['name']}.webp" + if os.path.exists(目标路径): continue + print(f"{干员名}: {干员代码}") png_image = Image.open(干员头像路径) + png_image.save(目标路径, "WEBP") + 干员_名称字典 = dict( sorted(干员_名称字典.items(), key=lambda item: len(item[0])) ) + with open("./mower/data/agent.json", "w", encoding="utf-8") as f: json.dump(干员_名称字典, f, ensure_ascii=False, indent=4) def 读取卡池(self): """读取当前开放的卡池,暂无输出""" + 抽卡 = self.抽卡表.get("gachaPoolClient", []) + 卡池类型映射 = { "SINGLE": "单人池", "LIMITED": "限定池", @@ -173,85 +241,121 @@ class Arknights数据处理器: for 项 in 抽卡: 卡池名称 = 项.get("gachaPoolName") + 开始时间戳 = 项.get("openTime") + 结束时间戳 = 项.get("endTime") + 卡池类型代码 = 项.get("gachaPoolId") + 卡池出人 = 项.get("dynMeta") if self.当前时间戳 < 结束时间戳: 卡池类型 = 卡池类型映射.get(卡池类型代码.split("_")[0], 卡池类型代码) + if 卡池类型代码.split("_")[1] == "ATTAIN": 卡池类型 = "跨年中坚池" + if 卡池名称 == "适合多种场合的强力干员": 卡池名称 = 卡池类型 + 开始时间 = datetime.fromtimestamp(开始时间戳) + 结束时间 = datetime.fromtimestamp(结束时间戳 + 1) + print("卡池名称:", 卡池名称) + print("卡池类型:", 卡池类型) + if 卡池类型 == "中坚池": print( 卡池出人["main6RarityCharId"], 卡池出人["sub6RarityCharId"], 卡池出人["rare5CharList"], ) + if self.当前时间戳 > 开始时间戳: print("正在进行") + print("卡池结束时间:", 结束时间) + else: print("卡池开始时间:", 开始时间) + print("卡池结束时间:", 结束时间) + print(卡池类型代码) print() def 输出_活动关卡和掉落(self): """读取活动关卡及掉落物并写入./ui/src/pages/stage_data/event_data.json""" + 关卡 = self.关卡表["stageValidInfo"] + 还未结束的非常驻关卡 = { 键: 值 for 键, 值 in 关卡.items() if 值["endTs"] != -1 and 值["endTs"] > self.当前时间戳 } + 还未结束的非常驻关卡 = dict(sorted(还未结束的非常驻关卡.items())) + for 键, _ in 还未结束的非常驻关卡.items(): 关卡代码 = self.关卡表["stages"][键]["code"] + if 键.endswith("#f#"): 关卡代码 += " 突袭" + 关卡名称 = self.关卡表["stages"][键]["name"] + 关卡开始时间戳 = 还未结束的非常驻关卡[键]["startTs"] + 关卡结束时间戳 = 还未结束的非常驻关卡[键]["endTs"] + 关卡消耗理智 = self.关卡表["stages"][键]["apCost"] + # 关卡结束时间 = datetime.fromtimestamp(还未结束的非常驻关卡[键]["endTs"] + 1) + 关卡掉落表 = self.关卡表["stages"][键]["stageDropInfo"][ "displayDetailRewards" ] + # print(f"{关卡代码=}{关卡掉落表=}") + self.总掉落表.extend(关卡掉落表) + 关卡掉落 = {} + 突袭首次掉落 = [ self.物品表.get("items", {}).get(item["id"], {}).get("name", item["id"]) for item in 关卡掉落表 if item["dropType"] in {1, "ONCE"} ] + 常规掉落 = [ self.物品表.get("items", {}).get(item["id"], {}).get("name", item["id"]) for item in 关卡掉落表 if item["dropType"] in {2, "NORMAL"} ] + 特殊掉落 = [ self.物品表.get("items", {}).get(item["id"], {}).get("name", item["id"]) for item in 关卡掉落表 if item["dropType"] in {3, "SPECIAL"} ] + 额外物资 = [ self.物品表.get("items", {}).get(item["id"], {}).get("name", item["id"]) for item in 关卡掉落表 if item["dropType"] in {4, "ADDITIONAL"} ] + 首次掉落 = [ self.物品表.get("items", {}).get(item["id"], {}).get("name", item["id"]) for item in 关卡掉落表 if item["dropType"] in {8, "COMPLETE"} ] + 关卡掉落 = { "突袭首次掉落": 突袭首次掉落, "常规掉落": 常规掉落, @@ -278,10 +382,14 @@ class Arknights数据处理器: "周日": 1, } ) + unkey = 0 + for item in self.常驻关卡: item["key"] = unkey + unkey += 1 + with open( "./ui/src/pages/stage_data/event_data.json", "w", encoding="utf-8" ) as f: @@ -289,6 +397,7 @@ class Arknights数据处理器: def 输出_公招资源(self): recruit_data = {} + recruit_result_data = { 4: [], 3: [], @@ -296,29 +405,47 @@ class Arknights数据处理器: 1: [], -1: [], } + # for 干员代码, 干员数据 in self.干员表.items(): + # print(干员代码,干员数据) + recruit_list = self.抽卡表["recruitDetail"].replace("\\n<@rc.eml>", "") + recruit_list = recruit_list.replace("\\n", "") + recruit_list = recruit_list.replace("\r", "") + recruit_list = recruit_list.replace("★", "") + recruit_list = recruit_list.replace("<@rc.eml>", "") + recruit_list = recruit_list.replace("", "") + recruit_list = recruit_list.replace("/", "") + recruit_list = recruit_list.replace(" ", "\n") + recruit_list = recruit_list.replace("--------------------", "") + recruit_list = recruit_list.replace("<@rc.title>公开招募说明", "") + recruit_list = recruit_list.replace("<@rc.em>※稀有职业需求招募说明※", "") + recruit_list = recruit_list.replace( "<@rc.em>当职业需求包含高级资深干员,且招募时限为9小时时,招募必得6星干员", "", ) + recruit_list = recruit_list.replace( "<@rc.em>当职业需求包含资深干员同时不包含高级资深干员,且招募时限为9小时,则该次招募必得5星干员", "", ) + recruit_list = recruit_list.replace("<@rc.subtitle>※全部可能出现的干员※", "") + recruit_list = recruit_list.replace("绿色高亮的不可寻访干员,可以在此招募", "") + recruit_list = recruit_list.split("\n") profession = { @@ -340,28 +467,37 @@ class Arknights数据处理器: if 干员名 in recruit_list: tag = 干员数据["tagList"] + # 数据中稀有度从0-5 + if isinstance(干员数据["rarity"], str) and 干员数据[ "rarity" ].startswith("TIER_"): 干员数据["rarity"] = int(干员数据["rarity"][-1]) # 减一没了 + elif isinstance(干员数据["rarity"], int): 干员数据["rarity"] += 1 + else: raise ValueError( f"出错:数据结构不对,内容是 {干员数据['rarity']},类型是 {type(干员数据['rarity'])}" ) + if len(干员名) <= 4: recruit_result_data[len(干员名)].append(干员代码) + else: recruit_result_data[-1].append(干员代码) + if 干员数据["rarity"] == 5: tag.append("资深干员") + elif 干员数据["rarity"] == 6: tag.append("高级资深干员") if 干员数据["position"] == "MELEE": tag.append("近战位") + elif 干员数据["position"] == "RANGED": tag.append("远程位") @@ -377,13 +513,16 @@ class Arknights数据处理器: 干员名, 干员数据["rarity"], 干员数据["tagList"] ) ) + print("载入公招干员数据{}个".format(len(recruit_data))) + with open("./mower/data/recruit.json", "w", encoding="utf-8") as f: json.dump(recruit_data, f, ensure_ascii=False, indent=4) def 训练仓库的knn模型(self, 模板文件夹, 模型保存路径): def 提取特征点(模板): 模板 = 模板[40:173, 40:173] + hog_features = hog( 模板, orientations=18, @@ -398,20 +537,29 @@ class Arknights数据处理器: def 加载图片特征点_标签(模板类型): 特征点列表 = [] + 标签列表 = [] + for [目标文件路径, 源文件路径] in self.装仓库物品的字典[模板类型]: 模板 = cv2.imread(源文件路径) + 模板 = cv2.resize(模板, (213, 213)) + 特征点 = 提取特征点(模板) + 特征点列表.append(特征点) + 标签列表.append(self.物品_名称_模型用[目标文件路径[18:-5]][2]) + return 特征点列表, 标签列表 def 训练knn模型(images, labels): knn_classifier = KNeighborsClassifier( weights="distance", n_neighbors=1, n_jobs=1 ) + knn_classifier.fit(images, labels) + return knn_classifier def 保存knn模型(classifier, filename): @@ -419,16 +567,21 @@ class Arknights数据处理器: pickle.dump(classifier, f) 模板特征点, 模板标签 = 加载图片特征点_标签(模板文件夹) + knn模型 = 训练knn模型(模板特征点, 模板标签) + 保存knn模型(knn模型, 模型保存路径) def 输出_扫仓库模型(self): """输出扫描仓库的Knn模型 + 和添加物品至前端文件() 有联动 , 添加物品提供了分类的图片位置""" self.训练仓库的knn模型("NORMAL", "./mower/static/NORMAL.pkl") + self.训练仓库的knn模型("CONSUME", "./mower/static/CONSUME.pkl") + self.训练仓库的knn模型("MATERIAL", "./mower/static/MATERIAL.pkl") def 输出_在房间内的干员名的模型(self): @@ -440,22 +593,36 @@ class Arknights数据处理器: with open("./mower/data/agent.json", "r", encoding="utf-8") as f: agent_list = json.load(f) + for operator in sorted(agent_list, key=lambda x: len(x), reverse=True): img = Image.new(mode="L", size=(400, 100)) + draw = ImageDraw.Draw(img) + draw.text((50, 20), operator, fill=(255,), font=font) + img = np.array(img, dtype=np.uint8) + img = thres2(img, 200) + dilation = cv2.dilate(img, kernel, iterations=1) + contours, _ = cv2.findContours( dilation, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE ) + rect = map(lambda c: cv2.boundingRect(c), contours) + x, y, w, h = sorted(rect, key=lambda c: c[0])[0] + img = img[y : y + h, x : x + w] + tpl = np.zeros((46, 265), dtype=np.uint8) + tpl[: img.shape[0], : img.shape[1]] = img + # cv2.imwrite(f"/home/zhao/Desktop/data/{operator}.png", tpl) + data[operator] = tpl with lzma.open("mower/static/operator_room.model", "wb") as f: @@ -463,70 +630,109 @@ class Arknights数据处理器: def avatar_and_portrait(self, save_img=False): mapping = {} # char_285_medic2 -> Lancet-2 + for name, data in self.干员表.items(): mapping[name] = data["name"] + for name in self.阿米娅表["infos"]["char_002_amiya"]["tmplIds"]: mapping[name] = "阿米娅" def extract(name, scope): data_path = f"./ArknightsGameResource/{name}" + # data_path = f"./ArknightsResource/{name}" + file_list = os.listdir(data_path) + h, w = loadimg(os.path.join(data_path, file_list[0]), True).shape total = len(file_list) + col = math.ceil(math.sqrt(total * h / w)) + row = math.ceil(total / col) + full = np.zeros((row * h, col * w), dtype=np.uint8) + mask = full.copy() + name_list = [] + i = 0 + trap_list = [] + for filename in file_list: if filename == "char_017_huang2.png": continue + x = (i % col) * w + y = (i // col) * h + mx, my = sa(scope, (x, y)) + # filename: char_285_medic2_1.png + for j, k in mapping.items(): # j: char_285_medic2 + # k: Lancet-2 + if filename.startswith(j): if filename.startswith("trap_"): if k in trap_list: break + trap_list.append(k) + img = loadimg(os.path.join(data_path, filename), True) + if img.shape != (h, w): img = cv2.resize(img, (w, h)) + full[y : y + h, x : x + w] = img + cv2.rectangle(mask, mx, my, (255,), -1) + name_list.append(k) + i += 1 + break if save_img: disp = cv2.bitwise_and(full, mask) + cv2.imwrite(f"{name}.png", disp) kp, des = fast_keypoints(full, mask) + pt = [p.pt for p in kp] + data = {"w": w, "h": h, "col": col, "name": name_list, "pt": pt, "des": des} + if name == "avatar/ASSISTANT": name = "avatar" + if name == "charpor": name = "portrait" + with lzma.open(f"./mower/static/{name}.pkl", "wb") as f: pickle.dump(data, f) extract("avatar", ((20, 51), (160, 146))) + extract("portrait", ((20, 115), (160, 190))) + # extract("avatar/ASSISTANT", ((20, 51), (160, 146))) + # extract("charpor", ((20, 51), (160, 146))) def 获得干员基建描述(self): buff描述 = self.基建表["buffs"] + buff_table = {} + for buff名称, 相关buff in buff描述.items(): buff_table[buff名称] = [ 相关buff["buffName"], @@ -541,6 +747,7 @@ class Arknights数据处理器: 干员技能列表 = [] name_key = 0 + for 角色id, 相关buff in self.基建表["chars"].items(): 干员技能字典 = { "key": 0, @@ -549,11 +756,20 @@ class Arknights数据处理器: "child_skill": [], } - 干员技能字典["name"] = self.干员表[角色id]["name"] + try: + 干员技能字典["name"] = self.干员表[角色id]["name"] + + except KeyError: + print(f"警告:在干员表中找不到 角色id '{角色id}',已跳过。") + + continue skill_key = 0 + name_key += 1 + 干员技能字典["key"] = name_key + for item in 相关buff["buffChar"]: skill_level = 0 @@ -562,8 +778,11 @@ class Arknights数据处理器: 干员技能详情 = {} 干员技能详情["skill_key"] = skill_key + 干员技能详情["skill_level"] = skill_level + skill_level += 1 + phase = ( item2["cond"]["phase"][-1] if isinstance(item2["cond"]["phase"], (list, str)) @@ -573,55 +792,84 @@ class Arknights数据处理器: 干员技能详情["phase_level"] = ( f"精{phase} {item2['cond']['level']}级" ) + 干员技能详情["skillname"] = buff_table[item2["buffId"]][0] + text = buff_table[item2["buffId"]][1] + pattern = r"<\$(.*?)>" + matches = re.findall(pattern, text) + ex_string = [] + 干员技能详情["buffer"] = False + 干员技能详情["buffer_des"] = [] + if matches: 干员技能详情["buffer"] = True + ex_string = list( set([match.replace(".", "_") for match in matches]) ) + ex_string.sort() + 干员技能详情["buffer_des"] = ex_string + self.所有buff.extend(ex_string) 干员技能详情["des"] = text + 干员技能详情["roomType"] = roomType[ buff_table[item2["buffId"]][2] ] + 干员技能详情["buffCategory"] = buff_table[item2["buffId"]][3] + 干员技能详情["skillIcon"] = buff_table[item2["buffId"]][4] + 干员技能详情["buffColor"] = buff_table[item2["buffId"]][5] + 干员技能详情["textColor"] = buff_table[item2["buffId"]][6] 干员技能字典["child_skill"].append(干员技能详情) 干员技能详情 = [] + 干员技能字典["span"] = len(干员技能字典["child_skill"]) + skill_key += 1 + 干员技能列表.append(干员技能字典.copy()) + 干员技能列表 = sorted(干员技能列表, key=lambda x: (-x["key"])) + # print(干员技能列表) + with open("./mower/data/building_skill/skill.json", "w", encoding="utf-8") as f: json.dump(干员技能列表, f, ensure_ascii=False, indent=4) def 转换输出基建buff(self): buff_table = {} + pattern = r"<\$(.*?)>" for item in self.游戏变量["termDescriptionDict"]: matches = re.findall( pattern, self.游戏变量["termDescriptionDict"][item]["description"] ) + matches = [match.replace(".", "_") for match in matches] + dict1 = self.游戏变量["termDescriptionDict"][item] + dict1["buffer"] = [] + if item.startswith("cc") and matches: dict1["buffer"] = matches + buff_table[item.replace(".", "_")] = dict1 with open( @@ -631,41 +879,58 @@ class Arknights数据处理器: def 添加基建技能图标(self): # 源目录和目标目录 + source_dir = "./ArknightsGameResource/building_skill" + destination_dir = "./ui/public/building_skill" # 创建目标目录(如果不存在) + os.makedirs(destination_dir, exist_ok=True) + # 遍历源目录中的所有文件 + for root, dirs, files in os.walk(source_dir): for file in files: if file.endswith(".png"): src_file_path = os.path.join(root, file) + # 修改文件扩展名为 .webp + dest_file_name = os.path.splitext(file)[0] + ".webp" + dest_file_path = os.path.join(destination_dir, dest_file_name) + if not os.path.exists(dest_file_path): with Image.open(src_file_path) as img: img.save(dest_file_path, "webp") + print(f"转换: {src_file_path} 到 {dest_file_path}") + else: print(f"跳过: {dest_file_path} 已存在") def 输出_前端基建资源(self): self.获得干员基建描述() + self.转换输出基建buff() + self.添加基建技能图标() def levels(self): levels_json = 加载json("./ArknightsGameResource/levels.json") + LEVELS = [Level.from_json(data) for data in levels_json] + with lzma.open("mower/static/levels.pkl", "wb") as f: pickle.dump(LEVELS, f) def 读取模组(self): _ = [] + for item in self.模组["missionList"]: _.append(self.模组["missionList"][item]["template"]) + template_list = list({}.fromkeys(_).keys()) print(template_list) @@ -673,21 +938,30 @@ class Arknights数据处理器: for 干员代码, 干员数据 in self.干员表.items(): if not 干员数据["itemObtainApproach"]: continue + 干员名 = 干员数据["name"] + print(干员名) + for 技能数, item in enumerate(干员数据["skills"]): 技能图标名 = self.战斗技能[item["skillId"]]["iconId"] or item["skillId"] + 干员技能路径 = f"./ArknightsResource/skills/skill_icon_{技能图标名}.png" + os.makedirs( f"./mower/static/avatar_skill/{干员数据['name']}", exist_ok=True ) + 目标路径 = ( f"./mower/static/avatar_skill/{干员数据['name']}/{技能数 + 1}.png" ) + if not os.path.exists(目标路径): try: shutil.copy(干员技能路径, 目标路径) + print(目标路径) + except Exception: pass diff --git a/mower/data/agent.json b/mower/data/agent.json index e83d30a8..1716238f 100644 --- a/mower/data/agent.json +++ b/mower/data/agent.json @@ -1394,6 +1394,11 @@ "profession": "MEDIC", "name": "Warfarin" }, + "录武官": { + "key": "char_4196_reckpr", + "profession": "MEDIC", + "name": "Record Keeper" + }, "诺威尔": { "key": "char_4173_nowell", "profession": "MEDIC", @@ -1719,6 +1724,11 @@ "profession": "WARRIOR", "name": "Entelechia" }, + "司霆惊蛰": { + "key": "char_1043_leizi2", + "profession": "WARRIOR", + "name": "Leizi the Thunderbringer" + }, "正义骑士号": { "key": "char_4000_jnight", "profession": "SNIPER", diff --git a/mower/data/building_skill/skill.json b/mower/data/building_skill/skill.json index 93c173f5..9f5aa782 100644 --- a/mower/data/building_skill/skill.json +++ b/mower/data/building_skill/skill.json @@ -1,4 +1,74 @@ [ + { + "key": 376, + "name": "司霆惊蛰", + "span": 2, + "child_skill": [ + { + "skill_key": 0, + "skill_level": 0, + "phase_level": "精0 1级", + "skillname": "雷法专精", + "buffer": false, + "buffer_des": [], + "des": "进驻发电站时,无人机充能速度<@cc.vup>+10%", + "roomType": "发电站", + "buffCategory": "OUTPUT", + "skillIcon": "bskill_pow_spd1", + "buffColor": "#8fc31f", + "textColor": "#ffffff" + }, + { + "skill_key": 1, + "skill_level": 0, + "phase_level": "精2 1级", + "skillname": "克己严修", + "buffer": false, + "buffer_des": [], + "des": "进驻加工站加工<@cc.kw>技巧概要时,副产品的产出概率提升<@cc.vup>80%", + "roomType": "加工站", + "buffCategory": "FUNCTION", + "skillIcon": "bskill_ws_skill3", + "buffColor": "#e3eb00", + "textColor": "#333333" + } + ] + }, + { + "key": 375, + "name": "录武官", + "span": 2, + "child_skill": [ + { + "skill_key": 0, + "skill_level": 0, + "phase_level": "精0 1级", + "skillname": "医疗专精·α", + "buffer": false, + "buffer_des": [], + "des": "进驻训练室协助位时,<@cc.kw>医疗干员的专精技能训练速度<@cc.vup>+30%", + "roomType": "训练室", + "buffCategory": "FUNCTION", + "skillIcon": "bskill_train_medic1", + "buffColor": "#7d0022", + "textColor": "#ffffff" + }, + { + "skill_key": 1, + "skill_level": 0, + "phase_level": "精2 1级", + "skillname": "学无不精·α", + "buffer": false, + "buffer_des": [], + "des": "进驻训练室协助位时,干员的专精技能训练速度<@cc.vup>+25%", + "roomType": "训练室", + "buffCategory": "FUNCTION", + "skillIcon": "bskill_train_all", + "buffColor": "#7d0022", + "textColor": "#ffffff" + } + ] + }, { "key": 374, "name": "Miss.Christine", diff --git a/mower/data/key_mapping.json b/mower/data/key_mapping.json index 0210757e..20d64534 100644 --- a/mower/data/key_mapping.json +++ b/mower/data/key_mapping.json @@ -3625,6 +3625,13 @@ "MATERIAL", 700169 ], + "p_char_4196_reckpr": [ + "p_char_4196_reckpr", + "p_char_4196_reckpr", + "录武官的信物", + "MATERIAL", + 700170 + ], "p_char_103_angel": [ "p_char_103_angel", "p_char_103_angel", @@ -4409,6 +4416,13 @@ "MATERIAL", 600112 ], + "p_char_1043_leizi2": [ + "p_char_1043_leizi2", + "p_char_1043_leizi2", + "司霆惊蛰的信物", + "MATERIAL", + 600113 + ], "class_p_char_123_fang": [ "class_p_char_123_fang", "class_p_char_123_fang", diff --git a/mower/static/MATERIAL.pkl b/mower/static/MATERIAL.pkl index 9457fc7a..fcaba6ea 100644 --- a/mower/static/MATERIAL.pkl +++ b/mower/static/MATERIAL.pkl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e1cb112776078bb736efeb0766f55e55a1cb34cbc34a674b51d53f9bd1eacb5e -size 30079500 +oid sha256:04370b66e64a704f9800b8806cadad9293b55fb42cfefe7fdcec4bacbbbcf7ee +size 30110724 diff --git a/mower/static/avatar.pkl b/mower/static/avatar.pkl index 609e7b7a..531ab37d 100644 --- a/mower/static/avatar.pkl +++ b/mower/static/avatar.pkl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2aa80e7e3f2fe04ec7c5b85b4aad51a76e1a25c08835762a561076480d353be9 -size 20780928 +oid sha256:8bab223930059cadabbc035b84a3a8370b1562927b4ab4ad1686943bb991ae18 +size 20922944 diff --git a/mower/static/avatar_skill/司霆惊蛰/1.png b/mower/static/avatar_skill/司霆惊蛰/1.png new file mode 100644 index 00000000..a03bfa8a --- /dev/null +++ b/mower/static/avatar_skill/司霆惊蛰/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dde9ec64bff43021cc7478fb72bbb5130764da97305694af1b6ae1a627042f36 +size 19164 diff --git a/mower/static/avatar_skill/司霆惊蛰/2.png b/mower/static/avatar_skill/司霆惊蛰/2.png new file mode 100644 index 00000000..696e2e1e --- /dev/null +++ b/mower/static/avatar_skill/司霆惊蛰/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e76dd3853c3b33f0a5664b0a4d6bf83f9dacbb5edb9be3170738e71c21e6c20 +size 18769 diff --git a/mower/static/avatar_skill/司霆惊蛰/3.png b/mower/static/avatar_skill/司霆惊蛰/3.png new file mode 100644 index 00000000..a13531ea --- /dev/null +++ b/mower/static/avatar_skill/司霆惊蛰/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a5774f0b8f0278ba2a32e32f5530726541717f6cfd2ca28a816e2c48fb0fb4f +size 21882 diff --git a/mower/static/avatar_skill/录武官/1.png b/mower/static/avatar_skill/录武官/1.png new file mode 100644 index 00000000..f9c903cd --- /dev/null +++ b/mower/static/avatar_skill/录武官/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f0434ca88abd336464e234c21e5b43d4ecd5cc969df08b36f797ebb4bd9d2d8 +size 20131 diff --git a/mower/static/avatar_skill/录武官/2.png b/mower/static/avatar_skill/录武官/2.png new file mode 100644 index 00000000..a1f53038 --- /dev/null +++ b/mower/static/avatar_skill/录武官/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9737a72881e9aaac800570b7683a41da1c8da1bcec58d0fd22b9ddd1cd97ff58 +size 20288 diff --git a/mower/static/operator_room.model b/mower/static/operator_room.model index e926d274..a182ca8c 100644 --- a/mower/static/operator_room.model +++ b/mower/static/operator_room.model @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8846e1ee129e8421963ff906002e3b891e77d46e63b00b66560efbb333723e30 -size 84292 +oid sha256:04bbd9ef73896b56578cd40edeb1ac42a0d675bc73dcdbf7595d59f8295c69db +size 84744 diff --git a/mower/static/portrait.pkl b/mower/static/portrait.pkl index a3885b3b..020c4f42 100644 --- a/mower/static/portrait.pkl +++ b/mower/static/portrait.pkl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b08c4ca0b31750d0da3b9a92ee237b495ec06b13f2bc34a910b923b76ffa3e4a -size 13585524 +oid sha256:8faa32db8ce0b732bbfeefe0b3ff0033684d4a48be64b4d7a0f122d5eac7a3c8 +size 13680528 diff --git a/ui/dist/assets/BasementSkill.js b/ui/dist/assets/BasementSkill.js index 22121677..95295108 100644 --- a/ui/dist/assets/BasementSkill.js +++ b/ui/dist/assets/BasementSkill.js @@ -106,7 +106,7 @@ const cc_c_abyssal2_3 = { "termId": "cc.c.abyssal2_3", "termName": "特殊叠加 const cc_c_room1 = { "termId": "cc.c.room1", "termName": "部分设施", "description": "包含以下设施\n发电站、人力办公室、会客室", "buffer": [] }; const cc_c_room2 = { "termId": "cc.c.room2", "termName": "其他设施", "description": "包含以下设施\n发电站、制造站、贸易站、人力办公室、会客室", "buffer": [] }; const cc_c_room3 = { "termId": "cc.c.room3", "termName": "工作场所", "description": "包含以下设施\n发电站、制造站、贸易站、人力办公室、会客室、控制中枢、训练室", "buffer": [] }; -const cc_c_skill = { "termId": "cc.c.skill", "termName": "部分技能", "description": "包含以下技能\n左膀右臂、S.W.E.E.P.、零食网络、清理协议、替身、必要责任、护卫、小小的领袖、独善其身、笑靥如春、金盏花诗会、捍卫之道、博识生手", "buffer": [] }; +const cc_c_skill = { "termId": "cc.c.skill", "termName": "部分技能", "description": "包含以下技能\r\n左膀右臂、S.W.E.E.P.、零食网络、清理协议、替身、必要责任、护卫、小小的领袖、独善其身、笑靥如春、金盏花诗会、捍卫之道、博识生手、点滴关照", "buffer": [] }; const cc_t_strong2 = { "termId": "cc.t.strong2", "termName": "特殊叠加规则", "description": "无法单独与<$cc.t.snsant1><@cc.rem>天道酬勤·α、<$cc.t.snsant2><@cc.rem>天道酬勤·β进行叠加,且优先生效\n当<$cc.t.snsant1><@cc.rem>天道酬勤·α、<$cc.t.snsant2><@cc.rem>天道酬勤·β与其他技能进行叠加时,该技能会对此叠加效果进行叠加", "buffer": ["cc_t_snsant1", "cc_t_snsant2", "cc_t_snsant1", "cc_t_snsant2"] }; const cc_c_sui2_1 = { "termId": "cc.c.sui2_1", "termName": "特殊比较规则", "description": "在<@cc.kw>公事公办,<@cc.kw>孤光共照,<@cc.kw>巴别塔之帜提供的<$cc.c.room2><@cc.kw>其他设施每小时心情恢复值中取最高生效", "buffer": ["cc_c_room2"] }; const cc_m_pow1 = { "termId": "cc.m.pow1", "termName": "自动化·α", "description": "由以下干员提供\n温蒂、森蚺、异客", "buffer": [] }; diff --git a/ui/dist/assets/DesktopSettings.css b/ui/dist/assets/DesktopSettings.css index 4bf65a32..d426f111 100644 --- a/ui/dist/assets/DesktopSettings.css +++ b/ui/dist/assets/DesktopSettings.css @@ -8,10 +8,10 @@ } /* Styles 部分保持不变 */ -.float-btn[data-v-249c7f74] { +.float-btn[data-v-0185b520] { z-index: 9999; } -.settings-panel[data-v-249c7f74] { +.settings-panel[data-v-0185b520] { width: 850px; height: calc(min(100vh - 70px, 630px)); background-color: #f8f8f8; @@ -19,7 +19,7 @@ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); overflow: hidden; } -.settings-content-area[data-v-249c7f74] { +.settings-content-area[data-v-0185b520] { height: 100%; overflow-y: auto; background-color: #fff; diff --git a/ui/dist/assets/DesktopSettings.js b/ui/dist/assets/DesktopSettings.js index 0b50fd6a..880f1d1c 100644 --- a/ui/dist/assets/DesktopSettings.js +++ b/ui/dist/assets/DesktopSettings.js @@ -1327,7 +1327,7 @@ const _sfc_main = { }; } }; -const DesktopSettings = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-249c7f74"]]); +const DesktopSettings = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-0185b520"]]); export { DesktopSettings as default }; diff --git a/ui/dist/assets/Doc.css b/ui/dist/assets/Doc.css index 739a07a8..9ae72a3f 100644 --- a/ui/dist/assets/Doc.css +++ b/ui/dist/assets/Doc.css @@ -1,5 +1,5 @@ -.loading[data-v-f9ae5a23] { +.loading[data-v-69c55212] { position: absolute; top: 48px; font-size: 28px; diff --git a/ui/dist/assets/Doc.js b/ui/dist/assets/Doc.js index 859187c8..cdaa74d2 100644 --- a/ui/dist/assets/Doc.js +++ b/ui/dist/assets/Doc.js @@ -46,7 +46,7 @@ const _sfc_main = { }; } }; -const Doc = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f9ae5a23"]]); +const Doc = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-69c55212"]]); export { Doc as default }; diff --git a/ui/dist/assets/HelpText.css b/ui/dist/assets/HelpText.css index 8f11bf9f..87fc6583 100644 --- a/ui/dist/assets/HelpText.css +++ b/ui/dist/assets/HelpText.css @@ -1,4 +1,4 @@ -.help[data-v-e18814d8] { +.help[data-v-587b8b4b] { z-index: 100; } diff --git a/ui/dist/assets/HelpText.js b/ui/dist/assets/HelpText.js index b04ae428..18ea192d 100644 --- a/ui/dist/assets/HelpText.js +++ b/ui/dist/assets/HelpText.js @@ -53,7 +53,7 @@ function _sfc_render(_ctx, _cache) { _: 3 }); } -const __unplugin_components_0 = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-e18814d8"]]); +const __unplugin_components_0 = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-587b8b4b"]]); export { __unplugin_components_0 }; diff --git a/ui/dist/assets/Log.css b/ui/dist/assets/Log.css index 5e4cc19e..63408abe 100644 --- a/ui/dist/assets/Log.css +++ b/ui/dist/assets/Log.css @@ -1,38 +1,38 @@ -.log[data-v-06f47113] { +.log[data-v-bb8daf92] { overflow: hidden; flex: 1; } -.task-table[data-v-06f47113] { +.task-table[data-v-bb8daf92] { position: relative; max-width: 600px; } -.task-table th[data-v-06f47113] { +.task-table th[data-v-bb8daf92] { padding: 2px 16px; } -.task-table td[data-v-06f47113] { +.task-table td[data-v-bb8daf92] { height: 24px; padding: 2px 8px; } -.task-table td[data-v-06f47113]:last-child { +.task-table td[data-v-bb8daf92]:last-child { width: 100%; } -.action-container[data-v-06f47113] { +.action-container[data-v-bb8daf92] { display: flex; align-items: center; gap: 12px; z-index: 15; } -.toggle-table-collapse-btn[data-v-06f47113] { +.toggle-table-collapse-btn[data-v-bb8daf92] { position: absolute; top: 0; right: 0; } -.toggle-fullscreen-btn[data-v-06f47113] { +.toggle-fullscreen-btn[data-v-bb8daf92] { position: absolute; top: 0; right: 38px; } -.log-bg[data-v-06f47113] { +.log-bg[data-v-bb8daf92] { content: ""; width: 100%; height: 100%; @@ -42,12 +42,12 @@ opacity: 0.25; background-image: url(/bg1.webp), url(/bg2.webp); background-repeat: no-repeat; - background-size: var(--d21ecd16); - background-position: var(--0bab789d); + background-size: var(--72ac3b4a); + background-position: var(--8bac42fa); pointer-events: none; z-index: 14; } -.sc[data-v-06f47113] { +.sc[data-v-bb8daf92] { max-width: 480px; max-height: 270px; border-radius: 6px; diff --git a/ui/dist/assets/Log.js b/ui/dist/assets/Log.js index 69328248..f2598dde 100644 --- a/ui/dist/assets/Log.js +++ b/ui/dist/assets/Log.js @@ -829,8 +829,8 @@ const _sfc_main = { __name: "Log", setup(__props) { useCssVars((_ctx) => ({ - "d21ecd16": unref(bg_size), - "0bab789d": unref(bg_position) + "72ac3b4a": unref(bg_size), + "8bac42fa": unref(bg_position) })); const mower_store = useMowerStore(); const { ws, log, log_mobile, thread_status, task_list, get_task_id, sc_uri } = storeToRefs(mower_store); @@ -1037,7 +1037,7 @@ const _sfc_main = { }; } }; -const Log = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-06f47113"]]); +const Log = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-bb8daf92"]]); export { Log as default }; diff --git a/ui/dist/assets/LongTasks.css b/ui/dist/assets/LongTasks.css index 45f97977..89da5479 100644 --- a/ui/dist/assets/LongTasks.css +++ b/ui/dist/assets/LongTasks.css @@ -1,44 +1,44 @@ @charset "UTF-8"; -.coord-label[data-v-bd41e82d] { +.coord-label[data-v-f4ed7511] { width: 40px; padding-left: 8px; } -.card-title[data-v-bd41e82d] { +.card-title[data-v-f4ed7511] { margin-right: 8px; } -.threshold[data-v-9ffc8196] { +.threshold[data-v-17303244] { display: flex; align-items: center; gap: 14px; width: 100%; } -.email-title[data-v-f611d9fe] { +.email-title[data-v-3b2776a3] { width: 100%; } -.expand[data-v-f611d9fe] { +.expand[data-v-3b2776a3] { flex-grow: 1; } -.email-table[data-v-f611d9fe] { +.email-table[data-v-3b2776a3] { width: 100%; margin-bottom: 12px; } -.email-test[data-v-f611d9fe] { +.email-test[data-v-3b2776a3] { display: flex; align-items: center; gap: 16px; } -.email-mode[data-v-f611d9fe] { +.email-mode[data-v-3b2776a3] { margin-left: 20px; } -.email-label[data-v-f611d9fe] { +.email-label[data-v-3b2776a3] { width: 68px; } -p[data-v-f611d9fe] { +p[data-v-3b2776a3] { margin: 0 0 10px 0; } -.mt-16[data-v-f611d9fe] { +.mt-16[data-v-3b2776a3] { margin-top: 16px; } @@ -49,122 +49,122 @@ p[data-v-f611d9fe] { gap: 12px; } -.subtitle[data-v-e24fdfe6] { +.subtitle[data-v-4f64e716] { margin: 12px 0 6px; } -.scale[data-v-60093aec] { +.scale[data-v-26ad4730] { width: 60px; text-align: right; } -.scale-apply[data-v-60093aec] { +.scale-apply[data-v-26ad4730] { margin-left: 24px; } .waiting-table { th, td { -&[data-v-60093aec] { +&[data-v-26ad4730] { padding: 4px; min-width: 70px; width: 100px; } -&[data-v-60093aec]:first-child { +&[data-v-26ad4730]:first-child { width: auto; padding: 4px 8px; } } } -.item[data-v-2ceb271c] { +.item[data-v-9889efe8] { font-weight: 500; font-size: 16px; } -.n-divider[data-v-2ceb271c]:not(.n-divider--vertical) { +.n-divider[data-v-9889efe8]:not(.n-divider--vertical) { margin: 6px 0; } -.telemetry[data-v-2ceb271c] { +.telemetry[data-v-9889efe8] { border-collapse: collapse; table-layout: fixed; margin-bottom: 6px; } -th[data-v-2ceb271c], -td[data-v-2ceb271c] { +th[data-v-9889efe8], +td[data-v-9889efe8] { border: 1px solid white; padding: 2px 6px; } -p[data-v-e83a44f6] { +p[data-v-46384f04] { margin: 0 0 8px 0; } -h4[data-v-e83a44f6] { +h4[data-v-46384f04] { margin: 12px 0 10px 0; } -.big-table[data-v-e83a44f6] { +.big-table[data-v-46384f04] { margin-top: 10px; max-width: 320px; } -.big-table th[data-v-e83a44f6] { +.big-table th[data-v-46384f04] { text-align: center; } -.big-table tr[data-v-e83a44f6] { +.big-table tr[data-v-46384f04] { width: 70px; } -.big-table td[data-v-e83a44f6] { +.big-table td[data-v-46384f04] { height: 24px; } -.big-table td[data-v-e83a44f6]:nth-child(1) { +.big-table td[data-v-46384f04]:nth-child(1) { width: 70px; text-align: center; } -.big-table td[data-v-e83a44f6]:nth-child(2) { +.big-table td[data-v-46384f04]:nth-child(2) { width: 420px; } -.final[data-v-e83a44f6] { +.final[data-v-46384f04] { margin: 16px 0 0; -}p[data-v-70be2e67] { +}p[data-v-83ca4317] { margin: 2px 0; } -h4[data-v-70be2e67] { +h4[data-v-83ca4317] { margin: 12px 0 8px 0; } -table[data-v-70be2e67] { +table[data-v-83ca4317] { width: 100%; } -td[data-v-70be2e67]:nth-child(1) { +td[data-v-83ca4317]:nth-child(1) { width: 80px; } -.ignore-blacklist[data-v-70be2e67] { +.ignore-blacklist[data-v-83ca4317] { margin-bottom: 10px; display: flex; gap: 12px; } -.h4[data-v-70be2e67] { +.h4[data-v-83ca4317] { font-size: 16px; font-weight: 500; } -.maa-shop[data-v-70be2e67] { +.maa-shop[data-v-83ca4317] { margin: 8px 0; } -.item[data-v-70be2e67] { +.item[data-v-83ca4317] { font-weight: 500; font-size: 16px; } /* 表单和活动区域样式调整 (可选) */ -.form-item .n-flex[data-v-1081049d] { +.form-item .n-flex[data-v-d720c1de] { gap: 8px 12px; } -.activity .n-tag[data-v-1081049d] { +.activity .n-tag[data-v-d720c1de] { margin-bottom: 4px; } /* 周计划表格容器 */ -.plan-container[data-v-1081049d] { +.plan-container[data-v-d720c1de] { border: 1px solid var(--n-border-color); border-radius: var(--n-border-radius); margin-top: 12px; } /* 表头行样式 */ -.plan-header[data-v-1081049d] { +.plan-header[data-v-d720c1de] { font-size: 12px; color: var(--n-text-color-2); padding: 6px 10px; @@ -173,7 +173,7 @@ td[data-v-70be2e67]:nth-child(1) { } /* 表头 - 关卡列 */ -.header-stage[data-v-1081049d] { +.header-stage[data-v-d720c1de] { width: 120px; /* 固定宽度 */ flex-shrink: 0; text-align: left; @@ -182,22 +182,22 @@ td[data-v-70be2e67]:nth-child(1) { } /* 表头 - 日期列 */ -.header-days[data-v-1081049d] { +.header-days[data-v-d720c1de] { flex-grow: 1; text-align: center; min-width: 210px; /* 保证容纳7个按钮的宽度 */ } -.header-days .today-header[data-v-1081049d] { +.header-days .today-header[data-v-d720c1de] { font-weight: normal; color: var(--n-text-color-1); } -.header-days .today-name[data-v-1081049d] { +.header-days .today-name[data-v-d720c1de] { font-weight: bold; color: var(--n-color-error); /* 高亮当天星期名称 */ } /* 表头 - 操作列 */ -.header-action[data-v-1081049d] { +.header-action[data-v-d720c1de] { width: 40px; /* 固定宽度 */ flex-shrink: 0; text-align: center; @@ -206,19 +206,19 @@ td[data-v-70be2e67]:nth-child(1) { } /* 计划项目行样式 */ -.plan-item[data-v-1081049d] { +.plan-item[data-v-d720c1de] { padding: 6px 10px; border-bottom: 1px solid var(--n-border-color); } -.plan-item[data-v-1081049d]:last-child { +.plan-item[data-v-d720c1de]:last-child { border-bottom: none; } -.plan-item[data-v-1081049d]:nth-child(even) { +.plan-item[data-v-d720c1de]:nth-child(even) { background-color: var(--n-action-color); /* 斑马条纹 */ } /* 行内 - 关卡区域 */ -.stage-area[data-v-1081049d] { +.stage-area[data-v-d720c1de] { width: 120px; /* 同表头宽度 */ flex-shrink: 0; display: flex; @@ -227,7 +227,7 @@ td[data-v-70be2e67]:nth-child(1) { text-overflow: ellipsis; white-space: nowrap; } -.stage-area .stage-name[data-v-1081049d] { +.stage-area .stage-name[data-v-d720c1de] { font-size: 14px; overflow: hidden; text-overflow: ellipsis; @@ -235,18 +235,18 @@ td[data-v-70be2e67]:nth-child(1) { padding-left: 4px; cursor: default; /* 显示 title 提示 */ } -.stage-area .stage-name[title][data-v-1081049d] { +.stage-area .stage-name[title][data-v-d720c1de] { /* 确保 title 属性生效 */ cursor: default; } -.stage-area .custom-stage-input[data-v-1081049d], -.stage-area .custom-stage-tag[data-v-1081049d] { +.stage-area .custom-stage-input[data-v-d720c1de], +.stage-area .custom-stage-tag[data-v-d720c1de] { width: 100%; } -.stage-area .custom-stage-tag[data-v-1081049d] { +.stage-area .custom-stage-tag[data-v-d720c1de] { justify-content: space-between; } -.stage-area .custom-stage-tag[data-v-1081049d] .n-tag__content { +.stage-area .custom-stage-tag[data-v-d720c1de] .n-tag__content { /* 确保标签内容不溢出 */ overflow: hidden; text-overflow: ellipsis; @@ -255,14 +255,14 @@ td[data-v-70be2e67]:nth-child(1) { } /* 行内 - 每日切换按钮区域 */ -.day-toggles[data-v-1081049d] { +.day-toggles[data-v-d720c1de] { flex-grow: 1; justify-content: space-around; /* 均匀分布按钮 */ min-width: 210px; /* 同表头估算宽度 */ /* 每个按钮的占位容器 */ /* 每日切换按钮样式 */ } -.day-toggles .day-toggle-placeholder[data-v-1081049d] { +.day-toggles .day-toggle-placeholder[data-v-d720c1de] { width: 28px; /* 固定宽度 */ height: 28px; /* 固定高度 */ display: flex; @@ -270,7 +270,7 @@ td[data-v-70be2e67]:nth-child(1) { align-items: center; flex-shrink: 0; } -.day-toggles .day-toggle[data-v-1081049d] { +.day-toggles .day-toggle[data-v-d720c1de] { width: 28px; height: 28px; padding: 0; @@ -283,7 +283,7 @@ td[data-v-70be2e67]:nth-child(1) { /* 未选中按钮 (ghost) active 状态 */ /* 选中按钮 (success) active 状态 */ } -.day-toggles .day-toggle.today-button[data-v-1081049d] { +.day-toggles .day-toggle.today-button[data-v-d720c1de] { font-weight: bold; /* !!! 新增:当天按钮字体加粗 !!! */ /* 当天且未选中的按钮,边框高亮 */ /* 当天且未选中的按钮 (ghost 状态),文字颜色也高亮 */ @@ -291,56 +291,56 @@ td[data-v-70be2e67]:nth-child(1) { /* 当天且选中的按钮 (success 状态),添加外边框 */ /* 当天且未选中的按钮 (ghost 状态) active */ } -.day-toggles .day-toggle.today-button[data-v-1081049d]:not(.n-button--success) { +.day-toggles .day-toggle.today-button[data-v-d720c1de]:not(.n-button--success) { border-color: var(--n-color-info); } -.day-toggles .day-toggle.today-button.n-button--ghost[data-v-1081049d]:not(:disabled) { +.day-toggles .day-toggle.today-button.n-button--ghost[data-v-d720c1de]:not(:disabled) { color: var(--n-color-info); } -.day-toggles .day-toggle.today-button.n-button--ghost[data-v-1081049d]:not(:disabled):hover { +.day-toggles .day-toggle.today-button.n-button--ghost[data-v-d720c1de]:not(:disabled):hover { border-color: var(--n-color-info-hover); color: var(--n-color-info-hover); } -.day-toggles .day-toggle.today-button.n-button--success[data-v-1081049d] { +.day-toggles .day-toggle.today-button.n-button--success[data-v-d720c1de] { outline: 1px solid var(--n-color-info-hover); outline-offset: 1px; } -.day-toggles .day-toggle.today-button.n-button--ghost[data-v-1081049d]:not(:disabled):active { +.day-toggles .day-toggle.today-button.n-button--ghost[data-v-d720c1de]:not(:disabled):active { background-color: var(--n-color-info-pressed); color: #fff; border-color: var(--n-color-info-pressed); } -.day-toggles .day-toggle.n-button--ghost[data-v-1081049d]:not(:disabled) { +.day-toggles .day-toggle.n-button--ghost[data-v-d720c1de]:not(:disabled) { color: var(--n-text-color-3); /* 稍暗的颜色 */ border-color: var(--n-border-color); /* 标准边框 */ } -.day-toggles .day-toggle.n-button--ghost[data-v-1081049d]:not(:disabled):hover { +.day-toggles .day-toggle.n-button--ghost[data-v-d720c1de]:not(:disabled):hover { border-color: var(--n-color-primary-hover); color: var(--n-color-primary-hover); } -.day-toggles .day-toggle.n-button--success[data-v-1081049d] { +.day-toggles .day-toggle.n-button--success[data-v-d720c1de] { background-color: var(--n-color-success-suppl); /* 浅成功色背景 */ color: var(--n-color-success-hover); /* 深成功色文字 */ border-color: var(--n-color-success-hover); /* 成功色边框 */ } -.day-toggles .day-toggle.n-button--success[data-v-1081049d]:hover { +.day-toggles .day-toggle.n-button--success[data-v-d720c1de]:hover { background-color: var(--n-color-success-hover); color: #fff; border-color: var(--n-color-success-hover); } -.day-toggles .day-toggle.n-button--ghost[data-v-1081049d]:not(:disabled):active { +.day-toggles .day-toggle.n-button--ghost[data-v-d720c1de]:not(:disabled):active { background-color: var(--n-color-primary-pressed); color: #fff; border-color: var(--n-color-primary-pressed); } -.day-toggles .day-toggle.n-button--success[data-v-1081049d]:active { +.day-toggles .day-toggle.n-button--success[data-v-d720c1de]:active { background-color: var(--n-color-success-pressed); color: #fff; border-color: var(--n-color-success-pressed); } /* 行内 - 操作按钮区域 */ -.action-area[data-v-1081049d] { +.action-area[data-v-d720c1de] { width: 40px; /* 同表头宽度 */ flex-shrink: 0; text-align: right; @@ -348,12 +348,12 @@ td[data-v-70be2e67]:nth-child(1) { justify-content: center; align-items: center; } -.action-area .n-button[data-v-1081049d] { +.action-area .n-button[data-v-d720c1de] { padding: 0 4px; /* 图标按钮减小内边距 */ } /* 活动标签进度条样式 (与原版一致) */ -.progress-tag[data-v-1081049d] { +.progress-tag[data-v-d720c1de] { position: relative; padding-bottom: 5px; height: auto; @@ -364,7 +364,7 @@ td[data-v-70be2e67]:nth-child(1) { align-items: center; overflow: hidden; } -.progress[data-v-1081049d] { +.progress[data-v-d720c1de] { position: absolute; bottom: 0; left: 0; @@ -372,7 +372,7 @@ td[data-v-70be2e67]:nth-child(1) { background-color: var(--n-color-success); transition: width 0.3s ease; } -.progress-bar[data-v-1081049d] { +.progress-bar[data-v-d720c1de] { position: absolute; bottom: 0; left: 0; @@ -382,84 +382,84 @@ td[data-v-70be2e67]:nth-child(1) { } /* 禁用状态标题样式 */ -.card-title.disabled[data-v-1081049d] { +.card-title.disabled[data-v-d720c1de] { color: var(--n-text-color-disabled); } -.container[data-v-16974522] { +.container[data-v-350b6de3] { display: flex; width: 100%; gap: 8px; } -.wrapper[data-v-16974522] { +.wrapper[data-v-350b6de3] { white-space: pre-wrap; user-select: text; } -.title[data-v-16974522] { +.title[data-v-350b6de3] { font-size: 18px; font-weight: 500; margin-bottom: 6px; } -.operator-grid[data-v-16974522] { +.operator-grid[data-v-350b6de3] { display: grid; gap: 8px 16px; align-items: center; } /* 非干员组的干员列表 - 桌面端 */ -:not(.mobile) .operator-grid[data-v-16974522]:not([class*='operator-group-']) { +:not(.mobile) .operator-grid[data-v-350b6de3]:not([class*='operator-group-']) { grid-template-columns: repeat(3, 1fr); } /* 非干员组的干员列表 - 移动端 */ -.mobile .operator-grid[data-v-16974522]:not([class*='operator-group-']) { +.mobile .operator-grid[data-v-350b6de3]:not([class*='operator-group-']) { grid-template-columns: repeat(2, 1fr); } /* 干员组内样式 */ -.n-card .operator-grid.operator-group-desktop[data-v-16974522] { +.n-card .operator-grid.operator-group-desktop[data-v-350b6de3] { grid-template-columns: 1fr; } -.n-card .operator-grid.operator-group-mobile[data-v-16974522] { +.n-card .operator-grid.operator-group-mobile[data-v-350b6de3] { grid-template-columns: repeat(2, 1fr); } -.operator-item[data-v-16974522] { +.operator-item[data-v-350b6de3] { display: flex; align-items: center; margin: 0; } -.operator-info[data-v-16974522] { +.operator-info[data-v-350b6de3] { display: flex; flex-direction: column; margin-left: 8px; } -.operator-name[data-v-16974522] { +.operator-name[data-v-350b6de3] { font-weight: bold; font-size: 1.1em; } -.operator-skill[data-v-16974522] { +.operator-skill[data-v-350b6de3] { font-size: 1em; } -p[data-v-d479d5bf] { +p[data-v-b2d35691] { margin: 0 0 10px 0; } -.misc-container[data-v-d479d5bf] { +.misc-container[data-v-b2d35691] { display: flex; align-items: center; gap: 12px; } -.header[data-v-d479d5bf] { +.header[data-v-b2d35691] { margin: 12px 0; } -.trials-container[data-v-a4610cbf] { +.trials-container[data-v-a113295f] { display: flex; width: 100%; gap: 8px; } -.wrapper[data-v-a4610cbf] { +.wrapper[data-v-a113295f] { white-space: pre-wrap; user-select: text; } -.title[data-v-a4610cbf] { +.title[data-v-a113295f] { font-size: 18px; font-weight: 500; margin-bottom: 6px; diff --git a/ui/dist/assets/LongTasks.js b/ui/dist/assets/LongTasks.js index 9acffbd0..6d2d55cd 100644 --- a/ui/dist/assets/LongTasks.js +++ b/ui/dist/assets/LongTasks.js @@ -1822,7 +1822,7 @@ const _sfc_main$j = { }; } }; -const Device = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-bd41e82d"]]); +const Device = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-f4ed7511"]]); const _hoisted_1$7 = { class: "threshold" }; const _sfc_main$i = { __name: "RIIC", @@ -2117,7 +2117,7 @@ const _sfc_main$i = { }; } }; -const RIIC = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-9ffc8196"]]); +const RIIC = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-17303244"]]); const _hoisted_1$6 = { key: 0 }; const _hoisted_2$5 = { key: 1 }; const _hoisted_3$2 = { key: 0 }; @@ -2372,7 +2372,7 @@ const _sfc_main$h = { }; } }; -const Email = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-f611d9fe"]]); +const Email = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-3b2776a3"]]); const _hoisted_1$5 = { style: { "display": "flex", "align-items": "center", "width": "100%" } }; const _hoisted_2$4 = { class: "misc-container" }; const _sfc_main$g = { @@ -2604,7 +2604,7 @@ const _sfc_main$f = { }; } }; -const AutoFight = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-e24fdfe6"]]); +const AutoFight = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-4f64e716"]]); const _sfc_main$e = { __name: "Appearance", setup(__props) { @@ -2727,7 +2727,7 @@ const _sfc_main$e = { }; } }; -const Appearance = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-60093aec"]]); +const Appearance = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-26ad4730"]]); const _sfc_main$d = { __name: "DailyMission", setup(__props) { @@ -3044,7 +3044,7 @@ const _sfc_main$d = { }; } }; -const DailyMission = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-2ceb271c"]]); +const DailyMission = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-9889efe8"]]); const _sfc_main$c = { __name: "Recruit", setup(__props) { @@ -3197,7 +3197,7 @@ const _sfc_main$c = { }; } }; -const Recruit = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-e83a44f6"]]); +const Recruit = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-46384f04"]]); const _hoisted_1$4 = { style: { "display": "flex", "align-items": "center", "width": "100%" } }; const _hoisted_2$3 = { style: { "margin-right": "24px" } }; const _sfc_main$b = { @@ -3682,7 +3682,7 @@ const _sfc_main$9 = { }; } }; -const Clue = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-70be2e67"]]); +const Clue = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-83ca4317"]]); class LuxonError extends Error { } class InvalidDateTimeError extends LuxonError { @@ -10701,7 +10701,7 @@ const _sfc_main$8 = { }; } }; -const WeeklyPlan = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-1081049d"]]); +const WeeklyPlan = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-d720c1de"]]); const _sfc_main$7 = { __name: "ReclamationAlgorithm", setup(__props) { @@ -10969,7 +10969,7 @@ const _sfc_main$6 = { }; } }; -const MaaCopilotImporter = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-16974522"]]); +const MaaCopilotImporter = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-350b6de3"]]); const _sfc_main$5 = { __name: "Sss", setup(__props) { @@ -11203,7 +11203,7 @@ const _sfc_main$4 = { }; } }; -const __unplugin_components_0 = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-d479d5bf"]]); +const __unplugin_components_0 = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-b2d35691"]]); const _sfc_main$3 = { __name: "MaaRogue", setup(__props) { @@ -11630,7 +11630,7 @@ const _sfc_main$1 = { }; } }; -const Trials = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-a4610cbf"]]); +const Trials = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-a113295f"]]); const _sfc_main = { __name: "LongTasks", setup(__props) { diff --git a/ui/dist/assets/Material_all_in_one.js b/ui/dist/assets/Material_all_in_one.js index 8e67f8dd..410bc336 100644 --- a/ui/dist/assets/Material_all_in_one.js +++ b/ui/dist/assets/Material_all_in_one.js @@ -5981,487 +5981,7 @@ const __unplugin_components_0 = defineComponent({ })); } }); -const event_data1 = [ - { - id: "", - name: "上次作战", - drop: "", - end: -1, - "周一": 1, - "周二": 1, - "周三": 1, - "周四": 1, - "周五": 1, - "周六": 1, - "周日": 1, - "理智消耗": 36, - key: 0 - }, - { - id: "1-7", - name: "1-7", - drop: "", - end: -1, - "周一": 1, - "周二": 1, - "周三": 1, - "周四": 1, - "周五": 1, - "周六": 1, - "周日": 1, - "理智消耗": 6, - key: 1 - }, - { - id: "Annihilation", - name: "剿灭", - drop: "", - end: -1, - "周一": 1, - "周二": 1, - "周三": 1, - "周四": 1, - "周五": 1, - "周六": 1, - "周日": 1, - "理智消耗": 25, - key: 2 - }, - { - id: "LS-6", - name: "经验书", - drop: "", - end: -1, - "周一": 1, - "周二": 1, - "周三": 1, - "周四": 1, - "周五": 1, - "周六": 1, - "周日": 1, - "理智消耗": 36, - key: 3 - }, - { - id: "CE-6", - name: "龙门币", - drop: "", - end: -1, - "周一": 0, - "周二": 1, - "周三": 0, - "周四": 1, - "周五": 0, - "周六": 1, - "周日": 1, - "理智消耗": 36, - key: 4 - }, - { - id: "AP-5", - name: "红票", - drop: "", - end: -1, - "周一": 1, - "周二": 0, - "周三": 0, - "周四": 1, - "周五": 0, - "周六": 1, - "周日": 1, - "理智消耗": 30, - key: 5 - }, - { - id: "SK-5", - name: "碳条", - drop: "", - end: -1, - "周一": 1, - "周二": 0, - "周三": 1, - "周四": 0, - "周五": 1, - "周六": 1, - "周日": 0, - "理智消耗": 30, - key: 6 - }, - { - id: "CA-5", - name: "技能书", - drop: "", - end: -1, - "周一": 0, - "周二": 1, - "周三": 1, - "周四": 0, - "周五": 1, - "周六": 0, - "周日": 1, - "理智消耗": 30, - key: 7 - }, - { - id: "PR-A-2", - name: "重装医疗2", - drop: "", - end: -1, - "周一": 1, - "周二": 0, - "周三": 0, - "周四": 1, - "周五": 1, - "周六": 0, - "周日": 1, - "理智消耗": 36, - key: 8 - }, - { - id: "PR-B-2", - name: "狙击术士2", - drop: "", - end: -1, - "周一": 1, - "周二": 1, - "周三": 0, - "周四": 0, - "周五": 1, - "周六": 1, - "周日": 0, - "理智消耗": 36, - key: 9 - }, - { - id: "PR-C-2", - name: "先锋辅助2", - drop: "", - end: -1, - "周一": 0, - "周二": 0, - "周三": 1, - "周四": 1, - "周五": 0, - "周六": 1, - "周日": 1, - "理智消耗": 36, - key: 10 - }, - { - id: "PR-D-2", - name: "近卫特种2", - drop: "", - end: -1, - "周一": 0, - "周二": 1, - "周三": 1, - "周四": 0, - "周五": 0, - "周六": 1, - "周日": 1, - "理智消耗": 36, - key: 11 - }, - { - id: "TN-1", - id_key: "act5bossrush_01", - name: "严寒骤血", - drop: { - "突袭首次掉落": [], - "常规掉落": [], - "首次掉落": [], - "特殊掉落": [], - "额外物资": [] - }, - start: 1750752e3, - end: 1751918399, - "理智消耗": 0, - "周一": 1, - "周二": 1, - "周三": 1, - "周四": 1, - "周五": 1, - "周六": 1, - "周日": 1, - key: 12 - }, - { - id: "TN-2", - id_key: "act5bossrush_02", - name: "无声破裂", - drop: { - "突袭首次掉落": [], - "常规掉落": [], - "首次掉落": [], - "特殊掉落": [], - "额外物资": [] - }, - start: 1750752e3, - end: 1751918399, - "理智消耗": 0, - "周一": 1, - "周二": 1, - "周三": 1, - "周四": 1, - "周五": 1, - "周六": 1, - "周日": 1, - key: 13 - }, - { - id: "TN-3", - id_key: "act5bossrush_03", - name: "幕间重影", - drop: { - "突袭首次掉落": [], - "常规掉落": [], - "首次掉落": [], - "特殊掉落": [], - "额外物资": [] - }, - start: 1750752e3, - end: 1751918399, - "理智消耗": 0, - "周一": 1, - "周二": 1, - "周三": 1, - "周四": 1, - "周五": 1, - "周六": 1, - "周日": 1, - key: 14 - }, - { - id: "TN-4", - id_key: "act5bossrush_04", - name: "沸海遮日", - drop: { - "突袭首次掉落": [], - "常规掉落": [], - "首次掉落": [], - "特殊掉落": [], - "额外物资": [] - }, - start: 1750752e3, - end: 1751918399, - "理智消耗": 0, - "周一": 1, - "周二": 1, - "周三": 1, - "周四": 1, - "周五": 1, - "周六": 1, - "周日": 1, - key: 15 - }, - { - id: "TN-1", - id_key: "act5bossrush_ex01", - name: "严寒骤血", - drop: { - "突袭首次掉落": [], - "常规掉落": [], - "首次掉落": [], - "特殊掉落": [], - "额外物资": [] - }, - start: 1750752e3, - end: 1751918399, - "理智消耗": 0, - "周一": 1, - "周二": 1, - "周三": 1, - "周四": 1, - "周五": 1, - "周六": 1, - "周日": 1, - key: 16 - }, - { - id: "TN-2", - id_key: "act5bossrush_ex02", - name: "无声破裂", - drop: { - "突袭首次掉落": [], - "常规掉落": [], - "首次掉落": [], - "特殊掉落": [], - "额外物资": [] - }, - start: 1750752e3, - end: 1751918399, - "理智消耗": 0, - "周一": 1, - "周二": 1, - "周三": 1, - "周四": 1, - "周五": 1, - "周六": 1, - "周日": 1, - key: 17 - }, - { - id: "TN-3", - id_key: "act5bossrush_ex03", - name: "幕间重影", - drop: { - "突袭首次掉落": [], - "常规掉落": [], - "首次掉落": [], - "特殊掉落": [], - "额外物资": [] - }, - start: 1750752e3, - end: 1751918399, - "理智消耗": 0, - "周一": 1, - "周二": 1, - "周三": 1, - "周四": 1, - "周五": 1, - "周六": 1, - "周日": 1, - key: 18 - }, - { - id: "TN-4", - id_key: "act5bossrush_ex04", - name: "沸海遮日", - drop: { - "突袭首次掉落": [], - "常规掉落": [], - "首次掉落": [], - "特殊掉落": [], - "额外物资": [] - }, - start: 1750752e3, - end: 1751918399, - "理智消耗": 0, - "周一": 1, - "周二": 1, - "周三": 1, - "周四": 1, - "周五": 1, - "周六": 1, - "周日": 1, - key: 19 - }, - { - id: "TN-4", - id_key: "act5bossrush_fin04", - name: "沸海遮日", - drop: { - "突袭首次掉落": [], - "常规掉落": [], - "首次掉落": [], - "特殊掉落": [], - "额外物资": [] - }, - start: 1750752e3, - end: 1751918399, - "理智消耗": 0, - "周一": 1, - "周二": 1, - "周三": 1, - "周四": 1, - "周五": 1, - "周六": 1, - "周日": 1, - key: 20 - }, - { - id: "TN-1", - id_key: "act5bossrush_tm01", - name: "严寒骤血", - drop: { - "突袭首次掉落": [], - "常规掉落": [], - "首次掉落": [], - "特殊掉落": [], - "额外物资": [] - }, - start: 1750752e3, - end: 1751918399, - "理智消耗": 0, - "周一": 1, - "周二": 1, - "周三": 1, - "周四": 1, - "周五": 1, - "周六": 1, - "周日": 1, - key: 21 - }, - { - id: "TN-2", - id_key: "act5bossrush_tm02", - name: "无声破裂", - drop: { - "突袭首次掉落": [], - "常规掉落": [], - "首次掉落": [], - "特殊掉落": [], - "额外物资": [] - }, - start: 1750752e3, - end: 1751918399, - "理智消耗": 0, - "周一": 1, - "周二": 1, - "周三": 1, - "周四": 1, - "周五": 1, - "周六": 1, - "周日": 1, - key: 22 - }, - { - id: "TN-3", - id_key: "act5bossrush_tm03", - name: "幕间重影", - drop: { - "突袭首次掉落": [], - "常规掉落": [], - "首次掉落": [], - "特殊掉落": [], - "额外物资": [] - }, - start: 1750752e3, - end: 1751918399, - "理智消耗": 0, - "周一": 1, - "周二": 1, - "周三": 1, - "周四": 1, - "周五": 1, - "周六": 1, - "周日": 1, - key: 23 - }, - { - id: "TN-4", - id_key: "act5bossrush_tm04", - name: "沸海遮日", - drop: { - "突袭首次掉落": [], - "常规掉落": [], - "首次掉落": [], - "特殊掉落": [], - "额外物资": [] - }, - start: 1750752e3, - end: 1751918399, - "理智消耗": 0, - "周一": 1, - "周二": 1, - "周三": 1, - "周四": 1, - "周五": 1, - "周六": 1, - "周日": 1, - key: 24 - } -]; +const event_data1 = /* @__PURE__ */ JSON.parse('[{"id":"","name":"上次作战","drop":"","end":-1,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"理智消耗":36,"key":0},{"id":"1-7","name":"1-7","drop":"","end":-1,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"理智消耗":6,"key":1},{"id":"Annihilation","name":"剿灭","drop":"","end":-1,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"理智消耗":25,"key":2},{"id":"LS-6","name":"经验书","drop":"","end":-1,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"理智消耗":36,"key":3},{"id":"CE-6","name":"龙门币","drop":"","end":-1,"周一":0,"周二":1,"周三":0,"周四":1,"周五":0,"周六":1,"周日":1,"理智消耗":36,"key":4},{"id":"AP-5","name":"红票","drop":"","end":-1,"周一":1,"周二":0,"周三":0,"周四":1,"周五":0,"周六":1,"周日":1,"理智消耗":30,"key":5},{"id":"SK-5","name":"碳条","drop":"","end":-1,"周一":1,"周二":0,"周三":1,"周四":0,"周五":1,"周六":1,"周日":0,"理智消耗":30,"key":6},{"id":"CA-5","name":"技能书","drop":"","end":-1,"周一":0,"周二":1,"周三":1,"周四":0,"周五":1,"周六":0,"周日":1,"理智消耗":30,"key":7},{"id":"PR-A-2","name":"重装医疗2","drop":"","end":-1,"周一":1,"周二":0,"周三":0,"周四":1,"周五":1,"周六":0,"周日":1,"理智消耗":36,"key":8},{"id":"PR-B-2","name":"狙击术士2","drop":"","end":-1,"周一":1,"周二":1,"周三":0,"周四":0,"周五":1,"周六":1,"周日":0,"理智消耗":36,"key":9},{"id":"PR-C-2","name":"先锋辅助2","drop":"","end":-1,"周一":0,"周二":0,"周三":1,"周四":1,"周五":0,"周六":1,"周日":1,"理智消耗":36,"key":10},{"id":"PR-D-2","name":"近卫特种2","drop":"","end":-1,"周一":0,"周二":1,"周三":1,"周四":0,"周五":0,"周六":1,"周日":1,"理智消耗":36,"key":11},{"id":"FM-1","id_key":"act19mini_01","name":"求同则塞","drop":{"突袭首次掉落":[],"常规掉落":["酯原料","破损装置","异铁碎片","双酮","代糖","源岩"],"首次掉落":["“棠梨儿”","至纯源石"],"特殊掉落":["“棠梨儿”"],"额外物资":[]},"start":1751947200,"end":1752523199,"理智消耗":9,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"key":12},{"id":"FM-1 突袭","id_key":"act19mini_01#f#","name":"求同则塞","drop":{"突袭首次掉落":["“棠梨儿”"],"常规掉落":[],"首次掉落":["至纯源石"],"特殊掉落":[],"额外物资":[]},"start":1751947200,"end":1752523199,"理智消耗":9,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"key":13},{"id":"FM-2","id_key":"act19mini_02","name":"求异则悖","drop":{"突袭首次掉落":[],"常规掉落":["酯原料","破损装置","异铁碎片","双酮","代糖","源岩"],"首次掉落":["“棠梨儿”","至纯源石"],"特殊掉落":["“棠梨儿”"],"额外物资":[]},"start":1751947200,"end":1752523199,"理智消耗":9,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"key":14},{"id":"FM-2 突袭","id_key":"act19mini_02#f#","name":"求异则悖","drop":{"突袭首次掉落":["“棠梨儿”"],"常规掉落":[],"首次掉落":["至纯源石"],"特殊掉落":[],"额外物资":[]},"start":1751947200,"end":1752523199,"理智消耗":9,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"key":15},{"id":"FM-3","id_key":"act19mini_03","name":"求遐则失","drop":{"突袭首次掉落":[],"常规掉落":["酯原料","破损装置","异铁碎片","双酮","代糖","源岩"],"首次掉落":["“棠梨儿”","至纯源石"],"特殊掉落":["“棠梨儿”"],"额外物资":[]},"start":1751947200,"end":1752523199,"理智消耗":12,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"key":16},{"id":"FM-3 突袭","id_key":"act19mini_03#f#","name":"求遐则失","drop":{"突袭首次掉落":["“棠梨儿”"],"常规掉落":[],"首次掉落":["至纯源石"],"特殊掉落":[],"额外物资":[]},"start":1751947200,"end":1752523199,"理智消耗":12,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"key":17},{"id":"FM-4","id_key":"act19mini_04","name":"求迩则乱","drop":{"突袭首次掉落":[],"常规掉落":["酯原料","破损装置","异铁碎片","双酮","代糖","源岩"],"首次掉落":["“棠梨儿”","至纯源石"],"特殊掉落":["“棠梨儿”"],"额外物资":[]},"start":1751947200,"end":1752523199,"理智消耗":12,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"key":18},{"id":"FM-4 突袭","id_key":"act19mini_04#f#","name":"求迩则乱","drop":{"突袭首次掉落":["“棠梨儿”"],"常规掉落":[],"首次掉落":["至纯源石"],"特殊掉落":[],"额外物资":[]},"start":1751947200,"end":1752523199,"理智消耗":12,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"key":19},{"id":"FM-5","id_key":"act19mini_05","name":"求缓则迟","drop":{"突袭首次掉落":[],"常规掉落":["装置"],"首次掉落":["“棠梨儿”","至纯源石"],"特殊掉落":["“棠梨儿”"],"额外物资":["源岩","酯原料","破损装置","赤金","固源岩","聚酸酯","装置"]},"start":1751947200,"end":1752523199,"理智消耗":15,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"key":20},{"id":"FM-5 突袭","id_key":"act19mini_05#f#","name":"求缓则迟","drop":{"突袭首次掉落":["“棠梨儿”"],"常规掉落":[],"首次掉落":["至纯源石"],"特殊掉落":[],"额外物资":[]},"start":1751947200,"end":1752523199,"理智消耗":15,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"key":21},{"id":"FM-6","id_key":"act19mini_06","name":"求速则贪","drop":{"突袭首次掉落":[],"常规掉落":["酮凝集"],"首次掉落":["“棠梨儿”","至纯源石"],"特殊掉落":["“棠梨儿”"],"额外物资":["代糖","异铁碎片","双酮","基础作战记录","糖","异铁","酮凝集","初级作战记录"]},"start":1751947200,"end":1752523199,"理智消耗":15,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"key":22},{"id":"FM-6 突袭","id_key":"act19mini_06#f#","name":"求速则贪","drop":{"突袭首次掉落":["“棠梨儿”"],"常规掉落":[],"首次掉落":["至纯源石"],"特殊掉落":[],"额外物资":[]},"start":1751947200,"end":1752523199,"理智消耗":15,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"key":23},{"id":"FM-7","id_key":"act19mini_07","name":"求退则惘","drop":{"突袭首次掉落":[],"常规掉落":["RMA70-12"],"首次掉落":["“棠梨儿”","至纯源石"],"特殊掉落":["“棠梨儿”"],"额外物资":["酯原料","双酮","聚酸酯","酮凝集","聚酸酯组","酮凝集组","研磨石","晶体元件","RMA70-12","化合切削液","半自然溶剂","环烃聚质"]},"start":1751947200,"end":1752523199,"理智消耗":21,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"key":24},{"id":"FM-7 突袭","id_key":"act19mini_07#f#","name":"求退则惘","drop":{"突袭首次掉落":["“棠梨儿”"],"常规掉落":[],"首次掉落":["至纯源石"],"特殊掉落":[],"额外物资":[]},"start":1751947200,"end":1752523199,"理智消耗":21,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"key":25},{"id":"FM-8","id_key":"act19mini_08","name":"求进则愎","drop":{"突袭首次掉落":[],"常规掉落":["转质盐组"],"首次掉落":["“棠梨儿”","至纯源石"],"特殊掉落":["“棠梨儿”"],"额外物资":["源岩","破损装置","固源岩","装置","固源岩组","全新装置","扭转醇","凝胶","褐素纤维","赤金"]},"start":1751947200,"end":1752523199,"理智消耗":21,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"key":26},{"id":"FM-8 突袭","id_key":"act19mini_08#f#","name":"求进则愎","drop":{"突袭首次掉落":["furni_terracommericials_SuisGarden_01","“棠梨儿”"],"常规掉落":[],"首次掉落":["至纯源石"],"特殊掉落":[],"额外物资":[]},"start":1751947200,"end":1752523199,"理智消耗":21,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"key":27},{"id":"FM-S-1","id_key":"act19mini_s01","name":"有求则苦","drop":{"突袭首次掉落":[],"常规掉落":[],"首次掉落":["至纯源石"],"特殊掉落":[],"额外物资":[]},"start":1751947200,"end":1752523199,"理智消耗":0,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"key":28},{"id":"FM-S-2","id_key":"act19mini_s02","name":"莫向外求","drop":{"突袭首次掉落":[],"常规掉落":[],"首次掉落":["至纯源石"],"特殊掉落":[],"额外物资":[]},"start":1751947200,"end":1752523199,"理智消耗":0,"周一":1,"周二":1,"周三":1,"周四":1,"周五":1,"周六":1,"周日":1,"key":29}]'); const pagination = false; const _sfc_main = { __name: "Material_all_in_one", diff --git a/ui/dist/assets/Plan.css b/ui/dist/assets/Plan.css index eeaf2bee..c5d46417 100644 --- a/ui/dist/assets/Plan.css +++ b/ui/dist/assets/Plan.css @@ -1,56 +1,56 @@ -.select-label[data-v-ef0a8ed8] { +.select-label[data-v-5c30c73a] { width: 44px; } -.type-select[data-v-ef0a8ed8] { +.type-select[data-v-5c30c73a] { width: 100px; margin-right: 8px; } -.product-select[data-v-ef0a8ed8] { +.product-select[data-v-5c30c73a] { width: 180px; margin-right: 8px; } -.operator-select[data-v-ef0a8ed8] { +.operator-select[data-v-5c30c73a] { width: 220px; } -.replacement-select[data-v-ef0a8ed8] { +.replacement-select[data-v-5c30c73a] { min-width: 400px; } -.plan-container[data-v-ef0a8ed8] { +.plan-container[data-v-5c30c73a] { width: 980px; min-width: 980px; display: flex; flex-direction: column; gap: 12px; } -.group[data-v-ef0a8ed8] { +.group[data-v-5c30c73a] { width: 160px; } -.facility-2[data-v-ef0a8ed8] { +.facility-2[data-v-5c30c73a] { width: 124px; height: 76px; margin: 2px 3px; } -.facility-3[data-v-ef0a8ed8] { +.facility-3[data-v-5c30c73a] { width: 175px; height: 76px; margin: 2px 3px; } -.facility-5[data-v-ef0a8ed8] { +.facility-5[data-v-5c30c73a] { width: 277px; height: 76px; margin: 2px 3px; } -.avatars[data-v-ef0a8ed8] { +.avatars[data-v-5c30c73a] { display: flex; gap: 6px; z-index: 5; } -.avatars img[data-v-ef0a8ed8] { +.avatars img[data-v-5c30c73a] { box-sizing: content-box; border-radius: 2px; background: lightgray; } -.facility-name[data-v-ef0a8ed8] { +.facility-name[data-v-5c30c73a] { margin-bottom: 4px; text-align: center; line-height: 1; @@ -58,83 +58,83 @@ justify-content: space-around; z-index: 5; } -.outer[data-v-ef0a8ed8] { +.outer[data-v-5c30c73a] { display: flex; margin: 0 auto; } -.left_box[data-v-ef0a8ed8] { +.left_box[data-v-5c30c73a] { display: flex; flex-direction: column; gap: 4px; padding-top: 82px; padding-right: 2px; } -.left_box .left_contain[data-v-ef0a8ed8] { +.left_box .left_contain[data-v-5c30c73a] { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 4px; } -.left_box .left_contain > div[data-v-ef0a8ed8] { +.left_box .left_contain > div[data-v-5c30c73a] { box-sizing: border-box; width: 175px; height: 76px; cursor: pointer; } -.left_box .left_contain .info[data-v-ef0a8ed8] { +.left_box .left_contain .info[data-v-5c30c73a] { background-color: rgba(32, 128, 240, 0.16); border-radius: 3px; border: 1px solid transparent; transition: all 0.3s; position: relative; } -.left_box .left_contain .info[data-v-ef0a8ed8]:hover { +.left_box .left_contain .info[data-v-5c30c73a]:hover { background-color: rgba(32, 128, 240, 0.22); } -.left_box .left_contain .info.true[data-v-ef0a8ed8] { +.left_box .left_contain .info.true[data-v-5c30c73a] { background-color: var(--n-color); border: 1px solid rgb(32, 128, 240); } -.left_box .left_contain .info .facility-name[data-v-ef0a8ed8] { +.left_box .left_contain .info .facility-name[data-v-5c30c73a] { color: #2080f0; } -.left_box .left_contain .warning[data-v-ef0a8ed8] { +.left_box .left_contain .warning[data-v-5c30c73a] { background-color: rgba(240, 160, 32, 0.16); border-radius: 3px; border: 1px solid transparent; transition: all 0.3s; position: relative; } -.left_box .left_contain .warning[data-v-ef0a8ed8]:hover { +.left_box .left_contain .warning[data-v-5c30c73a]:hover { background-color: rgba(240, 160, 32, 0.22); } -.left_box .left_contain .warning.true[data-v-ef0a8ed8] { +.left_box .left_contain .warning.true[data-v-5c30c73a] { background-color: var(--n-color); border: 1px solid rgb(240, 160, 32); } -.left_box .left_contain .warning .facility-name[data-v-ef0a8ed8] { +.left_box .left_contain .warning .facility-name[data-v-5c30c73a] { color: #f0a020; } -.left_box .left_contain .primary[data-v-ef0a8ed8] { +.left_box .left_contain .primary[data-v-5c30c73a] { background-color: rgba(24, 160, 88, 0.16); border-radius: 3px; border: 1px solid transparent; transition: all 0.3s; } -.left_box .left_contain .primary[data-v-ef0a8ed8]:hover { +.left_box .left_contain .primary[data-v-5c30c73a]:hover { background-color: rgba(24, 160, 88, 0.22); } -.left_box .left_contain .primary.true[data-v-ef0a8ed8] { +.left_box .left_contain .primary.true[data-v-5c30c73a] { background-color: var(--n-color); border: 1px solid rgb(24, 160, 88); } -.left_box .left_contain .primary .facility-name[data-v-ef0a8ed8] { +.left_box .left_contain .primary .facility-name[data-v-5c30c73a] { color: #18a058; } -.mid_box[data-v-ef0a8ed8] { +.mid_box[data-v-5c30c73a] { display: flex; flex-direction: column; } -.waiting[data-v-ef0a8ed8] { +.waiting[data-v-5c30c73a] { width: 100%; height: 100%; display: flex; @@ -146,15 +146,15 @@ cursor: pointer; border-radius: 3px; } -.waiting[data-v-ef0a8ed8]:hover { +.waiting[data-v-5c30c73a]:hover { opacity: 1; border: 1px dashed rgb(54, 173, 106); color: rgb(54, 173, 106); } -.waiting div[data-v-ef0a8ed8] { +.waiting div[data-v-5c30c73a] { text-align: center; } -.draggable[data-v-ef0a8ed8] { +.draggable[data-v-5c30c73a] { width: 100%; height: 100%; display: flex; @@ -162,7 +162,7 @@ align-items: center; justify-content: center; } -.product-bg[data-v-ef0a8ed8] { +.product-bg[data-v-5c30c73a] { content: ""; position: absolute; top: 0; @@ -176,10 +176,10 @@ z-index: 3; pointer-events: none; } -.avatar-wrapper[data-v-ef0a8ed8] { +.avatar-wrapper[data-v-5c30c73a] { position: relative; } -.workaholic[data-v-ef0a8ed8] { +.workaholic[data-v-5c30c73a] { position: absolute; content: ""; top: 0; @@ -194,18 +194,18 @@ display: none; } -.dropdown[data-v-c4c4a151] { - padding-left: var(--179f97e8); - padding-right: var(--179f97e8); +.dropdown[data-v-01fc4d7e] { + padding-left: var(--5dbb34be); + padding-right: var(--5dbb34be); } -.n-table[data-v-ab1299ac] { +.n-table[data-v-1ad93d71] { min-width: 100%; } -.n-table th[data-v-ab1299ac] { +.n-table th[data-v-1ad93d71] { width: 124px; box-sizing: border-box; } -.label[data-v-ab1299ac] { +.label[data-v-1ad93d71] { display: flex; flex-direction: row; align-items: center; @@ -223,26 +223,26 @@ .dropdown-select { flex: 1; } -.w-980[data-v-d06834f4] { +.w-980[data-v-a3e17cad] { width: 100%; max-width: 980px; } -.mx-auto[data-v-d06834f4] { +.mx-auto[data-v-a3e17cad] { margin: 0 auto; } -.mt-12[data-v-d06834f4] { +.mt-12[data-v-a3e17cad] { margin-top: 12px; } -.mb-12[data-v-d06834f4] { +.mb-12[data-v-a3e17cad] { margin-bottom: 12px; } -.px-12[data-v-d06834f4] { +.px-12[data-v-a3e17cad] { padding: 0 12px; } -.mw-980[data-v-d06834f4] { +.mw-980[data-v-a3e17cad] { min-width: 980px; } -.plan-bar[data-v-d06834f4] { +.plan-bar[data-v-a3e17cad] { display: flex; flex-direction: row; flex-grow: 0; diff --git a/ui/dist/assets/Plan.js b/ui/dist/assets/Plan.js index 65081080..4050b2a6 100644 --- a/ui/dist/assets/Plan.js +++ b/ui/dist/assets/Plan.js @@ -1430,7 +1430,7 @@ const _sfc_main$5 = { }; } }; -const __unplugin_components_9 = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-ef0a8ed8"]]); +const __unplugin_components_9 = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-5c30c73a"]]); var MdArrowDropup = {}; var hasRequiredMdArrowDropup; function requireMdArrowDropup() { @@ -1527,7 +1527,7 @@ const _sfc_main$4 = { }, setup(__props) { useCssVars((_ctx) => ({ - "179f97e8": unref(btn_pad) + "5dbb34be": unref(btn_pad) })); const mobile = inject("mobile"); const btn_pad = computed(() => { @@ -1577,7 +1577,7 @@ const _sfc_main$4 = { }; } }; -const __unplugin_components_8 = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-c4c4a151"]]); +const __unplugin_components_8 = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-01fc4d7e"]]); const _sfc_main$3 = { __name: "TriggerString", props: ["data"], @@ -1834,7 +1834,7 @@ const _sfc_main$2 = { }; } }; -const __unplugin_components_2 = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-ab1299ac"]]); +const __unplugin_components_2 = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-1ad93d71"]]); const _hoisted_1$1 = { class: "dropdown-container" }; const _hoisted_2 = { class: "dropdown-label" }; const _sfc_main$1 = { @@ -5474,7 +5474,7 @@ const _sfc_main = { }; } }; -const Plan = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-d06834f4"]]); +const Plan = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a3e17cad"]]); export { Plan as default }; diff --git a/ui/dist/assets/RecordLine.css b/ui/dist/assets/RecordLine.css index 3da852a2..13220cd7 100644 --- a/ui/dist/assets/RecordLine.css +++ b/ui/dist/assets/RecordLine.css @@ -1,8 +1,8 @@ -[data-v-b9b10beb] .n-modal-container { +[data-v-b9d6a27e] .n-modal-container { top: 0 !important; left: 0 !important; } -[data-v-b9b10beb] .n-card__content { +[data-v-b9d6a27e] .n-card__content { height: calc(100% - 60px); /* 60px为header高度 */ } diff --git a/ui/dist/assets/RecordLine.js b/ui/dist/assets/RecordLine.js index ab1b116e..77ec72c7 100644 --- a/ui/dist/assets/RecordLine.js +++ b/ui/dist/assets/RecordLine.js @@ -169,7 +169,7 @@ const _sfc_main = { }; } }; -const RecordLine = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b9b10beb"]]); +const RecordLine = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b9d6a27e"]]); export { RecordLine as default }; diff --git a/ui/dist/assets/SlickOperatorSelect.css b/ui/dist/assets/SlickOperatorSelect.css index c5426ccf..57dcb586 100644 --- a/ui/dist/assets/SlickOperatorSelect.css +++ b/ui/dist/assets/SlickOperatorSelect.css @@ -1,4 +1,4 @@ -.width100[data-v-67be031c] { +.width100[data-v-2ee926d4] { width: 100%; } diff --git a/ui/dist/assets/SlickOperatorSelect.js b/ui/dist/assets/SlickOperatorSelect.js index f9941e14..f9d61962 100644 --- a/ui/dist/assets/SlickOperatorSelect.js +++ b/ui/dist/assets/SlickOperatorSelect.js @@ -4754,7 +4754,7 @@ const _sfc_main = { }; } }; -const __unplugin_components_16 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-67be031c"]]); +const __unplugin_components_16 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-2ee926d4"]]); export { __unplugin_components_14, __unplugin_components_16, diff --git a/ui/dist/assets/TaskDialog.css b/ui/dist/assets/TaskDialog.css index d0656f52..68e18c02 100644 --- a/ui/dist/assets/TaskDialog.css +++ b/ui/dist/assets/TaskDialog.css @@ -1,35 +1,35 @@ -.button_row[data-v-c3862e91] { +.button_row[data-v-9e1304bf] { margin-top: 8px; } -.task_row[data-v-c3862e91] { +.task_row[data-v-9e1304bf] { display: flex; align-items: center; gap: 8px; width: 100%; } -.task_row .n-input[data-v-c3862e91] { +.task_row .n-input[data-v-9e1304bf] { width: 140px; } -.outer[data-v-c3862e91] { +.outer[data-v-9e1304bf] { display: flex; flex-direction: row; align-items: center; gap: 18px; } -.inner[data-v-c3862e91] { +.inner[data-v-9e1304bf] { display: flex; flex-direction: column; gap: 8px; } -.task-col[data-v-c3862e91] { +.task-col[data-v-9e1304bf] { display: flex; flex-direction: row; gap: 8px; align-items: center; } -.n-dynamic-tags[data-v-c3862e91] { +.n-dynamic-tags[data-v-9e1304bf] { align-items: center; } -.ml[data-v-c3862e91] { +.ml[data-v-9e1304bf] { margin-left: 16px; } \ No newline at end of file diff --git a/ui/dist/assets/TaskDialog.js b/ui/dist/assets/TaskDialog.js index 1163aba9..3150ffb8 100644 --- a/ui/dist/assets/TaskDialog.js +++ b/ui/dist/assets/TaskDialog.js @@ -10340,7 +10340,7 @@ const _sfc_main = { }; } }; -const __unplugin_components_1 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c3862e91"]]); +const __unplugin_components_1 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-9e1304bf"]]); export { __unplugin_components_1, __unplugin_components_4, diff --git a/ui/dist/assets/depot.css b/ui/dist/assets/depot.css index 61c23624..08337fbf 100644 --- a/ui/dist/assets/depot.css +++ b/ui/dist/assets/depot.css @@ -1,46 +1,46 @@ -.info-container[data-v-6f42e5d7] { +.info-container[data-v-f632a889] { margin-top: 2rem; gap: 12px; } -.scan-time[data-v-6f42e5d7] { +.scan-time[data-v-f632a889] { font-size: 0.95rem; color: var(--n-text-color); } -.notes[data-v-6f42e5d7] { +.notes[data-v-f632a889] { font-size: 0.9rem; line-height: 1.5; } -.action-group[data-v-6f42e5d7] { +.action-group[data-v-f632a889] { padding: 8px 0; } -.action-btn[data-v-6f42e5d7] { +.action-btn[data-v-f632a889] { transition: transform 0.2s ease; } -.action-btn[data-v-6f42e5d7]:hover { +.action-btn[data-v-f632a889]:hover { transform: translateY(-1px); } -.category-title[data-v-6f42e5d7] { +.category-title[data-v-f632a889] { margin: 1rem 0; color: var(--n-title-text-color); } -.material-grid[data-v-6f42e5d7] { +.material-grid[data-v-f632a889] { padding: 0 8px; } -.material-card[data-v-6f42e5d7] { +.material-card[data-v-f632a889] { padding: 4px; background: var(--n-color-modal); border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); transition: box-shadow 0.2s ease; } -.material-card[data-v-6f42e5d7]:hover { +.material-card[data-v-f632a889]:hover { box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); } -.material-name[data-v-6f42e5d7] { +.material-name[data-v-f632a889] { font-weight: 500; font-size: 1rem; } -.material-count[data-v-6f42e5d7] { +.material-count[data-v-f632a889] { font-size: 0.9rem; } diff --git a/ui/dist/assets/depot.js b/ui/dist/assets/depot.js index 51b1052f..82276a27 100644 --- a/ui/dist/assets/depot.js +++ b/ui/dist/assets/depot.js @@ -386,7 +386,7 @@ const _sfc_main = { }; } }; -const depot = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-6f42e5d7"]]); +const depot = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f632a889"]]); export { depot as default }; diff --git a/ui/dist/assets/index.css b/ui/dist/assets/index.css index ec4d1b09..7e72021c 100644 --- a/ui/dist/assets/index.css +++ b/ui/dist/assets/index.css @@ -7,10 +7,10 @@ pointer-events: none !important; } -.tabs[data-v-c1c8fa28] { +.tabs[data-v-92d60a24] { height: 100%; } -.layout-container[data-v-c1c8fa28] { +.layout-container[data-v-92d60a24] { height: 100%; } html, diff --git a/ui/dist/assets/index.js b/ui/dist/assets/index.js index 14df20c4..6b026fb0 100644 --- a/ui/dist/assets/index.js +++ b/ui/dist/assets/index.js @@ -28142,7 +28142,7 @@ const _sfc_main = { }; } }; -const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c1c8fa28"]]); +const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-92d60a24"]]); /*! * vue-router v4.5.0 * (c) 2024 Eduardo San Martin Morote diff --git a/ui/dist/assets/paomadeng.css b/ui/dist/assets/paomadeng.css index 2ff3a6c4..f8f7da40 100644 --- a/ui/dist/assets/paomadeng.css +++ b/ui/dist/assets/paomadeng.css @@ -1,17 +1,17 @@ /* Alert 样式 */ -.custom-alert[data-v-01ea1f7d] { +.custom-alert[data-v-a64db44c] { position: fixed; z-index: 5000; margin-top: 10px; - left: var(--abe189c8); - right: var(--abe189c8); + left: var(--1b8e3d43); + right: var(--1b8e3d43); background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 255, 0.5), rgba(0, 0, 0, 0)); } /* Marquee 样式 */ -.custom-marquee[data-v-01ea1f7d] { +.custom-marquee[data-v-a64db44c] { pointer-events: none; } diff --git a/ui/dist/assets/paomadeng.js b/ui/dist/assets/paomadeng.js index f7b35918..5c15c97c 100644 --- a/ui/dist/assets/paomadeng.js +++ b/ui/dist/assets/paomadeng.js @@ -294,7 +294,7 @@ const _sfc_main = { __name: "paomadeng", setup(__props) { useCssVars((_ctx) => ({ - "abe189c8": margin_x.value + "1b8e3d43": margin_x.value })); const mower_store = useMowerStore(); const { speed_msg } = storeToRefs(mower_store); @@ -343,7 +343,7 @@ const _sfc_main = { }; } }; -const paomadeng = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-01ea1f7d"]]); +const paomadeng = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a64db44c"]]); export { paomadeng as default }; diff --git a/ui/dist/assets/report.css b/ui/dist/assets/report.css index 55301a42..82cefb7a 100644 --- a/ui/dist/assets/report.css +++ b/ui/dist/assets/report.css @@ -1,8 +1,8 @@ -.chart[data-v-291ce212] { +.chart[data-v-d6be4beb] { height: 400px; } -.report-card_1[data-v-291ce212] { +.report-card_1[data-v-d6be4beb] { display: gird; flex-direction: column; align-items: center; diff --git a/ui/dist/assets/report.js b/ui/dist/assets/report.js index 3fdc949e..66080e51 100644 --- a/ui/dist/assets/report.js +++ b/ui/dist/assets/report.js @@ -565,7 +565,7 @@ const _sfc_main = { }; } }; -const report = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-291ce212"]]); +const report = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-d6be4beb"]]); export { report as default }; diff --git a/ui/dist/index.html b/ui/dist/index.html index e8e30119..75643079 100644 --- a/ui/dist/index.html +++ b/ui/dist/index.html @@ -1,14 +1,14 @@ - - - - - - - mower-ng webui + + + + + + + mower-ng webui - - -
- - + + +
+ + diff --git a/ui/public/avatar/司霆惊蛰.webp b/ui/public/avatar/司霆惊蛰.webp new file mode 100644 index 00000000..ce76579f --- /dev/null +++ b/ui/public/avatar/司霆惊蛰.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20b13896513d6415cbb7e85e91e66a697d62369dbdd0da00657308abff437a0e +size 15910 diff --git a/ui/public/avatar/录武官.webp b/ui/public/avatar/录武官.webp new file mode 100644 index 00000000..62920a26 --- /dev/null +++ b/ui/public/avatar/录武官.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80b17307a0dd62733683a4ece84e50e8aad6b3b59cb1705b7b4381b083e3ef5d +size 9490 diff --git a/ui/public/depot/“棠梨儿”.webp b/ui/public/depot/“棠梨儿”.webp new file mode 100644 index 00000000..7473e31f --- /dev/null +++ b/ui/public/depot/“棠梨儿”.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0a223a9c706db8852ad628364ff9d1f306f5712187ad521b2f150a6e5eece82 +size 12994 diff --git a/ui/public/depot/司霆惊蛰的信物.webp b/ui/public/depot/司霆惊蛰的信物.webp new file mode 100644 index 00000000..319fbd3a --- /dev/null +++ b/ui/public/depot/司霆惊蛰的信物.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90110ebbd3de008fc3798b22354f484720f963bd8d5660a1a7213bc79fc335c6 +size 13594 diff --git a/ui/public/depot/录武官的信物.webp b/ui/public/depot/录武官的信物.webp new file mode 100644 index 00000000..34de86f7 --- /dev/null +++ b/ui/public/depot/录武官的信物.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afe6097b5f8c96019f9279b1adc53d01b488b6a40fb69ea45b725fb6c4493874 +size 14100 diff --git a/ui/src/pages/basement_skill/buffer.json b/ui/src/pages/basement_skill/buffer.json index 2069c6a9..86c18475 100644 --- a/ui/src/pages/basement_skill/buffer.json +++ b/ui/src/pages/basement_skill/buffer.json @@ -628,7 +628,7 @@ "cc_c_skill": { "termId": "cc.c.skill", "termName": "部分技能", - "description": "包含以下技能\n左膀右臂、S.W.E.E.P.、零食网络、清理协议、替身、必要责任、护卫、小小的领袖、独善其身、笑靥如春、金盏花诗会、捍卫之道、博识生手", + "description": "包含以下技能\r\n左膀右臂、S.W.E.E.P.、零食网络、清理协议、替身、必要责任、护卫、小小的领袖、独善其身、笑靥如春、金盏花诗会、捍卫之道、博识生手、点滴关照", "buffer": [] }, "cc_t_strong2": { diff --git a/ui/src/pages/stage_data/event_data.json b/ui/src/pages/stage_data/event_data.json index 0849d490..87465260 100644 --- a/ui/src/pages/stage_data/event_data.json +++ b/ui/src/pages/stage_data/event_data.json @@ -180,19 +180,31 @@ "key": 11 }, { - "id": "TN-1", - "id_key": "act5bossrush_01", - "name": "严寒骤血", + "id": "FM-1", + "id_key": "act19mini_01", + "name": "求同则塞", "drop": { "突袭首次掉落": [], - "常规掉落": [], - "首次掉落": [], - "特殊掉落": [], + "常规掉落": [ + "酯原料", + "破损装置", + "异铁碎片", + "双酮", + "代糖", + "源岩" + ], + "首次掉落": [ + "“棠梨儿”", + "至纯源石" + ], + "特殊掉落": [ + "“棠梨儿”" + ], "额外物资": [] }, - "start": 1750752000, - "end": 1751918399, - "理智消耗": 0, + "start": 1751947200, + "end": 1752523199, + "理智消耗": 9, "周一": 1, "周二": 1, "周三": 1, @@ -203,19 +215,23 @@ "key": 12 }, { - "id": "TN-2", - "id_key": "act5bossrush_02", - "name": "无声破裂", + "id": "FM-1 突袭", + "id_key": "act19mini_01#f#", + "name": "求同则塞", "drop": { - "突袭首次掉落": [], + "突袭首次掉落": [ + "“棠梨儿”" + ], "常规掉落": [], - "首次掉落": [], + "首次掉落": [ + "至纯源石" + ], "特殊掉落": [], "额外物资": [] }, - "start": 1750752000, - "end": 1751918399, - "理智消耗": 0, + "start": 1751947200, + "end": 1752523199, + "理智消耗": 9, "周一": 1, "周二": 1, "周三": 1, @@ -226,19 +242,31 @@ "key": 13 }, { - "id": "TN-3", - "id_key": "act5bossrush_03", - "name": "幕间重影", + "id": "FM-2", + "id_key": "act19mini_02", + "name": "求异则悖", "drop": { "突袭首次掉落": [], - "常规掉落": [], - "首次掉落": [], - "特殊掉落": [], + "常规掉落": [ + "酯原料", + "破损装置", + "异铁碎片", + "双酮", + "代糖", + "源岩" + ], + "首次掉落": [ + "“棠梨儿”", + "至纯源石" + ], + "特殊掉落": [ + "“棠梨儿”" + ], "额外物资": [] }, - "start": 1750752000, - "end": 1751918399, - "理智消耗": 0, + "start": 1751947200, + "end": 1752523199, + "理智消耗": 9, "周一": 1, "周二": 1, "周三": 1, @@ -249,19 +277,23 @@ "key": 14 }, { - "id": "TN-4", - "id_key": "act5bossrush_04", - "name": "沸海遮日", + "id": "FM-2 突袭", + "id_key": "act19mini_02#f#", + "name": "求异则悖", "drop": { - "突袭首次掉落": [], + "突袭首次掉落": [ + "“棠梨儿”" + ], "常规掉落": [], - "首次掉落": [], + "首次掉落": [ + "至纯源石" + ], "特殊掉落": [], "额外物资": [] }, - "start": 1750752000, - "end": 1751918399, - "理智消耗": 0, + "start": 1751947200, + "end": 1752523199, + "理智消耗": 9, "周一": 1, "周二": 1, "周三": 1, @@ -272,19 +304,31 @@ "key": 15 }, { - "id": "TN-1", - "id_key": "act5bossrush_ex01", - "name": "严寒骤血", + "id": "FM-3", + "id_key": "act19mini_03", + "name": "求遐则失", "drop": { "突袭首次掉落": [], - "常规掉落": [], - "首次掉落": [], - "特殊掉落": [], + "常规掉落": [ + "酯原料", + "破损装置", + "异铁碎片", + "双酮", + "代糖", + "源岩" + ], + "首次掉落": [ + "“棠梨儿”", + "至纯源石" + ], + "特殊掉落": [ + "“棠梨儿”" + ], "额外物资": [] }, - "start": 1750752000, - "end": 1751918399, - "理智消耗": 0, + "start": 1751947200, + "end": 1752523199, + "理智消耗": 12, "周一": 1, "周二": 1, "周三": 1, @@ -295,19 +339,23 @@ "key": 16 }, { - "id": "TN-2", - "id_key": "act5bossrush_ex02", - "name": "无声破裂", + "id": "FM-3 突袭", + "id_key": "act19mini_03#f#", + "name": "求遐则失", "drop": { - "突袭首次掉落": [], + "突袭首次掉落": [ + "“棠梨儿”" + ], "常规掉落": [], - "首次掉落": [], + "首次掉落": [ + "至纯源石" + ], "特殊掉落": [], "额外物资": [] }, - "start": 1750752000, - "end": 1751918399, - "理智消耗": 0, + "start": 1751947200, + "end": 1752523199, + "理智消耗": 12, "周一": 1, "周二": 1, "周三": 1, @@ -318,19 +366,31 @@ "key": 17 }, { - "id": "TN-3", - "id_key": "act5bossrush_ex03", - "name": "幕间重影", + "id": "FM-4", + "id_key": "act19mini_04", + "name": "求迩则乱", "drop": { "突袭首次掉落": [], - "常规掉落": [], - "首次掉落": [], - "特殊掉落": [], + "常规掉落": [ + "酯原料", + "破损装置", + "异铁碎片", + "双酮", + "代糖", + "源岩" + ], + "首次掉落": [ + "“棠梨儿”", + "至纯源石" + ], + "特殊掉落": [ + "“棠梨儿”" + ], "额外物资": [] }, - "start": 1750752000, - "end": 1751918399, - "理智消耗": 0, + "start": 1751947200, + "end": 1752523199, + "理智消耗": 12, "周一": 1, "周二": 1, "周三": 1, @@ -341,19 +401,23 @@ "key": 18 }, { - "id": "TN-4", - "id_key": "act5bossrush_ex04", - "name": "沸海遮日", + "id": "FM-4 突袭", + "id_key": "act19mini_04#f#", + "name": "求迩则乱", "drop": { - "突袭首次掉落": [], + "突袭首次掉落": [ + "“棠梨儿”" + ], "常规掉落": [], - "首次掉落": [], + "首次掉落": [ + "至纯源石" + ], "特殊掉落": [], "额外物资": [] }, - "start": 1750752000, - "end": 1751918399, - "理智消耗": 0, + "start": 1751947200, + "end": 1752523199, + "理智消耗": 12, "周一": 1, "周二": 1, "周三": 1, @@ -364,19 +428,34 @@ "key": 19 }, { - "id": "TN-4", - "id_key": "act5bossrush_fin04", - "name": "沸海遮日", + "id": "FM-5", + "id_key": "act19mini_05", + "name": "求缓则迟", "drop": { "突袭首次掉落": [], - "常规掉落": [], - "首次掉落": [], - "特殊掉落": [], - "额外物资": [] + "常规掉落": [ + "装置" + ], + "首次掉落": [ + "“棠梨儿”", + "至纯源石" + ], + "特殊掉落": [ + "“棠梨儿”" + ], + "额外物资": [ + "源岩", + "酯原料", + "破损装置", + "赤金", + "固源岩", + "聚酸酯", + "装置" + ] }, - "start": 1750752000, - "end": 1751918399, - "理智消耗": 0, + "start": 1751947200, + "end": 1752523199, + "理智消耗": 15, "周一": 1, "周二": 1, "周三": 1, @@ -387,19 +466,23 @@ "key": 20 }, { - "id": "TN-1", - "id_key": "act5bossrush_tm01", - "name": "严寒骤血", + "id": "FM-5 突袭", + "id_key": "act19mini_05#f#", + "name": "求缓则迟", "drop": { - "突袭首次掉落": [], + "突袭首次掉落": [ + "“棠梨儿”" + ], "常规掉落": [], - "首次掉落": [], + "首次掉落": [ + "至纯源石" + ], "特殊掉落": [], "额外物资": [] }, - "start": 1750752000, - "end": 1751918399, - "理智消耗": 0, + "start": 1751947200, + "end": 1752523199, + "理智消耗": 15, "周一": 1, "周二": 1, "周三": 1, @@ -410,19 +493,35 @@ "key": 21 }, { - "id": "TN-2", - "id_key": "act5bossrush_tm02", - "name": "无声破裂", + "id": "FM-6", + "id_key": "act19mini_06", + "name": "求速则贪", "drop": { "突袭首次掉落": [], - "常规掉落": [], - "首次掉落": [], - "特殊掉落": [], - "额外物资": [] + "常规掉落": [ + "酮凝集" + ], + "首次掉落": [ + "“棠梨儿”", + "至纯源石" + ], + "特殊掉落": [ + "“棠梨儿”" + ], + "额外物资": [ + "代糖", + "异铁碎片", + "双酮", + "基础作战记录", + "糖", + "异铁", + "酮凝集", + "初级作战记录" + ] }, - "start": 1750752000, - "end": 1751918399, - "理智消耗": 0, + "start": 1751947200, + "end": 1752523199, + "理智消耗": 15, "周一": 1, "周二": 1, "周三": 1, @@ -433,19 +532,23 @@ "key": 22 }, { - "id": "TN-3", - "id_key": "act5bossrush_tm03", - "name": "幕间重影", + "id": "FM-6 突袭", + "id_key": "act19mini_06#f#", + "name": "求速则贪", "drop": { - "突袭首次掉落": [], + "突袭首次掉落": [ + "“棠梨儿”" + ], "常规掉落": [], - "首次掉落": [], + "首次掉落": [ + "至纯源石" + ], "特殊掉落": [], "额外物资": [] }, - "start": 1750752000, - "end": 1751918399, - "理智消耗": 0, + "start": 1751947200, + "end": 1752523199, + "理智消耗": 15, "周一": 1, "周二": 1, "周三": 1, @@ -456,19 +559,39 @@ "key": 23 }, { - "id": "TN-4", - "id_key": "act5bossrush_tm04", - "name": "沸海遮日", + "id": "FM-7", + "id_key": "act19mini_07", + "name": "求退则惘", "drop": { "突袭首次掉落": [], - "常规掉落": [], - "首次掉落": [], - "特殊掉落": [], - "额外物资": [] + "常规掉落": [ + "RMA70-12" + ], + "首次掉落": [ + "“棠梨儿”", + "至纯源石" + ], + "特殊掉落": [ + "“棠梨儿”" + ], + "额外物资": [ + "酯原料", + "双酮", + "聚酸酯", + "酮凝集", + "聚酸酯组", + "酮凝集组", + "研磨石", + "晶体元件", + "RMA70-12", + "化合切削液", + "半自然溶剂", + "环烃聚质" + ] }, - "start": 1750752000, - "end": 1751918399, - "理智消耗": 0, + "start": 1751947200, + "end": 1752523199, + "理智消耗": 21, "周一": 1, "周二": 1, "周三": 1, @@ -477,5 +600,151 @@ "周六": 1, "周日": 1, "key": 24 + }, + { + "id": "FM-7 突袭", + "id_key": "act19mini_07#f#", + "name": "求退则惘", + "drop": { + "突袭首次掉落": [ + "“棠梨儿”" + ], + "常规掉落": [], + "首次掉落": [ + "至纯源石" + ], + "特殊掉落": [], + "额外物资": [] + }, + "start": 1751947200, + "end": 1752523199, + "理智消耗": 21, + "周一": 1, + "周二": 1, + "周三": 1, + "周四": 1, + "周五": 1, + "周六": 1, + "周日": 1, + "key": 25 + }, + { + "id": "FM-8", + "id_key": "act19mini_08", + "name": "求进则愎", + "drop": { + "突袭首次掉落": [], + "常规掉落": [ + "转质盐组" + ], + "首次掉落": [ + "“棠梨儿”", + "至纯源石" + ], + "特殊掉落": [ + "“棠梨儿”" + ], + "额外物资": [ + "源岩", + "破损装置", + "固源岩", + "装置", + "固源岩组", + "全新装置", + "扭转醇", + "凝胶", + "褐素纤维", + "赤金" + ] + }, + "start": 1751947200, + "end": 1752523199, + "理智消耗": 21, + "周一": 1, + "周二": 1, + "周三": 1, + "周四": 1, + "周五": 1, + "周六": 1, + "周日": 1, + "key": 26 + }, + { + "id": "FM-8 突袭", + "id_key": "act19mini_08#f#", + "name": "求进则愎", + "drop": { + "突袭首次掉落": [ + "furni_terracommericials_SuisGarden_01", + "“棠梨儿”" + ], + "常规掉落": [], + "首次掉落": [ + "至纯源石" + ], + "特殊掉落": [], + "额外物资": [] + }, + "start": 1751947200, + "end": 1752523199, + "理智消耗": 21, + "周一": 1, + "周二": 1, + "周三": 1, + "周四": 1, + "周五": 1, + "周六": 1, + "周日": 1, + "key": 27 + }, + { + "id": "FM-S-1", + "id_key": "act19mini_s01", + "name": "有求则苦", + "drop": { + "突袭首次掉落": [], + "常规掉落": [], + "首次掉落": [ + "至纯源石" + ], + "特殊掉落": [], + "额外物资": [] + }, + "start": 1751947200, + "end": 1752523199, + "理智消耗": 0, + "周一": 1, + "周二": 1, + "周三": 1, + "周四": 1, + "周五": 1, + "周六": 1, + "周日": 1, + "key": 28 + }, + { + "id": "FM-S-2", + "id_key": "act19mini_s02", + "name": "莫向外求", + "drop": { + "突袭首次掉落": [], + "常规掉落": [], + "首次掉落": [ + "至纯源石" + ], + "特殊掉落": [], + "额外物资": [] + }, + "start": 1751947200, + "end": 1752523199, + "理智消耗": 0, + "周一": 1, + "周二": 1, + "周三": 1, + "周四": 1, + "周五": 1, + "周六": 1, + "周日": 1, + "key": 29 } ] \ No newline at end of file