Files
text-adventure-game/设计文档.md
Claude cb412544e9 Initial commit: Text Adventure Game
Features:
- Combat system with AP/EP hit calculation and three-layer defense
- Auto-combat/farming mode
- Item system with stacking support
- Skill system with levels, milestones, and parent skill sync
- Shop system with dynamic pricing
- Inventory management with bulk selling
- Event system
- Game loop with offline earnings
- Save/Load system

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 17:13:51 +08:00

50 KiB
Raw Permalink Blame 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 特殊事件消耗

最终属性计算规则

// 示例计算逻辑
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计算

AP = 灵巧 + 智力×0.2 + 技能加成 + 装备加成 + 姿态加成 - 敌人数惩罚

EPEvasion Points计算

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:基础货币
  • 银币Silver1银币 = 100铜币
  • 金币Gold1金币 = 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 玩家数据结构

{
  // 基础属性
  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 颜色规范

// 背景色
$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天 -