Skip to content

feat: add operator roster cultivation planning - #316

Open
syxupu wants to merge 2 commits into
arkntools:masterfrom
syxupu:feat/operator-roster
Open

feat: add operator roster cultivation planning#316
syxupu wants to merge 2 commits into
arkntools:masterfrom
syxupu:feat/operator-roster

Conversation

@syxupu

@syxupu syxupu commented Aug 13, 2026

Copy link
Copy Markdown

功能说明

在精英材料计算页面增加“我的干员”工作流,让玩家可以导入 MAA 干员快照、批量浏览已拥有干员,并快速建立精二、技能 7、技能专精和模组培养目标。目标会自动补齐所需的精英阶段、等级及技能前置,并把材料、经验和龙门币缺口汇入现有刷图规划。

主要改动

  • 支持 MAA JSON/CSV 干员导入、格式校验、冲突 ID 排除和未知 ID 原始快照保留。
  • 使用 char_xxx ID 映射干员,不依赖名称匹配。
  • 基础状态优先使用 MAA;技能、专精和模组优先使用森空岛,其次使用手工补录。
  • 新增“我的干员”全屏弹层、搜索与稀有度/职业/精英阶段/已有目标筛选。
  • 新增精二、技能 7、S1/S2/S3 M3 快捷目标;已完成进度显示为完成并禁止重复选择。
  • 计算跨精英阶段等级、晋升材料、技能、专精、模组、经验和龙门币需求,并抵扣库存。
  • 复用等级计算纯函数,避免材料页和升级计算器出现两套算法。
  • 数据仅保存在本地,并跟随现有多账号切换、删除和备份恢复机制。
  • 打开“我的干员”前刷新过期的森空岛练度,避免已完成技能仍显示快捷升级目标。

数据与兼容策略

  • MAA 提供拥有状态、稀有度、精英阶段、等级和潜能。
  • 森空岛提供技能等级、专精和模组进度;缺失时可手工补录。
  • 重新导入 MAA 只刷新基础状态,保留培养目标和手工技能进度。
  • 旧数据缺少 roster 字段时按空数据处理;未拥有干员默认隐藏,但已有目标仍保留。

验证

  • npm test:21 项通过。
  • npm run lint:通过,同时检查 srctests/**/*.mjs
  • npm run build:生产构建通过。
  • 真实 MAA JSON/CSV 样例:两种格式均为 425 条、拥有 327 名,核心字段逐条一致。
  • 桌面端 1280×800:327 张干员卡片为四列,搜索、筛选、快捷目标和编辑返回正常。
  • 窄屏 390×844:单列卡片和筛选控件可用,弹层可滚动。
  • 快捷专精流程验证:填写当前技能/专精起点后自动返回干员列表,目标保留,头像保持 56×56。

限制

  • 首版仅支持 MAA JSON/CSV,不支持 Markdown 导入。
  • 信赖要求和模组任务仅提示,不计算材料。
  • 不进行 OCR、自动操作游戏或干员强度推荐。
  • 当前等级内已获得经验无法从 MAA/森空岛取得时,默认按 0 处理,可手工修正。

@netlify

netlify Bot commented Aug 13, 2026

Copy link
Copy Markdown

Deploy Preview for arknights-toolbox ready!

Name Link
🔨 Latest commit 2f24f19
🔍 Latest deploy log https://app.netlify.com/projects/arknights-toolbox/deploys/6a7d6f5d3a77c70008a5e368
😎 Deploy Preview https://deploy-preview-316--arknights-toolbox.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@Tsuk1ko

Tsuk1ko commented Aug 13, 2026

Copy link
Copy Markdown
Member

感谢你的 pr,这个功能看起来不错,但初步看来还存在一些需要调整/改进的地方

由于最近比较忙所以我可能晚些时候再来体验和 review,并提出完整的修改建议,请见谅

@syxupu

syxupu commented Aug 13, 2026

Copy link
Copy Markdown
Author

现在可以用森空岛的token自动提取仓库的养成材料,干员的养成情况
但这个PR只是预览版,codex给我自动提交了🤦‍♂️
我还没审核森空岛这个token泄露风险有多大,并且好像还有点小bug

@Tsuk1ko

Tsuk1ko commented Aug 13, 2026

Copy link
Copy Markdown
Member

森空岛token泄露风险指什么

森空岛导入仓库材料,显示养成情况(搜索列表、预设添加)是已经存在的功能

@Tsuk1ko

Tsuk1ko commented Aug 18, 2026

Copy link
Copy Markdown
Member

我体验了一下相关功能,以下是我的看法

从 MAA 导入的能力感觉不是很有必要

森空岛已经能拿到所有干员及完整的练度信息,完全可以直接使用森空岛数据

MAA 干员识别不含技能和模组练度,因此还是要靠森空岛获取,就感觉从 MAA 导入有点多此一举,况且目前甚至必须使用 MAA 导入,无法直接通过森空岛导入干员数据

这个功能唯一受益的场景是外服用户或者不愿意使用森空岛导入能力的用户,并且没有技能和模组练度数据也失去了该功能的意义

等级、龙门币、经验书相关计算

我不是很赞同加入等级、龙门币、经验书计算,这个模块在设计之初就没有考虑到这个,导致材料计算和升级计算是分开的模块

如果要将其纳入该模块,标准的做法是:

  1. 在材料输入中增加四种经验书和龙门币
  2. 筛选选项中补充经验书和龙门币的类别,允许需求计算和刷图计算根据筛选开关排除
  3. 刷图规划支持经验书和龙门币的刷取计算
  4. 添加预设时支持选择升级等级(你已支持)
  5. 代办中增加升级的待办事项,并支持扣除经验书和龙门币

这个改动很大,屎山太高了,因此我不想动

虽然现在有 AI,很明显该 pr 也用了,我不排斥 AI,我自己也用,但我无法 100% 信任 AI,AI 做出来的并不是我准确想要的,我还要付出额外的 review、测试、纠错成本

UI 相关

很明显目前很多 UI 都还有缺陷和问题,仍需改进

我的干员入口建议还是放在功能那栏而不是预设那栏

另外该项目是支持移动端且专门做了很多响应式设计和优化的,因此你可能还需要注意移动端体验

可以合并的标准

首先感谢你的 pr,我不会否定你的付出,你做的功能和想法很有价值,但如果想要合入,以下是我对最终功能范围的想法

  1. 直接使用森空岛 API 处理干员和练度导入,去除 MAA 导入功能
    • 完成代办时,需要更新本地存入的干员练度数据
    • 允许用户编辑本地练度【优先度低】
    • 可手动导入,导入时可选是覆盖还是取最高练度
    • 打开我的干员自动刷新数据可能也要考虑只取最高练度而不是覆盖
  2. 不需要等级、龙门币、经验书计算能力
  3. 已有的筛选、添加预设、一键快捷添加精英化和技能专精都很 OK

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants