mirror of
https://github.com/motajs/template.git
synced 2026-10-14 00:30:18 +08:00
docs(09): capture task 3 interface designs (book/equipbox/toolbox/shop)
This commit is contained in:
parent
77a8adc05d
commit
e287aa440e
@ -56,6 +56,57 @@
|
||||
- **D-16(IUIController 泛型适配):** `@motajs/system` 的 `IUIController<PB>` / `UIController<PB>` 现为必填泛型;为所有未适配的使用点补上类型实参(`IGameUIPropsBase`)。范围:`client-modules` 侧 `ui/save.tsx`(495/545/569/593)、`ui/settings.tsx`(680/691)、`ui/statistics.tsx`(283)、`ui/viewmap.tsx`(559)、`render/utils/saves.ts`(125)、`render/scene.ts`(3 构造)、`ui/controller.tsx`(4 构造);`client-base` 侧 `components/choices.tsx`(598/651/710/765)、`components/input.tsx`(547/584)、`components/misc.tsx`(571)。
|
||||
- **D-17(UI 实现迁移遗留类型错误):** 修复 `packages-user/client-modules/src/ui/**` 的类型错误:`main.tsx`(56 `p` 未定义;138/184 props 不匹配)、`settings.tsx`(81/86/90/94/371/385/393 `loc` 不存在)、`statusBar.tsx`(521)、`toolbar.tsx`(397/403/409)。**不含** `client-base` 其余错误、渲染系统(`render/`、`client-base/map`)、数据端、legacy。
|
||||
|
||||
### 任务 3(当前规划单元:legacy UI 移植)
|
||||
|
||||
> 本节界定**本次规划运行**的范围:仅规划任务 3,不规划 Phase 9 的其余内容。**界面形态逐个讨论后确定**(尚未开始)。
|
||||
|
||||
- **D-18(范围):** 将 `packages/legacy-ui` 残余的早期 UI 移植到新接口:`book`(怪物手册,`src/tools/book.tsx` + `src/ui/bookDetail.vue`)、`equipbox`(装备界面,`src/tools/equipbox.tsx` + `src/ui/equipbox.vue`)、`toolbox`(道具栏,`src/tools/toolbox.tsx` + `src/ui/toolbox.vue`)、`shop`(商店界面,`src/ui/shop.vue`)。
|
||||
- **D-19(排除):** `fly`(`src/tools/fly.ts` + `src/ui/fly.vue`)与 `settings`(`src/ui/settings.vue` + `src/preset/settings.tsx`)的移植**已完成,不再处理**;`hotkey`(`src/ui/hotkey.vue`)需要重构、**暂不移植**。
|
||||
- **D-20(视觉):** 移植后**不要求**与 legacy 显示效果一致;形态需调整。各界面具体形态由用户**逐个讨论确定**(当前未定,属讨论中的待定项)。
|
||||
- **D-21(计划粒度):** 每个界面一个计划,共 **4 个计划**(book / equipbox / toolbox / shop)。
|
||||
- **D-22(流程):** 逐界面先讨论「长什么样」,再规划;每个计划执行前仍走 Task 0 汇报关卡并等待用户「可以执行」。
|
||||
|
||||
### 任务 3 · book 怪物手册(讨论已定)
|
||||
|
||||
- **D-23(数据源 / 去重):** 怪物手册展示**当前地图**的怪物信息,**绑定当前 `EnemyContext`**;列表为**去重**后的怪物(**按 `num` 去重**);每个怪物的**基础数据取该怪物的 `baseAttribute`**(即不考虑光环的原始状态)。「不考虑光环」不等于「不依赖勇士属性」——依赖勇士属性的派生信息仍显示。
|
||||
- **D-24(列表字段):** 列表项显示 图标 + 名称 + 特殊名,数值为 **生命 / 攻击 / 防御 / 金币 / 经验 / 伤害 / 临界 / 减伤 / 「1 防」**。**不使用 `{ratio}防`**:新接口暂无 `ratio` 量,改用「**1 防**」(即 +1 防御对应的减伤)。列表为**滚动式**。
|
||||
- **D-25(临界定义):** 临界 = 玩家**再增加 x 点攻击**时,因战斗回合数减少而使玩家**受到的总伤害下降**的最小 x;减伤 = 对应的下降量。直接调用系统**已有的二分法临界表接口**计算(不重复实现)。
|
||||
- **D-26(详细信息 UI 独立):** 怪物详细信息是**独立 UI**,**不与怪物手册耦合、可单独运行**(后续需支持「在地图中打开指定 View 的详细信息」)。入参为 **`IEnemy` 或 `IEnemyView`**。若为 `IEnemyView`:可切换「**基础属性 / 计算后属性**」——**计算后 = 含光环等加成的数值**,且**临界表在计算模式下也用计算后属性**。详情**仅显示特殊属性列表**,**不显示光环**。
|
||||
- **D-27(详情交互):** 左下角为切换按钮「**切换至计算后属性** | **切换至基础属性**」;右下角为「**返回上一级**」。**打开方式不在本书范围**(后续另行提供「在地图中打开指定 View 详情」的能力)。
|
||||
|
||||
### 任务 3 · equipbox 装备界面(讨论已定)
|
||||
|
||||
> 参照图:`.planning/images/equipbox.png`(gitignored)。
|
||||
|
||||
- **D-28(布局):** **左列 = 状态区域**(属性列举,**纵向滚动、不显示滚动条**,整列);**右侧区域自上而下 = 装备描述区域 → 装备槽区域(横向滚动、不显示滚动条) → 拥有装备区域(纵向滚动、不显示滚动条)**。
|
||||
- **D-29(属性列举):** 入参提供**属性 id + 中文名列表**,按该列表顺序列举;平时显示**当前属性值**;选中装备时,在该数值**右方(靠右对齐)**显示**增减量**(增加绿、减少红)。
|
||||
- **D-30(数据源):** 装备槽来自玩家属性 **`state.equipment.slots`**,按该列表列举;**拥有装备列表按 id `sort()` 排序**(**不做筛选/排序 UI**)。入参除上述外,还包含**勇士状态 `HeroState`**。
|
||||
- **D-31(对比规则):** 选中装备时,与「**同类型的第一个槽位**」对比;若该类型槽位为空则**不对比**。点击**已装备**的装备仍算选中,但**仅显示「卸下该装备」导致的属性增减**。
|
||||
- **D-32(交互):** 选中后**再次点击** = 穿上(位置与对比装备一致,即 **autoUnload 下的 `equip`**);**拖拽拥有装备到槽** = 装到指定槽;**拖拽已装备的装备** = 卸下。**打开方式不在本计划范围。**
|
||||
|
||||
### 任务 3 · 共享约束
|
||||
|
||||
- **D-33(画面尺寸):** 任务 3 的**四个 UI(book / equipbox / toolbox / shop)均占满整个游戏画面**(**root renderer**),**而非整个 window**。
|
||||
- **参考图说明(非决策):** 参考图(如 `.planning/images/equipbox.png`)**仅作布局上的参考**,**不代表必须严格按参考图的比例**。
|
||||
- **D-37(退出按钮位置):** 任务 3 的 UI **若不额外说明,退出按钮统一放在右下角**。
|
||||
|
||||
### 任务 3 · toolbox 道具栏(讨论已定)
|
||||
|
||||
> 参照图:`.planning/images/toolbox.png`(与旧版基本一致)。
|
||||
|
||||
- **D-34(布局):** 三列 —— 左列「**永久道具**」列表、中列「**可消耗道具**」列表、右列自上而下「**道具名称**」与「**道具说明**」(描述在最右,名称位于最右上)。
|
||||
- **D-35(列表 / 排序):** 道具分为**永久道具**与**可消耗道具**;各自按**数量从多到少**排序,**数量相同按 id 排序**。
|
||||
- **D-36(交互 / 入参):** **单击选中、再次点击使用**;**无丢弃、无拖拽**功能。入参为 **`HeroState`**。
|
||||
|
||||
### 任务 3 · shop 商店界面(讨论已定)
|
||||
|
||||
> 参照图:`.planning/images/shop.png`(仅布局参考)。
|
||||
|
||||
- **D-38(布局):** 顶部「**购买选项 | 售出选项**」切换;左「**商店列表**」;右列自上而下 = 「**选中物品名称**」/「**选中物品描述**」/「**购入量选择**」(其**按钮上方**显示 **买价 / 卖价 / 存货 / 拥有 / 总价** 等价格信息)/「**购买按钮**」。占满游戏画面。
|
||||
- **D-39(模式 / 列表):** 可在**购入 / 售出**间切换;**售出也用「商店列表」**(商店不卖的,玩家也不能从背包售出);列表按 **id 排序**;**库存显示在物品最右侧、右对齐**;列表**可滚动、显示滚动条**。
|
||||
- **D-40(数量语义):** 数量调整四个按钮 `<< < {当前购入/售出量} > >>`,步进**同 legacy**(`<<`/`>>` = ±10,`<`/`>` = ±1);上限 = **购入:商店库存**、**售出:玩家拥有数量**;**数量按物品分别记忆**(切换物品时保存各自数量);「购买按钮」买**当前选中物品**的数量。
|
||||
- **D-41(边界 / 依赖):** 本任务**只负责 UI 编写,不负责消费者如何调用**(**打开方式不管**)。商店数据需一个专门的 **`ShopState`**(放在**数据端**)——**当前无接口,后续由用户提供**;shop UI 依赖该接口。
|
||||
|
||||
### the agent's Discretion
|
||||
|
||||
- 无。用户明确未授权 AI 自行决定 UI 形态或任务范围。
|
||||
|
||||
Loading…
Reference in New Issue
Block a user