poi-plugin-kai-planner 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,48 +1,54 @@
1
- # poi-plugin-kai-planner
2
-
3
- 用于 POI 的改修规划插件,包含“每日改修”和“改修心愿清单”两条主链路。
4
-
5
- ## 当前发布机制(2026-03)
6
-
7
- - 插件代码仓库:本仓库(私有)
8
- - 玩家安装方式:通过 npm 安装 POI 插件包
9
- - 远端静态数据:独立公开仓库 `PlannerRemoteRawData`
10
- - 调试页开关:`package.json -> poiPlugin.enableDebug`,发布建议关闭
11
- - 发布包控制:`package.json.files` + `.npmignore` + `npm run release:check`
12
-
13
- ## 功能概览
14
-
15
- - 每日改修:按 JST(GMT+9)展示当天可改修/可进化项目、秘书舰与基础消耗
16
- - 改修心愿清单:创建计划、跟踪实时进度、查看今日下一步、缺口与起点绑定状态
17
- - 心愿清单表格已拆分为两个 tab:
18
- - `改修未完成`:默认 tab,只展示仍有剩余步骤的计划
19
- - `改修已完成`:只展示 `remainingSteps.length === 0` 的计划
20
- - 心愿清单支持行内编辑:优先级、目标星级、起点重绑、展开查看实时缺口
21
- - Debug:可选加载,不影响 Daily/Wishlist 主流程
22
-
23
- ## 本地数据
24
-
25
- - 用户计划优先写入:
26
- - 若 Electron 可提供 `userData` 目录,则写入 `<userData>/poi-plugin-kai-planner/userPlans/plans.v1.json`
27
- - 若无法获取稳定用户目录,则回退到 `<plugin_root>/runtime_data/userPlans/plans.v1.json`
28
- - 文件存储不可用时回退 `localStorage`:`kai_planner_user_plans_v1`
29
- - 远端静态数据缓存:
30
- - `runtime_data/static_data/meta.json`
31
- - `runtime_data/static_data/cache/*.json`
32
- - bundled 静态数据基线:`src/data/static/*.json`
33
-
34
- ## 常用命令
35
-
36
- - `npm test`
37
- - `npm run release:check`
38
- - `npm run release:pack`
39
-
40
- ## 文档导航
41
-
42
- - 架构说明:[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)
43
- - 数据版本策略:[docs/DATA_VERSIONING.md](docs/DATA_VERSIONING.md)
44
- - 计划存储策略:[docs/STORAGE_POLICY.md](docs/STORAGE_POLICY.md)
45
- - Wishlist 状态字段:[docs/WISHLIST_STATE_FIELDS.md](docs/WISHLIST_STATE_FIELDS.md)
46
- - npm/POI 发布流程:[docs/RELEASE_POI_NPM.md](docs/RELEASE_POI_NPM.md)
47
- - 私有仓库更新流程:[docs/PRIVATE_REPO_UPDATE.md](docs/PRIVATE_REPO_UPDATE.md)
1
+ # poi-plugin-kai-planner
2
+
3
+ 用于 POI 的改修规划插件,包含“每日改修”和“改修心愿清单”两条主链路。
4
+
5
+ ## 当前发布机制(2026-03)
6
+
7
+ - 插件代码仓库:本仓库(私有)
8
+ - 玩家安装方式:通过 npm 安装 POI 插件包
9
+ - 远端静态数据:独立公开仓库 `PlannerRemoteRawData`
10
+ - 调试页开关:`package.json -> poiPlugin.enableDebug`,发布建议关闭
11
+ - 发布包控制:`package.json.files` + `.npmignore` + `npm run release:check`
12
+
13
+ ## 功能概览
14
+
15
+ - 每日改修:按 JST(GMT+9)展示当天可改修/可进化项目、秘书舰与基础消耗
16
+ - 改修心愿清单:创建计划、跟踪实时进度、查看今日下一步、缺口与起点绑定状态
17
+ - 心愿清单表格已拆分为两个 tab:
18
+ - `改修未完成`:默认 tab,只展示仍有剩余步骤的计划
19
+ - `改修已完成`:只展示 `remainingSteps.length === 0` 的计划
20
+ - 心愿清单支持行内编辑:优先级、目标星级、起点重绑、展开查看实时缺口
21
+ - Debug:可选加载,不影响 Daily/Wishlist 主流程
22
+
23
+ ## 本地数据
24
+
25
+ - 用户计划优先写入:
26
+ - 若 Electron 可提供 `userData` 目录,则写入 `<userData>/poi-plugin-kai-planner/userPlans/plans.v1.json`
27
+ - 若无法获取稳定用户目录,则回退到 `<plugin_root>/runtime_data/userPlans/plans.v1.json`
28
+ - 文件存储不可用时回退 `localStorage`:`kai_planner_user_plans_v1`
29
+ - 远端静态数据缓存:
30
+ - `runtime_data/static_data/meta.json`
31
+ - `runtime_data/static_data/cache/*.json`
32
+ - bundled 静态数据基线:`src/data/static/*.json`
33
+
34
+ ## 常用命令
35
+
36
+ - `npm test`
37
+ - `npm run release:check`
38
+ - `npm run release:pack`
39
+
40
+ ## 文档导航
41
+
42
+ - 架构说明:[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)
43
+ - 数据版本策略:[docs/DATA_VERSIONING.md](docs/DATA_VERSIONING.md)
44
+ - 计划存储策略:[docs/STORAGE_POLICY.md](docs/STORAGE_POLICY.md)
45
+ - Wishlist 状态字段:[docs/WISHLIST_STATE_FIELDS.md](docs/WISHLIST_STATE_FIELDS.md)
46
+ - npm/POI 发布流程:[docs/RELEASE_POI_NPM.md](docs/RELEASE_POI_NPM.md)
47
+ - 私有仓库更新流程:[docs/PRIVATE_REPO_UPDATE.md](docs/PRIVATE_REPO_UPDATE.md)
48
48
  - 远端静态数据更新流程:[docs/REMOTE_DATA_UPDATE.md](docs/REMOTE_DATA_UPDATE.md)
49
+
50
+ ## 2026-03 UI 更新
51
+ - Daily 页面支持按装备类型筛选;类型名来自 POI 的 `$equipTypes[api_type[3]].api_name`
52
+ - Daily 与 Wishlist 表格中的装备名称前都会显示装备类型 icon
53
+ - Wishlist 主表中的优先级改为标签样式展示(P0-P5 固定颜色)
54
+ - Wishlist 展开明细中的“当前持有”计数会去除改修星数大于 0 的装备以及计划起点装备
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "poi-plugin-kai-planner",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "main": "index.js",
5
5
  "author": "aulu",
6
6
  "contributors": ["aulu"],
@@ -0,0 +1,30 @@
1
+ /* src/app/components/SlotitemTypeIcon.js */
2
+
3
+ const React = require("react");
4
+
5
+ let SlotitemIcon = null;
6
+ try {
7
+ ({ SlotitemIcon } = require("views/components/etc/icon"));
8
+ } catch {}
9
+
10
+ function SlotitemTypeIcon({ iconType, title, style }) {
11
+ if (!iconType || !SlotitemIcon) return null;
12
+ return React.createElement(
13
+ "span",
14
+ {
15
+ title: title || "",
16
+ style: {
17
+ display: "inline-flex",
18
+ alignItems: "center",
19
+ justifyContent: "center",
20
+ width: 20,
21
+ height: 20,
22
+ flexShrink: 0,
23
+ ...(style || {}),
24
+ },
25
+ },
26
+ React.createElement(SlotitemIcon, { slotitemId: iconType })
27
+ );
28
+ }
29
+
30
+ module.exports = { SlotitemTypeIcon };