Files
text-adventure-game/设计文档.md

1664 lines
50 KiB
Markdown
Raw Normal View History

# 文字冒险游戏设计文档 v2.0
## 改进版 - 深度挂机养成系统
## 1. 游戏概述
### 1.1 游戏类型
- **类型**:文字冒险 + 深度挂机养成 + RPG
- **平台**:小程序/网页/appuni-app框架
- **风格**纯文字UI末世生存主题
- **灵感来源**Proto23、Yet Another Idle RPG
- **核心理念**:通过技能驱动成长,强调策略性和深度
### 1.2 核心玩法循环
```
获取技能 → 提升技能等级 → 解锁新内容 → 战斗/探索 → 获取更强装备 → 挑战更强敌人
↑ ↓
└──────────────────── 离线收益系统 ──────────────────────────────────┘
```
**核心玩法特色**
1. **技能驱动系统**:几乎所有成长都通过技能提升来实现
2. **深度养成**:技能不仅有等级,还有里程碑奖励和特殊效果
3. **策略性选择**:通过装备、技能搭配、战斗姿态等体现玩家策略
4. **挂机友好**:支持长时间挂机,离线有收益,但在线玩效率更高
5. **渐进式解锁**新内容通过技能等级、区域通关、NPC对话等方式逐步解锁
---
## 2. 核心系统设计
### 2.1 玩家属性系统(参考 Yet Another Idle RPG
#### 主要属性Primary Stats
| 属性 | 说明 | 初始值 | 影响因素 |
| ----------------- | --------------------------- | ------ | -------------- |
| 力量Strength | 影响物理攻击力 | 10 | 技能加成、装备 |
| 敏捷Agility | 影响闪避率 | 8 | 技能加成、装备 |
| 灵巧Dexterity | 影响命中率 | 8 | 技能加成、装备 |
| 智力Intuition | 影响魔法威力、少量命中/闪避 | 10 | 技能加成、装备 |
| 防御力Defense | 减少受到的伤害(仅装备) | 0 | 装备提供 |
#### 次要属性Secondary Stats
| 属性 | 说明 | 计算公式 |
| ------------------------ | -------------------- | ------------------------------------ |
| 最大生命Max HP | 角色生命上限 | 基础值 + 技能加成 + 装备加成 |
| 攻击力Attack Power | 最终攻击力 | 武器攻击力 × (力量系数 或 智力系数) |
| 攻击速度Attack Speed | 攻击频率 | 基础速度 × 装备加成 × 技能加成 |
| 暴击率Crit Rate | 暴击概率 | 基础值 + 技能加成 |
| 暴击伤害Crit Mult | 暴击伤害倍数 | 基础值(1.5) + 技能加成 |
| 命中值AP | 攻击点数,影响命中率 | 技能、环境修正等因素综合 |
| 闪避值EP | 闪避点数,影响闪避率 | 技能、环境修正等因素综合 |
| 护盾Shield | 可吸收伤害 | 装备提供 |
#### 战斗资源
| 资源 | 说明 | 初始值 | 消耗机制 |
| --------------- | ---------------- | ------ | ---------------------- |
| 耐力Stamina | 影响战斗效率 | 100 | 攻击消耗、技能训练消耗 |
| 精神Sanity | 影响某些事件判断 | 100 | 特殊事件消耗 |
#### 最终属性计算规则
```javascript
// 示例计算逻辑
finalStats = {
// 基础属性 + 技能加成 + 装备加成
strength: baseStats.strength + skills.bonus + equipment.bonus,
// 攻击力 = 武器基础 × (1 + 力量/100)
attackPower: weapon.baseDamage * (1 + finalStats.strength / 100),
// 命中值和闪避值采用非线性计算
attackPoints: calculateAP(dexterity, intuition, skills, environment),
evasionPoints: calculateEP(agility, intuition, skills, environment)
}
```
#### 主等级系统(简化)
- **定位**:作为整体实力的参考指标,不是主要成长手段
- **经验来源**
- 技能达到特定等级(里程碑)
- 完成书籍阅读
- 击败新敌人(图鉴解锁)
- 区域首次通关
- **升级效果**
- 提供少量基础属性加成
- 解锁高级技能的等级上限
- 作为某些内容的前置条件
### 2.2 技能系统(核心深度系统)
#### 技能分类体系
1. **战斗技能Combat Skills**
- 武器精通类:木棍精通、剑术、斧头精通等
- 战斗姿态类:攻击姿态、防御姿态、平衡姿态
- 防御类:闪避训练、盾牌掌握、铁皮
- 攻击类:重击、快速打击、连击
2. **生活技能Life Skills**
- 阅读类:阅读(提升阅读速度和效率)
- 生存类:饮食、坚韧、夜视
- 资源获取类:采集、狩猎、采矿
3. **特殊技能Special Skills**
- 信仰、领导力
- 讨价还价(降低交易差价)
- 一心多用(允许同时进行多个活动)
4. **被动技能Passive Skills**
- 被动获得经验,只需满足特定条件
- 示例:在黑暗区域待着自动获得夜视经验
5. **父技能Parent Skills**
- 不直接提供属性加成
- **核心功能**:如果子技能等级低于父技能,提供经验倍率加成
- 父技能等级始终等于最高级子技能的等级
- 示例:父技能"战斗"包含子技能"剑术"、"斧头精通"等
#### 技能解锁机制
1. **物品触发解锁**
- 获得书籍 → 解锁"阅读"
- 获得武器 → 解锁对应武器精通
- 获得技能书 → 解锁特殊技能
2. **NPC对话解锁**
- 与特定NPC对话 → 解锁新技能
- 完成特定剧情 → 解锁技能
3. **技能等级解锁**
- 某技能达到X级 → 解锁相关技能
- 示例阅读5级 → 解锁"快速阅读"
4. **区域解锁**
- 首次进入特定区域 → 解锁相关技能
- 示例:首次进入洞穴 → 解锁"夜视"
#### 技能经验获取机制
1. **主动训练**
- 在训练场消耗耐力训练武器技能
- 阅读书籍获得阅读经验
- 工作获得相关技能经验
2. **战斗获得**
- 使用武器攻击 → 武器技能经验
- 成功闪避 → 闪避技能经验
- 成功格挡 → 盾牌技能经验
3. **被动获得**
- 在特定环境待着 → 环境适应技能经验(如夜视)
- 装备特定装备 → 相关技能经验(如铁皮)
4. **部分效率机制**
- 即使条件未完全满足也能获得50%经验
- 示例未命中敌人仍能获得武器技能经验的50%
#### 技能里程碑系统(重要)
每个技能在特定等级提供**永久性全局奖励**
**示例 - 武器技能里程碑**
| 等级 | 奖励效果 |
| ----- | ---------------------- |
| Lv.5 | 所有武器暴击率+2% |
| Lv.10 | 所有武器攻击力+5% |
| Lv.15 | 武器熟练度获取速度+20% |
| Lv.20 | 所有武器暴击伤害+0.3 |
**示例 - 阅读技能里程碑**
| 等级 | 奖励效果 |
| ----- | -------------------------- |
| Lv.3 | 所有技能经验获取+5% |
| Lv.5 | 阅读速度+50% |
| Lv.10 | 完成书籍给予额外主经验+100 |
**示例 - 父技能里程碑**
| 等级 | 奖励效果 |
| ----- | ------------------ |
| Lv.5 | 子技能升级速度+10% |
| Lv.10 | 子技能升级速度+25% |
| Lv.15 | 子技能升级速度+50% |
#### 技能等级上限与限制
- **基础上限**每个技能有基础等级上限如20级
- **玩家等级限制**技能等级不能超过玩家等级×2
- **解锁更高上限**
- 通过特定NPC提升上限
- 通过特殊物品提升上限
- 主等级达到特定等级
### 2.3 物品与装备系统(参考 YAIRPG
#### 装备品质系统(核心)
所有装备都有**品质Quality**参数,直接影响装备属性:
| 品质等级 | 品质范围 | 稀有度 | 颜色 | 额外乘数 | 说明 |
| -------- | -------- | ------ | ---- | -------- | -------------- |
| 1 | 0-49% | 垃圾 | 灰色 | ×1.0 | 几乎无用的装备 |
| 2 | 50-99% | 普通 | 白色 | ×1.0 | 基础装备 |
| 3 | 100-129% | 优秀 | 绿色 | ×1.1 | 略强于普通 |
| 4 | 130-159% | 稀有 | 蓝色 | ×1.3 | 强力装备 |
| 5 | 160-199% | 史诗 | 紫色 | ×1.6 | 非常稀有 |
| 6 | 200-250% | 传说 | 橙色 | ×2.0 | 极其罕见 |
**品质影响**
1. **基础属性** = 装备基础值 × 品质百分比
- 武器攻击力 = 基础攻击力 × 品质%
- 防具防御力 = 基础防御力 × 品质%
2. **稀有度乘数**(绿色及以上):影响所有属性
- 最终属性 = 基础属性 × 稀有度乘数
3. **价值计算**
- 装备价值 = 基础价值 × 品质% × 稀有度乘数
**示例计算**
- 基础攻击力100的剑品质120%,绿色稀有度
- 最终攻击力 = 100 × 1.2 × 1.1 = 132
- 最终价值 = 基础价值 × 1.2 × 1.1
#### 装备分类
1. **武器Weapon**
- 基础属性:攻击力、攻击速度
- 首次装备自动解锁对应武器技能
- 类型:单手武器、双手武器、远程武器
2. **防具Armor**
- 部位:头盔、胸甲、护腿、鞋子、手套
- 基础属性:防御力
- **重要**:防御力仅由装备提供,不是基础属性
3. **护盾Shield**
- 基础属性:护盾值、格挡率
- 格挡机制:先于防御力计算,可完全吸收伤害
- 示例格挡率75%护盾值50 → 有75%几率用护盾吸收最多50点伤害
4. **饰品Accessory**
- 类型:戒指、项链
- 提供特殊属性加成
- 可能有特殊效果
5. **书籍Book**
- **普通书籍**:只给阅读经验
- **特殊书籍**:多技能经验(圣经→阅读+信仰)
- **完成后奖励**:提供永久性全局加成(重要!)
- 不消耗,读完后收益消失
6. **消耗品Consumable**
- 食物:恢复生命值、耐力值
- 战斗中食物提供耐力再生
- 每次使用给饮食经验
- 药水:恢复生命值、精神值
7. **素材Material**
- 战斗掉落物
- 用于制作装备
- 可出售给商人
8. **负面状态Negative Status**
- 虫子咬、流血等
- 提供被动经验(如坚韧)
- 持续负面效果
#### 装备获取方式
1. **战斗掉落**:随机品质(基于运气)
2. **商店购买**
- 常规商店最高120%品质
- 黑市:可能更高品质
3. **制作系统**:品质取决于技能等级和材料
#### 装备系统设计理念
- **无耐久度**:装备永久有效,不会损坏
- **强调收集**:追求更高品质的装备
- **品质随机**:增加重玩价值和刷装备的乐趣
### 2.4 战斗系统(深度优化)
#### 战斗方式
- **实时回合制**:基于攻击速度的实时战斗
- **速度机制**
- 攻击速度直接决定攻击频率
- 2倍速度 = 2倍攻击频率
- **最快攻击限制**每秒1次战斗开始时缩放计时器
#### 命中与闪避系统AP/EP系统
采用**非线性计算**参考YAIRPG
| AP与EP比例 | 命中概率 | 说明 |
| -------------- | -------- | ---------- |
| AP = 5 × EP | ~98% | 几乎必中 |
| AP = 2 × EP | ~80% | 高命中率 |
| AP = EP | ~50% | 势均力敌 |
| AP = 0.5 × EP | ~24% | 命中困难 |
| AP = 0.2 × EP | ~5% | 几乎打不中 |
**APAttack Points计算**
```javascript
AP = 灵巧 + 智力×0.2 + 技能加成 + 装备加成 + 姿态加成 - 敌人数惩罚
```
**EPEvasion Points计算**
```javascript
EP = 敏捷 + 智力×0.2 + 技能加成 + 装备加成 + 姿态加成 - 环境惩罚
```
**环境惩罚示例**
- 狭窄区域EP -30%
- 黑暗区域无夜视AP和EP各 -20%
- 多敌人每多1个敌人AP -5%
#### 伤害计算(三层防御)
```
步骤1闪避判定
→ 成功:无伤害
→ 失败进入步骤2
步骤2护盾吸收
→ 护盾值完全吸收伤害(可能剩余)
→ 进入步骤3
步骤3防御力减少
最终伤害 = max(1, (原始伤害 - 护盾吸收 - 防御力) × 暴击倍数)
最小伤害 = max(1, 原始伤害 × 10%) // 防御力最多减少90%
```
**示例**
- 原始伤害100
- 护盾吸收30
- 防御力40
- 暴击倍数1.5
- 最终伤害 = max(1, (100-30-40) × 1.5) = 45
#### 战斗姿态系统(重要)
| 姿态 | 耐力消耗 | 效果 |
| -------- | -------- | --------------------------------------- |
| 攻击姿态 | 高 | 攻击力+50%,攻击速度+30%,防御-30% |
| 防御姿态 | 中 | 防御力+50%,护盾+30%,攻击力-30% |
| 平衡姿态 | 低 | 无加成,无惩罚 |
| 快速打击 | 很高 | 攻击速度+100%,攻击力-40%(适合多目标) |
| 重击 | 高 | 攻击力+100%,攻击速度-50% |
**姿态切换规则**
- 可随时切换姿态
- 切换时重置攻击进度(防止姿态滥用)
- 姿态影响耐力消耗速度
#### 耐力系统
- **耐力影响**
- 耐力 > 50%:正常效率
- 耐力 0-50%:效率逐渐下降
- 耐力 = 0攻击速度和攻击力减半
- **耐力恢复**
- 脱离战斗自动恢复
- 食物提供战斗中耐力再生
- **相关技能**"坚持"技能可在无耐力战斗时升级,降低惩罚
#### 经验获取(优化)
- **每次攻击**
- 主经验 = 敌人基础经验 × 10%
- 武器技能经验 = 敌人基础经验 × 5%
- **战斗胜利**
- 主经验 = 敌人基础经验 × 90%
- 武器技能经验 = 敌人基础经验 × 30%
- **难度加成**:更强敌人提供更多经验
- **群体加成**:多敌人时经验 × √敌人数量
-8个敌人经验倍率 = √8 ≈ 2.83倍
#### 掉落系统(创新)
- **掉落衰减机制**
- 同种敌人杀得越多,掉落率越低
- 最多降到初始的10%击杀999+后)
- 避免玩家刷同一个敌人
- **掉落恢复**
- 随时间缓慢恢复
- 恢复速度很慢,鼓励探索新区域
#### 战斗失败
- **后果**:返回上次休息的城镇/安全区
- **恢复**回复50%基础生命值
- **惩罚**:不掉落物品(友好的失败惩罚)
### 2.5 经济系统(参考 YAIRPG
#### 货币系统
- **铜币Copper**:基础货币
- **银币Silver**1银币 = 100铜币
- **金币Gold**1金币 = 100银币 = 10,000铜币
#### 市场饱和系统(创新)
**核心机制**:玩家出售同种物品越多,价格越低
1. **价格衰减**
- 初始价格100%
- 最低价格初始价格的10%
- 衰减速度:基于出售数量
- 击杀999+同种敌人后,价格降至最低
2. **价格恢复**
- 随时间缓慢恢复
- 恢复速度很慢(游戏时间数天)
- 应用于所有商人
3. **设计目的**
- 鼓励探索不同区域
- 避免刷同一个敌人
- 增加经济深度
#### 交易系统
1. **买卖差价**
- 商人售价200%基础价格(通常)
- 商人收购价30%-50%基础价格
- **讨价还价技能**:降低差价
- 技能Lv.max售价200% → 150%差价从100%降至50%
2. **价格波动**
- 每天刷新一次价格
- 浮动范围±10% ~ ±50%(商品类型不同)
- 黑市波动更大±40%
3. **市场类型**
- **常规市场**始终开放商品品质最高120%
- **黑市**
- 开放时间:周三、周六 20:00-24:00游戏时间
- 特殊商品:中级装备、技能书、稀有物品
- 更高品质可能
- 回收价格50%优于常规市场30%
#### NPC服务系统
1. **战斗教练**
- 购买战斗经验
- 解锁战斗技能
- 提供训练服务
2. **训练假人**
- 购买武器经验
- 消耗耐力训练
- 不需要战斗
3. **特殊NPC**(黑市):
- 奴隶贩子:触发特殊剧情
- 神秘商人:出售稀有物品
### 2.6 区域与环境系统
#### 区域类型
1. **安全区**
- 城镇、营地
- 可休息恢复
- 无敌人
2. **普通区域**
- 日夜循环影响
- 夜间20:00-04:00有轻微惩罚
3. **黑暗区域**
- 洞穴、地下城
- 始终有黑暗惩罚
- 夜视技能可减少惩罚
4. **特殊区域**
- 狭窄空间闪避惩罚EP-30%
- 开阔空间:无惩罚
- 恶劣环境:各种特殊惩罚
#### 环境惩罚与适应
| 环境 | 惩罚 | 适应技能 |
| -------- | ----------- | -------------------- |
| 黑暗 | AP/EP各-20% | 夜视(被动获得经验) |
| 狭窄 | EP-30% | 狭窄空间战斗 |
| 恶劣天气 | AP/EP各-10% | 恶劣环境生存 |
**技能获得**
- 在环境中被动获得经验
- 无需额外操作
- 技能等级降低惩罚
#### 区域解锁机制
1. **技能等级解锁**
- 阅读Lv.5 → 解锁图书馆
- 战斗技能Lv.10 → 解锁高级训练场
2. **区域通关解锁**
- 击败区域Boss → 解锁下一区域
- 可能需要多次通关
3. **NPC对话解锁**
- 与特定NPC对话 → 获得新区域信息
- 完成任务 → 解锁新区域
4. **物品解锁**
- 获得特定物品 → 解锁相关区域
- 例:获得地图 → 解锁新区域
#### 区域活动系统
1. **战斗活动**
- 探索:随机遇敌
- 剿灭:消灭指定数量敌人
- Boss战挑战强大敌人
2. **资源活动**
- 采集:获得素材
- 狩猎:获得食物和素材
- 采矿:获得矿石
3. **工作活动**
- 时间限制(某些仅在白天开放)
- 获得货币和技能经验
- 可能受技能等级影响收益
### 2.7 挂机任务系统(优化)
#### 任务类型
1. **主动挂机任务**
- **阅读**:消耗书籍,获得阅读经验
- **训练**:消耗耐力,获得武器技能经验
- **工作**:获得货币和技能经验
- **祈祷**:获得信仰经验(需要圣经)
2. **被动挂机任务**
- **环境适应**:在特定环境中被动获得经验(夜视等)
- **负面状态**:虫子咬、流血等,获得坚韧经验
- **装备适应**:装备特定装备获得相关经验(铁皮等)
#### 任务互斥规则
1. **完全互斥**
- 战斗 ↔ 训练
- 不同战斗区域
- 不同工作活动
2. **条件互斥**
- 阅读 ↔ 其他主动任务
- 有一心多用技能可同时进行1个额外任务
- 战斗 ↔ 阅读
- 有一心多用技能可同时
3. **不互斥**
- 被动任务可与任何任务同时进行
- 可同时有无数个被动任务
#### 经验获取机制
- **挂机期间**:每秒获得技能经验
- **基础效率**:技能等级影响获取速度
- **父技能加成**:父技能等级高于子技能时,提供经验倍率
- **完成任务**:获得额外经验奖励
### 2.8 时间与离线系统
#### 游戏时间系统
- **时间流速**现实1秒 = 游戏时间5分钟
- **时间显示**Day X HH:MM
- **日夜循环**
- 白天06:00-20:00
- 夜晚20:00-06:00
- 夜晚在普通区域有轻微惩罚
#### 时间作用
1. **市场刷新**
- 每天刷新一次价格
- 黑市在特定时间开放
2. **活动限制**
- 某些工作仅在白天开放
- 夜晚影响探索效率
3. **事件触发**
- 特定时间触发特殊事件
- 日夜影响某些敌人
#### 离线收益系统
1. **基础计算时间**0.5小时30分钟
2. **广告延长**看广告延长至2.5小时
3. **收益计算**
- 基于挂机任务的正常收益
- 不包括战斗收益
- 技能经验按时间计算
4. **离线惩罚**
- 超过计算时间的部分不计
- 鼓励定期登录
### 2.9 图鉴与成就系统
#### 敌人图鉴
- **解锁条件**:首次击败敌人
- **显示信息**
- 敌人属性
- 掉落物品和概率
- 击杀数量
- 击败奖励
#### 物品图鉴
- **解锁条件**:首次获得物品
- **显示信息**
- 物品属性
- 获取方式
- 用途说明
#### 成就系统
1. **战斗成就**
- 击败特定敌人
- 击杀数量达到目标
- 无伤通关等
2. **技能成就**
- 技能达到特定等级
- 解锁所有技能
- 技能里程碑达成
3. **探索成就**
- 解锁所有区域
- 完成特定探索
- 发现隐藏内容
4. **收集成就**
- 收集品质达到特定值
- 收集特定装备
- 图鉴完成度
---
## 3. 数值设计(优化版)
### 3.1 主等级成长
- **经验公式**100 × 1.2^(等级-1)
- **升级奖励**:少量基础属性 + 解锁高级技能上限
- **定位**:作为参考指标,不是主要成长手段
### 3.2 技能成长
- **经验公式**:等级 × 基础系数
- **玩家等级限制**:技能等级 ≤ 玩家等级 × 2
- **里程碑奖励**:特定等级提供全局加成
### 3.3 战斗数值平衡
- **敌人生成**:基于区域等级范围
- **属性成长**:每级+10%
- **经验曲线**:与敌人强度相关
### 3.4 经济平衡
- **金币获取**:战斗掉落、工作、出售物品
- **金币消耗**:购买装备、书籍、训练服务
- **市场饱和**:防止刷钱机制
- **价格波动**:增加经济深度
---
## 4. 核心创新点总结
### 4.1 技能里程碑系统
- 技能达到特定等级提供**永久性全局奖励**
- 鼓励玩家提升多种技能
- 提供长期目标感
### 4.2 父技能系统
- 父技能自动继承最高子技能等级
- 为低级子技能提供经验倍率加成
- 增加技能系统深度
### 4.3 装备品质系统
- 6级品质系统垃圾到传说
- 品质影响装备所有属性
- 稀有度提供额外乘数
- 增加装备收集乐趣
### 4.4 AP/EP命中系统
- 非线性命中计算
- AP与EP比例决定命中概率
- 环境因素影响AP/EP
- 增加战斗策略性
### 4.5 三层防御机制
1. 闪避(完全避免)
2. 护盾(吸收伤害)
3. 防御力(减少伤害)
### 4.6 市场饱和系统
- 同种物品出售越多,价格越低
- 最低降至原价的10%
- 随时间缓慢恢复
- 鼓励探索不同区域
### 4.7 掉落衰减系统
- 同种敌人杀得越多,掉落率越低
- 最低降至初始的10%
- 随时间缓慢恢复
- 避免刷同一个敌人
### 4.8 部分效率机制
- 即使条件未完全满足也能获得50%经验
- 降低玩家挫败感
- 保持游戏流畅性
---
## 5. 设计理念对比
### 5.1 与原设计对比
| 方面 | 原设计 | 新设计 | 改进 |
| -------- | ---------- | --------------------- | -------- |
| 属性系统 | 简单5属性 | 5主属性+5次属性+AP/EP | 更深度 |
| 技能系统 | 简单升级 | 里程碑+父技能+多分类 | 更丰富 |
| 装备系统 | 基础装备 | 6级品质系统 | 更有追求 |
| 战斗系统 | 简单回合制 | AP/EP+姿态+耐力 | 更策略 |
| 经济系统 | 简单买卖 | 市场饱和+价格波动 | 更真实 |
| 掉落系统 | 固定概率 | 衰减+恢复机制 | 更平衡 |
### 5.2 借鉴YAIRPG的核心点
✓ 技能里程碑系统
✓ 父技能系统
✓ 装备品质系统
✓ AP/EP命中系统
✓ 三层防御机制
✓ 市场饱和系统
✓ 掉落衰减系统
✓ 战斗姿态系统
✓ 环境惩罚与适应
✓ 部分效率机制
### 5.3 保持原有特色
✓ 纯文字UI风格
✓ 挂机养成核心
✓ 技能驱动成长
✓ 渐进式解锁
✓ 末世生存主题
---
## 6. 开发建议
### 6.1 实现优先级
**Phase 1核心框架必须**
1. 玩家数据管理
2. 技能系统(基础)
3. 物品系统(基础)
4. 数据持久化
**Phase 2核心玩法必须**
1. 战斗系统(基础版)
2. 挂机任务系统
3. 经验获取机制
**Phase 3高级系统重要**
1. 装备品质系统
2. 技能里程碑系统
3. AP/EP战斗系统
4. 战斗姿态系统
**Phase 4扩展系统可选**
1. 经济系统(市场饱和)
2. 区域环境系统
3. 图鉴成就系统
4. 父技能系统
**Phase 5优化打磨可选**
1. UI/UX优化
2. 数值平衡调整
3. 性能优化
4. 剧情事件
### 6.2 技术要点
1. **数据结构设计**
- 灵活的技能系统
- 可扩展的物品系统
- 高效的战斗计算
2. **性能优化**
- 定时器管理
- 计算属性缓存
- 虚拟列表(长列表)
3. **数据验证**
- 物品/技能使用前检查
- 防止异常数据
- 定期保存机制
### 6.3 平衡性测试
1. **数值测试**
- 技能升级速度
- 战斗难度曲线
- 经济平衡
2. **玩法测试**
- 挂机效率
- 探索动力
- 长期目标感
3. **边界测试**
- 技能满级
- 物品用完
- 极端数值
---
## 7. 结语
本设计文档在原有设计基础上深度借鉴了Yet Another Idle RPG和Proto23的优秀设计理念创建了一个更加深度、平衡、有策略性的挂机养成游戏系统。
**核心改进**
1. 从简单升级变为深度技能系统
2. 从基础装备变为品质追求系统
3. 从简单战斗变为策略性战斗
4. 从简单经济变为动态经济系统
**设计目标**
- 提供长期目标感(技能里程碑、装备品质)
- 保持挂机友好(离线收益、自动战斗)
- 增加策略深度(战斗姿态、装备搭配)
- 鼓励探索(市场饱和、掉落衰减)
这个设计可以作为开发的基础,后续可根据实际情况调整细节和平衡性。
### 5.1 玩家数据结构
```javascript
{
// 基础属性
baseStats: { health, attack, defense, speed, sanity },
// 最终属性
finalStats: { health, attack, defense, speed, sanity, criticalChance },
// 主等级
level: { current, currentExp, maxExp },
// 技能
skills: {
"skillId": { level, exp, unlocked }
},
// 物品
obtainedItems: [],
readBooks: [],
inventory: [
{ itemId, count }
],
// 货币(铜币为单位)
currency: { copper },
// 位置
currentLocation: "locationId",
// 战斗状态
inCombat: false,
combatState: null,
// 挂机任务
activeTasks: [],
negativeStatus: [],
// 市场价格
marketPrices: {
lastRefreshDay: 1,
prices: {}
},
// 离线奖励
offlineReward: {
maxOfflineHours: 0.5,
adBonusTime: 0,
lastAdTime: null
},
// 游戏时间
gameTime: {
day: 1,
hour: 8,
minute: 0,
totalMinutes: 480
},
// 上次登录时间
lastLoginTime: timestamp
}
```
### 5.2 配置文件结构
- **items.js**:所有物品配置
- **skills.js**:所有技能配置
- **locations.js**:地点、敌人、掉落配置
- **market.js**市场、NPC配置
---
## 6. 扩展性设计
### 6.1 新增技能
1. 在 skills.js 添加配置
2. 在物品中添加解锁条件
3. 实现技能效果(如有特殊效果)
### 6.2 新增物品
1. 在 items.js 添加配置
2. 设置解锁技能或效果
3. 在市场或掉落表中添加
### 6.3 新增地点
1. 在 locations.js 添加地点配置
2. 添加敌人列表
3. 创建掉落表
### 6.4 新增剧情
1. 在物品或NPC中添加 special_event
2. 在 EventManager 中处理事件
---
## 7. 开发优先级
### Phase 1核心框架
1. 玩家数据管理
2. 技能系统(解锁、升级)
3. 物品系统(获得、使用)
4. 数据持久化
### Phase 2核心玩法
1. 战斗系统
2. 任务系统(挂机)
3. 经验获取
### Phase 3扩展系统
1. 市场系统
2. 地点探索
3. 掉落系统
### Phase 4UI完善
1. 主界面
2. 状态页
3. 背包页
4. 战斗页
5. 市场页
### Phase 5优化扩展
1. 离线收益
2. 时间系统
3. 特殊技能(一心多用)
4. 剧情事件
---
## 8. 技术要点
### 8.1 关键技术
- **框架**uni-appVue 3
- **存储**uni.setStorageSync/getStorageSync
- **定时器**setInterval游戏循环
- **计算属性**:动态计算最终属性
### 8.2 注意事项
1. **eval使用**技能效果公式使用eval需确保公式安全
2. **数据验证**:物品、技能使用前检查条件
3. **保存频率**:每次状态改变都要保存
4. **内存管理**:定时器注意清理
### 8.3 性能优化
- 节流/防抖:频繁操作(如点击)
- 虚拟列表:物品列表较长时
- 延迟加载:非关键数据
---
## 9. 测试要点
### 9.1 功能测试
- [ ] 新游戏创建
- [ ] 物品获得和解锁技能
- [ ] 技能升级和属性加成
- [ ] 战斗流程和经验获取
- [ ] 市场交易
- [ ] 任务挂机
- [ ] 离线收益
- [ ] 数据保存和加载
### 9.2 数值平衡
- [ ] 主等级成长速度
- [ ] 技能升级难度
- [ ] 战斗难度曲线
- [ ] 经济平衡(金币获取/消耗)
- [ ] 时间流速
### 9.3 边界情况
- [ ] 物品用完
- [ ] 技能满级
- [ ] 负面状态叠加
- [ ] 数据异常(如负数)
---
## 10. 未来规划
### 10.1 内容扩展
- 更多技能类型
- 更多地点和敌人
- 更多物品和装备
- 成就系统
- 任务线(剧情)
### 10.2 功能扩展
- 多存档位
- 云存档
- 排行榜
- 社交功能(交易、对比)
### 10.3 优化方向
- UI美化可选图片
- 音效
- 动画效果
- 数据统计
---
## 11. 界面设计规范
### 11.1 整体布局架构
采用**单页面架构**,所有内容在一个页面内通过组件切换实现,保持游戏状态连续性。
```
┌─────────────────────────────────────┐
│ [Tab名称] Day 1 08:00 │ ← 顶部标题栏 (80rpx)
├─────────────────────────────────────┤
│ │
│ │
│ 内容区域 │ ← 中部面板区域
│ (状态 / 地图 / 日志 切换显示) │ (flex: 1)
│ │
│ │
│ │
├─────────────────────────────────────┤
│ [状态] [地图] [日志] │ ← 底部导航 (100rpx)
└─────────────────────────────────────┘
┌─────────────────┐
│ 背包抽屉 │ ← 右侧滑出 (600rpx)
│ InventoryDrawer│ 地图面板「背包」按钮唤出
└─────────────────┘
┌─────────────────┐
│ 事件对话抽屉 │ ← 右侧滑出 (600rpx)
│ EventDrawer │ 事件触发时自动弹出
└─────────────────┘
```
### 11.2 面板详细设计
#### 11.2.1 状态面板 (StatusPanel)
上下分区布局:
```
┌─────────────────────────────────────┐
│ ▓▓▓▓▓▓▓▓░░ HP 80/100 │ ← 生命值进度条
│ ▓▓▓▓▓▓▓▓▓▓ 耐力 100/100 │ ← 耐力进度条
│ ▓▓▓▓▓▓▓▓▓░ 精神 90/100 │ ← 精神进度条
│ │
│ 力量 12 敏捷 10 灵巧 11 智力 10 │ ← 主属性摘要
│ 💰 0金 5银 230铜 │ ← 货币显示
│ │
│ ▼ 更多属性 ──────────────────────── │ ← Collapse 折叠面板
│ ┌─────────────────────────────────┐ │
│ │ 攻击力: 45 防御力: 12 │ │
│ │ 暴击率: 5% 暴击伤害: 1.5x │ │
│ │ AP: 18 EP: 15 │ │
│ │ 攻击速度: 1.0 │ │
│ │ ─────────────────────────────── │ │
│ │ 装备: 木棍 | 无护甲 │ │
│ └─────────────────────────────────┘ │
│ ─────────────────────────────────── │
│ [全部] [战斗] [生活] [特殊] [被动] │ ← 技能筛选 FilterTabs
│ ┌─────────────────────────────────┐ │
│ │ ⚔ 木棍精通 Lv.1 ▓░░░░ │ │ ← 技能列表
│ │ 📖 阅读 Lv.0 ░░░░░ │ │ scroll-view
│ │ 👁 夜视 Lv.0 ░░░░░ 🔒 │ │ 未解锁显示锁
│ └─────────────────────────────────┘ │
└─────────────────────────────────────┘
```
#### 11.2.2 地图面板 (MapPanel)
顶部战斗状态 + 区域列表 + 操作区:
```
┌─────────────────────────────────────┐
│ 📍 测试营地 [📦 背包] │ ← 当前位置 + 背包按钮
│ 环境: 安全区 │
├─────────────────────────────────────┤
│ ═══ 战斗中 ═══════════════════════ │ ← 战斗状态区(战斗时显示)
│ 🐕 野狗 ▓▓▓▓▓▓░░░░ 18/30 │
│ [攻击] [防御] [平衡] ← 姿态切换 │
├─────────────────────────────────────┤
│ ── 可前往区域 ──────────────────── │
│ ┌─────────────────────────────────┐ │
│ │ 🏪 测试市场 [安全] → │ │ ← 区域列表
│ │ 🌙 测试黑市 [安全] → │ │ scroll-view
│ │ 🌲 测试野外1 [普通] → │ │
│ │ 🦴 测试Boss巢 [危险] 🔒 │ │ 锁=未解锁
│ │ 🕳 地下室 [黑暗] 🔒 │ │
│ └─────────────────────────────────┘ │
├─────────────────────────────────────┤
│ [探索] [剿灭] [工作] [休息] │ ← 区域活动按钮
└─────────────────────────────────────┘
```
#### 11.2.3 日志面板 (LogPanel)
实时战斗日志 + 系统消息:
```
┌─────────────────────────────────────┐
│ ┌─────────────────────────────────┐ │
│ │ [08:00] 你进入了测试野外1 │ │ ← info (灰色)
│ │ [08:01] 遭遇了 野狗! │ │ ← system (青色)
│ │ [08:01] 你攻击野狗造成12点伤害│ │ ← combat (红色)
│ │ [08:01] 野狗攻击你,你闪避了! │ │ ← combat
│ │ [08:02] 暴击! 造成24点伤害 │ │ ← combat (红色+高亮)
│ │ [08:02] 野狗被击败了! │ │ ← system (青色)
│ │ [08:02] 获得: 狗皮 x1, 15铜币 │ │ ← reward (黄色)
│ │ [08:02] 木棍精通 +5 经验 │ │ ← reward
│ │ │ │
│ │ ▼ │ │ ← 自动滚动到底部
│ └─────────────────────────────────┘ │
└─────────────────────────────────────┘
```
### 11.3 颜色规范
```scss
// 背景色
$bg-primary: #0a0a0f; // 主背景 - 深黑
$bg-secondary: #1a1a2e; // 次级背景 - 深蓝黑
$bg-tertiary: #252542; // 三级背景 - 卡片/面板
// 文字色
$text-primary: #e0e0e0; // 主文字 - 浅灰白
$text-secondary: #808080; // 次要文字 - 灰色
$text-muted: #4a4a4a; // 禁用文字 - 深灰
// 强调色
$accent: #4ecdc4; // 主强调 - 青色 (系统消息)
$danger: #ff6b6b; // 危险 - 红色 (战斗/HP低)
$warning: #ffe66d; // 警告 - 黄色 (奖励/重要)
$success: #4ade80; // 成功 - 绿色
// 品质颜色
$quality-trash: #808080; // 垃圾 - 灰色
$quality-common: #ffffff; // 普通 - 白色
$quality-good: #4ade80; // 优秀 - 绿色
$quality-rare: #60a5fa; // 稀有 - 蓝色
$quality-epic: #a855f7; // 史诗 - 紫色
$quality-legend: #f97316; // 传说 - 橙色
// 边框色
$border-color: #2a2a3e; // 边框 - 深紫灰
$border-active: #4ecdc4; // 激活边框 - 青色
```
### 11.4 组件规范
#### 11.4.1 目录结构
```
components/
├── common/
│ ├── ProgressBar.vue // 进度条 (HP/耐力/经验)
│ ├── StatItem.vue // 属性显示行
│ ├── TextButton.vue // 文字按钮
│ ├── Collapse.vue // 折叠面板
│ └── FilterTabs.vue // 筛选标签组
├── layout/
│ ├── TabBar.vue // 底部导航栏
│ └── Drawer.vue // 右侧抽屉
├── panels/
│ ├── StatusPanel.vue // 状态面板
│ ├── MapPanel.vue // 地图面板
│ └── LogPanel.vue // 日志面板
└── drawers/
├── InventoryDrawer.vue // 背包抽屉
└── EventDrawer.vue // 事件对话抽屉
```
#### 11.4.2 组件Props规范
**ProgressBar**
| Prop | Type | Default | Description |
| -------- | ------- | ------- | ------------ |
| value | Number | 0 | 当前值 |
| max | Number | 100 | 最大值 |
| color | String | $accent | 进度条颜色 |
| showText | Boolean | true | 显示数值文本 |
| height | String | '16rpx' | 进度条高度 |
**Collapse**
| Prop | Type | Default | Description |
| -------- | ------- | ------- | ----------- |
| title | String | '' | 折叠标题 |
| expanded | Boolean | false | 是否展开 |
**FilterTabs**
| Prop | Type | Default | Description |
| ---------- | ------ | ------- | ---------------------- |
| tabs | Array | [] | 标签列表 [{id, label}] |
| modelValue | String | '' | 当前选中 |
**Drawer**
| Prop | Type | Default | Description |
| ------- | ------- | -------- | ----------- |
| visible | Boolean | false | 是否显示 |
| width | String | '600rpx' | 抽屉宽度 |
---
## 12. 测试场景配置
### 12.1 初始剧情
**「测试实验室」**
> 你在一个废弃的实验室中醒来,记忆模糊。桌上放着一根木棍和一本破旧的日记。
> 门外传来野兽的嚎叫声......
### 12.2 区域地图
```
┌─────────────┐
│ 测试营地 │ ← 起点/安全区
│ (受伤冒险者) │
└──────┬──────┘
┌───────────────┼───────────────┐
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 测试市场 │ │ 测试黑市 │ │ 测试野外1 │
│ (商人老张) │ │ (神秘人) │ │ (野狗) │
└─────────────┘ └─────────────┘ └──────┬──────┘
┌─────────────┐
│ 测试Boss巢 │ ← 需击败野狗x5解锁
│ (测试Boss) │
└──────┬──────┘
▼ (需要钥匙)
┌─────────────┐
│ 地下室 │ ← 黑暗区域
│ (黑暗) │
└─────────────┘
```
#### 区域配置表
| 区域ID | 名称 | 类型 | 环境 | 解锁条件 | 活动 |
| ----------- | ---------- | ------- | ---- | ---------- | -------------- |
| camp | 测试营地 | safe | 无 | 初始 | 休息、对话 |
| market | 测试市场 | safe | 无 | 初始 | 交易 |
| blackmarket | 测试黑市 | safe | 无 | 初始 | 特殊交易 |
| wild1 | 测试野外1 | normal | 无 | 初始 | 探索、战斗 |
| boss_lair | 测试Boss巢 | danger | 无 | 击杀野狗x5 | Boss战 |
| basement | 地下室 | dungeon | dark | Boss钥匙 | 探索、阅读测试 |
### 12.3 测试敌人
| 敌人ID | 名称 | 位置 | HP | 攻击力 | 防御 | 速度 | 经验 | 掉落 |
| --------- | -------- | --------- | --- | ------ | ---- | ---- | ---- | --------------------------------------- |
| wild_dog | 野狗 | wild1 | 30 | 8 | 2 | 1.0 | 15 | 狗皮(80%), 狗牙(30%), 5-15铜 |
| test_boss | 测试Boss | boss_lair | 200 | 25 | 10 | 0.8 | 150 | 地下室钥匙(100%), 技能书(50%), 50-100铜 |
### 12.4 测试物品
#### 武器
| 物品ID | 名称 | 类型 | 基础攻击 | 速度 | 解锁技能 | 说明 |
| ------------ | ---- | ------ | -------- | ---- | ------------- | -------- |
| wooden_stick | 木棍 | weapon | 5 | 1.0 | stick_mastery | 初始武器 |
#### 消耗品
| 物品ID | 名称 | 类型 | 效果 | 价值 | 说明 |
| ------------ | ---- | ---------- | ---------- | ---- | -------- |
| bread | 面包 | consumable | 恢复耐力20 | 10铜 | 基础食物 |
| healing_herb | 草药 | consumable | 恢复HP15 | 15铜 | 基础药品 |
#### 书籍
| 物品ID | 名称 | 类型 | 阅读时间 | 经验 | 完成奖励 | 说明 |
| -------- | -------- | ---- | -------- | ------- | -------- | -------- |
| old_book | 破旧书籍 | book | 60秒 | 阅读+10 | 无 | 测试阅读 |
#### 素材/关键道具
| 物品ID | 名称 | 类型 | 价值 | 说明 |
| ------------ | ---------- | -------- | ---- | -------------------- |
| dog_skin | 狗皮 | material | 5铜 | 野狗掉落 |
| dog_tooth | 狗牙 | material | 8铜 | 野狗掉落 |
| basement_key | 地下室钥匙 | key | - | Boss掉落解锁地下室 |
### 12.5 测试NPC
| NPC ID | 名称 | 位置 | 功能 | 对话 |
| ------------------ | ------------ | ----------- | -------- | ------------------------ |
| injured_adventurer | 受伤的冒险者 | camp | 初始剧情 | 介绍世界观,提示前往野外 |
| merchant_zhang | 商人老张 | market | 交易 | 买卖物品,测试差价 |
| mysterious_man | 神秘人 | blackmarket | 黑市交易 | 特殊物品,更高品质 |
### 12.6 测试事件
| 事件ID | 触发条件 | 类型 | 内容 |
| ------------ | -------------- | ------- | -------------------------- |
| intro | 新游戏 | story | 测试实验室开场剧情 |
| first_combat | 首次进入wild1 | tips | 战斗教程提示 |
| boss_unlock | 击杀野狗x5 | unlock | 解锁Boss巢提示 |
| boss_defeat | 首次击败Boss | story | Boss剧情+获得钥匙 |
| dark_warning | 进入basement | tips | 黑暗惩罚警告 |
| dark_reading | 在basement阅读 | special | 阅读效率-50%,夜视被动获取 |
### 12.7 测试验证清单
| 测试项 | 区域 | 验证内容 | 预期结果 |
| -------- | ---------- | ----------------- | ------------------ |
| 交易 | 测试市场 | 买卖物品、差价 | 买入200%卖出30% |
| 黑市 | 测试黑市 | 特殊商品 | 更高品质装备可购买 |
| 战斗 | 测试野外1 | AP/EP、姿态、经验 | 正常战斗流程 |
| Boss战 | 测试Boss巢 | 高难战斗 | 击败后掉落钥匙 |
| 环境惩罚 | 地下室 | 黑暗AP/EP-20% | 命中闪避降低 |
| 黑暗阅读 | 地下室 | 阅读效率-50% | 阅读时间翻倍 |
| NPC对话 | 测试营地 | EventDrawer弹出 | 对话正常显示 |
| 物品使用 | 任意 | 装备/使用/出售 | 功能正常 |
---
## 13. 开发步骤文档
### Phase 1: 基础框架搭建
**目标**: 项目目录结构、依赖安装、全局样式
#### 任务清单
- [ ] 1.1 创建目录结构
```
components/common/
components/layout/
components/panels/
components/drawers/
store/
config/
utils/
```
- [ ] 1.2 安装 Pinia: `npm install pinia`
- [ ] 1.3 修改 `main.js` 引入 Pinia
- [ ] 1.4 修改 `uni.scss` 添加颜色变量
- [ ] 1.5 修改 `App.vue` 添加全局样式
#### 验收标准
- 项目可正常运行
- 全局样式生效(暗色背景)
---
### Phase 2: 通用组件开发
**目标**: 完成所有基础UI组件
#### 任务清单
- [ ] 2.1 `ProgressBar.vue` - 进度条组件
- [ ] 2.2 `StatItem.vue` - 属性显示行
- [ ] 2.3 `TextButton.vue` - 文字按钮
- [ ] 2.4 `Collapse.vue` - 折叠面板
- [ ] 2.5 `FilterTabs.vue` - 筛选标签组
- [ ] 2.6 `TabBar.vue` - 底部导航栏
- [ ] 2.7 `Drawer.vue` - 右侧抽屉
#### 验收标准
- 每个组件可独立使用
- 样式符合设计规范
---
### Phase 3: 核心面板开发
**目标**: 完成三大主面板
#### 任务清单
- [ ] 3.1 `StatusPanel.vue` - 状态面板
- 上区HP/耐力/精神 + 主属性 + 货币 + Collapse更多
- 下区FilterTabs + 技能列表
- [ ] 3.2 `MapPanel.vue` - 地图面板
- 顶部状态区(位置/战斗状态)
- 区域列表
- 操作按钮 + 背包入口
- [ ] 3.3 `LogPanel.vue` - 日志面板
- scroll-view + 自动滚动
- 分类样式combat/system/reward/info
- [ ] 3.4 重构 `pages/index/index.vue` 为游戏容器
- 顶部标题栏
- v-show 面板切换
- TabBar 集成
#### 验收标准
- 三个Tab可正常切换
- 面板布局符合设计稿
---
### Phase 4: 抽屉组件开发
**目标**: 完成侧边抽屉
#### 任务清单
- [ ] 4.1 `InventoryDrawer.vue` - 背包抽屉
- FilterTabs 分类
- 物品列表
- 物品详情/操作
- [ ] 4.2 `EventDrawer.vue` - 事件对话抽屉
- NPC信息区
- 对话文本区
- 选项按钮
#### 验收标准
- 地图面板「背包」按钮可打开抽屉
- 抽屉动画流畅
---
### Phase 5: 数据层实现
**目标**: Pinia Store + 游戏配置
#### 任务清单
- [ ] 5.1 `store/player.js` - 玩家状态
- baseStats, finalStats, level
- skills, inventory, equipment
- currency, currentLocation
- [ ] 5.2 `store/game.js` - 游戏状态
- currentTab, drawerState
- logs[], gameTime
- inCombat, combatState, activeTasks
- [ ] 5.3 `config/constants.js` - 数值常量
- [ ] 5.4 `config/skills.js` - 技能配置
- [ ] 5.5 `config/items.js` - 物品配置
- [ ] 5.6 `config/locations.js` - 区域配置
- [ ] 5.7 `config/enemies.js` - 敌人配置
- [ ] 5.8 `config/npcs.js` - NPC配置
- [ ] 5.9 `config/events.js` - 事件配置
#### 验收标准
- Store可正常读写
- 配置文件结构完整
---
### Phase 6: 核心系统实现
**目标**: 实现核心玩法逻辑
#### 任务清单
- [ ] 6.1 `utils/skillSystem.js` - 技能系统
- 经验添加、升级判定
- 里程碑检测、父技能同步
- [ ] 6.2 `utils/combatSystem.js` - 战斗系统
- AP/EP命中计算
- 三层防御(闪避/护盾/防御)
- 战斗tick、日志输出
- [ ] 6.3 `utils/itemSystem.js` - 物品系统
- 使用、装备、卸下
- 品质属性计算
- [ ] 6.4 `utils/taskSystem.js` - 任务系统
- 挂机任务管理
- 互斥检测
- [ ] 6.5 `utils/eventSystem.js` - 事件系统
- 事件触发检测
- 对话管理
- [ ] 6.6 `utils/environmentSystem.js` - 环境系统
- 环境惩罚计算
- 被动技能获取
#### 验收标准
- 战斗流程完整
- 技能可升级
- 物品可使用/装备
---
### Phase 7: 游戏循环实现
**目标**: 主循环、持久化、离线收益
#### 任务清单
- [ ] 7.1 `utils/gameLoop.js` - 游戏主循环
- 每秒tick
- 时间推进、战斗处理
- 任务经验、耐力恢复
- [ ] 7.2 `utils/storage.js` - 存储系统
- saveGame(), loadGame(), resetGame()
- logs[]不持久化
- [ ] 7.3 修改 `App.vue`
- onLaunch: 加载存档 + 启动循环
- onHide: 自动保存
#### 验收标准
- 游戏时间正常流逝
- 关闭后重开数据保留
- 战斗可自动进行
---
### Phase 8: 集成测试
**目标**: 按测试清单验证所有功能
#### 任务清单
- [ ] 8.1 新游戏流程测试
- [ ] 8.2 交易系统测试(市场/黑市)
- [ ] 8.3 战斗系统测试(野狗/Boss
- [ ] 8.4 环境系统测试(黑暗惩罚)
- [ ] 8.5 阅读系统测试(正常/黑暗)
- [ ] 8.6 NPC对话测试
- [ ] 8.7 物品系统测试(使用/装备/出售)
- [ ] 8.8 技能系统测试(升级/里程碑)
- [ ] 8.9 存档系统测试
#### 验收标准
- 所有测试项通过
- 无严重BUG
---
### 开发时间估算
| Phase | 预估时间 | 说明 |
| -------------- | ------------- | ---------------- |
| Phase 1 | 0.5天 | 基础配置 |
| Phase 2 | 1天 | 7个组件 |
| Phase 3 | 1.5天 | 3个面板 + 主页面 |
| Phase 4 | 1天 | 2个抽屉 |
| Phase 5 | 1天 | Store + 配置 |
| Phase 6 | 2天 | 核心系统 |
| Phase 7 | 1天 | 循环 + 存储 |
| Phase 8 | 1天 | 测试修复 |
| **总计** | **9天** | - |