feat: 实现避难所仓储系统与生存状态HUD改进
- 新增避难所仓储功能,支持物品在随身背包与仓储间转移 - 添加生存状态图标资源与状态阈值告警系统 - 重构HUD界面,优化状态显示与操作流程 - 扩展游戏核心系统,增加仓储相关动作和校验 - 更新文档说明仓储规则与实现细节
This commit is contained in:
+12
-1
@@ -93,6 +93,12 @@ Buff 必须具备可解释来源与可清除/可缓解路径:
|
||||
- 背包容量 `bagCapacity`:体积上限
|
||||
- 容器(箱子/仓库)容量 `storageCapacity`:体积上限
|
||||
|
||||
当前实现采用:
|
||||
|
||||
- `Field Bag`:在线行动时唯一权威随身背包
|
||||
- `Shelter Storage`:避难所内的长期仓储层
|
||||
- 主 HUD 只摘要显示随身容量,完整整理在独立背包弹层完成
|
||||
|
||||
设计理由:
|
||||
|
||||
- 体积比“格子”更适合废土资源管理的“取舍”表达
|
||||
@@ -108,6 +114,12 @@ Buff 必须具备可解释来源与可清除/可缓解路径:
|
||||
- 基地可修理(消耗材料 + 时间)
|
||||
- 野外可应急修理(更高成本/更低效率)
|
||||
|
||||
### 3.3.4 仓储访问规则
|
||||
|
||||
- 仓储不是全地图随时可开,而是地点约束能力
|
||||
- 当前版本仅在 `home / Shelter-7` 允许取放仓储
|
||||
- 配方在避难所内可以读取仓储材料,避免“物资明明囤着却不能做”的违和感
|
||||
|
||||
## 3.4 制作、烹饪、锻造与科研
|
||||
|
||||
### 3.4.1 配方数据结构(通用)
|
||||
@@ -328,4 +340,3 @@ stateDiagram-v2
|
||||
- 风险定价:高风险区域的补给更贵、材料更便宜
|
||||
|
||||
经济更完整设计见:[05-数值与经济.md](./05-%E6%95%B0%E5%80%BC%E4%B8%8E%E7%BB%8F%E6%B5%8E.md)
|
||||
|
||||
|
||||
+21
-2
@@ -54,6 +54,7 @@ flowchart TB
|
||||
- 容量计算(体积/堆叠)
|
||||
- 移入移出、消耗、掉落
|
||||
- 装备槽与耐久更新
|
||||
- 随身背包与避难所仓储之间的转移
|
||||
|
||||
边界:
|
||||
|
||||
@@ -99,7 +100,15 @@ flowchart TB
|
||||
- 监听世界事件(到达地点、获得物品、完成战斗等)
|
||||
- 驱动任务事件池与奖励发放
|
||||
|
||||
### 8.3.7 ContentService(内容服务)
|
||||
### 8.3.7 ViewProjection(视图投影层)
|
||||
|
||||
职责:
|
||||
|
||||
- 将 `GameState` 投影成 HUD 可直接消费的 `GameView`
|
||||
- 产出生存阈值告警、仓储可访问性、战斗与事件视图
|
||||
- 保证 UI 不需要反向猜测领域规则
|
||||
|
||||
### 8.3.8 ContentService(内容服务)
|
||||
|
||||
职责:
|
||||
|
||||
@@ -107,6 +116,17 @@ flowchart TB
|
||||
- 提供按 ID 与按标签检索能力
|
||||
- 提供校验:唯一性、引用完整性、字段类型、循环依赖检查
|
||||
|
||||
### 8.3.9 当前代码映射
|
||||
|
||||
当前仓库中已经开始按模块边界落地:
|
||||
|
||||
- `packages/game-core/src/systems/inventory-system.ts`
|
||||
- `packages/game-core/src/systems/place-system.ts`
|
||||
- `packages/game-core/src/systems/effect-system.ts`
|
||||
- `packages/game-core/src/systems/survival-system.ts`
|
||||
- `packages/game-core/src/systems/quest-system.ts`
|
||||
- `packages/game-core/src/view-projection.ts`
|
||||
|
||||
## 8.4 数据与配置组织(建议)
|
||||
|
||||
### 8.4.1 文件结构建议
|
||||
@@ -182,4 +202,3 @@ flowchart TB
|
||||
- 存档迁移
|
||||
- 内容校验:
|
||||
- CI 中运行 Schema 校验与引用完整性检查
|
||||
|
||||
|
||||
@@ -94,8 +94,10 @@ UI 组件 <- Query Cache <- 最新 GameView
|
||||
- `apps/web/public/generated/ui/character-preview.png`:角色立绘
|
||||
- `apps/web/public/generated/ui/item-atlas.png`:物资图集原图
|
||||
- `apps/web/public/generated/ui/equipment-atlas.png`:装备图集原图
|
||||
- `apps/web/public/generated/ui/status-atlas.png`:生存状态图集原图
|
||||
- `apps/web/public/generated/ui/items/*`:切分后的物资图标
|
||||
- `apps/web/public/generated/ui/equipment/*`:切分后的装备槽素材
|
||||
- `apps/web/public/generated/ui/status/*`:切分后的生存状态图标
|
||||
|
||||
对应映射入口:
|
||||
|
||||
@@ -105,6 +107,7 @@ UI 组件 <- Query Cache <- 最新 GameView
|
||||
|
||||
- 地点图使用整图背景,服务于中央场景和左侧路线卡。
|
||||
- 物资与装备图使用 atlas + 裁切结果,服务于快捷栏、库存卡、角色槽位。
|
||||
- 生存状态图使用 atlas + 裁切结果,服务于状态效果卡和后续中断提示。
|
||||
- 所有引用都走 `uiAssets.ts`,避免组件里散落硬编码路径。
|
||||
|
||||
## 12.6 HUD 信息职责
|
||||
@@ -138,7 +141,7 @@ UI 组件 <- Query Cache <- 最新 GameView
|
||||
- 角色立绘与槽位矩阵
|
||||
- 属性与状态效果
|
||||
- 快捷栏
|
||||
- 完整库存管理
|
||||
- 完整库存与避难所仓储管理
|
||||
- 任务与休整
|
||||
|
||||
### 12.6.5 BottomDock
|
||||
|
||||
@@ -95,7 +95,7 @@ TinyWaste Online 不是网页式信息展示项目,而是一款:
|
||||
|
||||
中频系统改用面板弹出:
|
||||
|
||||
- 背包
|
||||
- 背包 / 避难所仓储
|
||||
- 蓝图
|
||||
- 任务
|
||||
- 完整日志
|
||||
@@ -151,6 +151,12 @@ TinyWaste Online 不是网页式信息展示项目,而是一款:
|
||||
|
||||
当前项目已经有 `Quick Slots + Inventory` 雏形,下一步建议补 `Shelter Storage`。
|
||||
|
||||
当前实现进度:
|
||||
|
||||
- 已经落地 `Field Bag + Shelter Storage` 双层库存
|
||||
- 仅位于 `home / Shelter-7` 时可访问避难所仓储
|
||||
- 避难所内制作会同时读取背包与仓储材料,避免资源可见却不可用
|
||||
|
||||
### 13.6.3 物品状态
|
||||
|
||||
每个背包物品后续建议支持:
|
||||
@@ -275,17 +281,20 @@ TinyWaste Online 不是网页式信息展示项目,而是一款:
|
||||
|
||||
## 13.11 当前代码层面的下一批重点
|
||||
|
||||
1. 把 `engine.ts` 继续拆成子模块:
|
||||
- `time-system`
|
||||
1. 当前已拆出的运行时模块:
|
||||
- `inventory-system`
|
||||
- `combat-system`
|
||||
- `event-system`
|
||||
- `place-system`
|
||||
- `effect-system`
|
||||
- `survival-system`
|
||||
- `quest-system`
|
||||
- `view-projection`
|
||||
2. 为状态阈值、背包容量、战斗结算分别补单元测试
|
||||
3. 引入基地仓库与背包转移逻辑
|
||||
4. 为背包、任务、蓝图面板补筛选与分类
|
||||
5. 为状态系统引入更明确的阶段化惩罚定义
|
||||
2. 下一轮继续拆出:
|
||||
- `combat-system`
|
||||
- `event-system`
|
||||
3. 为状态阈值、背包容量、战斗结算分别补单元测试
|
||||
4. 继续强化基地仓储:分类、批量整理、仓储专属配方
|
||||
5. 为背包、任务、蓝图面板补筛选与分类
|
||||
6. 为状态系统引入更明确的阶段化惩罚定义
|
||||
|
||||
## 13.12 结论
|
||||
|
||||
|
||||
Reference in New Issue
Block a user