Files
gold_dolphin/unity/.qoder/specs/亡灵灯笼游戏设计_task-982.md
T
2026-06-29 02:48:13 +08:00

476 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 亡灵灯笼 - 游戏设计文档
## 🎮 游戏概述
**游戏名称**: 亡灵灯笼 (Soul Lantern)
**游戏类型**: 2.5D 冒险解谜 + 生存收集
**核心玩法**: 探索黑暗迷宫 → 收集亡灵 → 躲避怪物和陷阱 → 解救亡灵
**视觉风格**: 2.5D等距视角,黑暗氛围,灯笼光照效果
**目标平台**: PC (可扩展到移动端)
---
## 🎯 核心游戏循环
```
1. 探索阶段
- 玩家在黑暗迷宫中探索
- 灯笼提供有限视野
- 铃铛声会吸引怪物
2. 收集阶段
- 找到被困的亡灵
- 使用技能将亡灵收入灯笼
- 灯笼亮度和铃铛范围增加
3. 危险阶段
- 怪物被铃声吸引,开始追击
- 触发陷阱和机关
- 需要躲避或战斗
4. 逃脱阶段
- 找到出口或传送门
- 切换到下一张地图
- 保存进度
```
---
## 🕹️ 玩家系统
### 1. 灯笼系统 (Lantern System)
**核心道具**: 魔法灯笼
| 属性 | 初始值 | 升级方式 |
|-----|--------|---------|
| **照亮范围** | 5m | 收集亡灵后增加 |
| **铃铛范围** | 10m | 收集亡灵后增加 |
| **亡灵容量** | 3个 | 升级灯笼 |
| **特殊技能CD** | 10秒 | 升级技能 |
**功能**:
-**照明**: 提供周围视野(已实现LightMaskSystem
-**铃铛**: 按E释放声波(已实现EchoSystem
-**收集**: 靠近亡灵时自动收入灯笼
-**技能**: 按Q释放"灵魂冲击"(范围眩晕)
**视觉效果**:
```
灯笼亮度 = 基础亮度 + (亡灵数量 × 单个亡灵亮度)
视野半径 = 5m + (亡灵数量 × 2m)
铃铛半径 = 10m + (亡灵数量 × 3m)
```
### 2. 玩家属性
| 属性 | 说明 |
|-----|------|
| **生命值** | 3颗心(被怪物碰到扣1颗) |
| **移动速度** | 5单位/秒 |
| **闪避能力** | 空格键翻滚(短暂无敌) |
| **技能CD** | 10秒(可升级减少) |
### 3. 技能系统
#### 技能1: 灵魂冲击 (Soul Shock)
- **按键**: Q
- **CD**: 10秒
- **效果**: 以玩家为中心,释放灵魂波动
- 范围内怪物眩晕3秒
- 可以打断怪物攻击
- 可以触发陷阱(提前引爆)
- **范围**: 8m(随亡灵数量增加)
#### 技能2: 灵魂护盾 (Soul Shield) - 解锁
- **解锁条件**: 收集10个亡灵
- **按键**: 右键
- **CD**: 15秒
- **效果**: 生成护盾,抵挡1次伤害
#### 技能3: 灵魂传送 (Soul Teleport) - 解锁
- **解锁条件**: 收集20个亡灵
- **按键**: 双击空格
- **CD**: 20秒
- **效果**: 短距离传送(10m内)
---
## 👹 敌人系统
### 1. 怪物类型
基于已实现的 `EnemyAI.cs`,扩展以下怪物类型:
#### 游荡者 (Wanderer)
- **行为**: 在固定路径巡逻
- **视野**: 15m(已实现maxSightDistance
- **速度**: 3m/s
- **特点**: 被铃声吸引(已实现BellResponding
- **弱点**: 移动缓慢,容易躲避
#### 守卫者 (Guardian)
- **行为**: 站岗不动,看到玩家追击
- **视野**: 20m
- **速度**: 4m/s
- **特点**: 攻击范围广,伤害高
- **弱点**: 只能直线攻击,可以绕柱躲避
#### 猎手 (Hunter)
- **行为**: 快速追击,会预判玩家位置
- **视野**: 25m
- **速度**: 6m/s
- **特点**: 会呼叫其他怪物
- **弱点**: 血量低,可以被灵魂冲击击杀
#### Boss: 暗影领主 (Shadow Lord)
- **行为**: 多阶段战斗
- **视野**: 全图
- **特殊能力**:
- 阶段1: 召唤小怪
- 阶段2: 黑暗领域(缩小玩家视野)
- 阶段3: 灵魂锁链(减速玩家)
### 2. 怪物AI增强
基于现有 `EnemyAI.cs`,添加以下功能:
```csharp
// 新增状态
private enum State
{
Idle,
ChasingPlayer,
ChasingBell,
PatrollingBell,
Stunned, // 眩晕(灵魂冲击)
Searching, // 搜索玩家(丢失视线后)
Returning // 返回巡逻点
}
// 新增参数
[Header("搜索行为")]
[SerializeField] private float searchDuration = 5f; // 搜索时间
[SerializeField] private float returnDistance = 10f; // 返回距离
[Header("攻击行为")]
[SerializeField] private float attackRange = 1.5f; // 攻击范围
[SerializeField] private float attackCooldown = 2f; // 攻击CD
[SerializeField] private int damage = 1; // 伤害值
```
**新增行为**:
-**搜索**: 丢失玩家视线后,在附近搜索5秒
-**返回**: 搜索失败后,返回巡逻点
-**攻击**: 靠近玩家时发动攻击
-**眩晕**: 被灵魂冲击击中后眩晕3秒
---
## 🗺️ 关卡设计
### 1. 地图系统
**地图结构**: 多个迷宫地图,通过传送门切换
#### 地图1: 废弃墓穴 (新手教程)
- **大小**: 50x50m
- **特点**: 简单迷宫,少量怪物
- **亡灵数量**: 5个
- **陷阱**: 地刺(固定位置)
- **目标**: 教学基本操作
#### 地图2: 幽暗森林
- **大小**: 80x80m
- **特点**: 复杂迷宫,视野受限
- **亡灵数量**: 10个
- **陷阱**: 地刺 + 飞箭
- **新元素**: 可破坏的墙壁
#### 地图3: 地下神殿
- **大小**: 100x100m
- **特点**: 多层结构,机关谜题
- **亡灵数量**: 15个
- **陷阱**: 所有陷阱 + 移动平台
- **新元素**: 机关门(需要激活)
#### 地图4: 暗影领域 (Boss战)
- **大小**: 60x60m
- **特点**: 开阔场地,Boss战
- **亡灵数量**: 0(专注Boss
- **陷阱**: 无
- **目标**: 击败暗影领主
### 2. 陷阱系统
#### 地刺 (Ground Spikes)
```csharp
public class GroundSpikes : MonoBehaviour
{
[SerializeField] private float damage = 1f;
[SerializeField] private float triggerRange = 1f;
[SerializeField] private float cooldown = 3f;
// 触发方式: 玩家踩上
// 效果: 扣1颗心,短暂无敌
}
```
#### 飞箭 (Flying Arrow)
```csharp
public class FlyingArrow : MonoBehaviour
{
[SerializeField] private float speed = 10f;
[SerializeField] private float damage = 1f;
[SerializeField] private float lifetime = 5f;
// 触发方式: 玩家进入触发区域
// 效果: 从固定方向发射箭矢
}
```
#### 落石 (Falling Rock)
```csharp
public class FallingRock : MonoBehaviour
{
[SerializeField] private float warningTime = 1f;
[SerializeField] private float damage = 1f;
[SerializeField] private float radius = 2f;
// 触发方式: 玩家进入区域
// 效果: 警告1秒后落石,范围伤害
}
```
### 3. 亡灵系统
#### 亡灵类型
**普通亡灵**:
- **外观**: 半透明人形
- **行为**: 被困在笼子/结界中
- **收集**: 靠近后自动收入灯笼
- **效果**: 灯笼亮度+1,铃铛范围+2m
**特殊亡灵**:
- **战士亡灵**: 提供战斗技能
- **法师亡灵**: 提供魔法护盾
- **盗贼亡灵**: 提供传送技能
#### 亡灵数据结构
```csharp
[System.Serializable]
public class SoulData
{
public string soulName; // 亡灵名称
public SoulType soulType; // 类型: 普通/战士/法师/盗贼
public int level; // 等级
public float brightnessBonus; // 亮度加成
public float rangeBonus; // 范围加成
public string specialAbility; // 特殊能力
}
```
---
## 🎨 UI系统
### 1. HUD (抬头显示)
```
┌─────────────────────────────────────┐
│ ❤❤❤ 🕐 00:12:34 │
│ │
│ [游戏画面] │
│ │
│ 🔦 灯笼: ████░░ 4/6 亡灵 │
│ ⚡ 技能: 就绪 (10s CD) │
│ 🗺️ 地图: 废弃墓穴 │
└─────────────────────────────────────┘
```
### 2. 灯笼UI
- **图标**: 灯笼图标
- **进度条**: 显示当前亡灵数量/容量
- **亮度指示**: 动态光圈大小
### 3. 技能UI
- **图标**: 技能图标
- **CD指示**: 灰色覆盖层 + 倒计时数字
- **快捷键**: Q / 右键 / 双击空格
### 4. 地图UI
- **小地图**: 右上角显示已探索区域
- **任务标记**: 显示亡灵位置和出口
---
## 💾 存档系统
### 1. 存档数据
```csharp
[System.Serializable]
public class SaveData
{
public int currentMapIndex; // 当前地图索引
public Vector3 playerPosition; // 玩家位置
public int playerHealth; // 玩家生命
public List<SoulData> collectedSouls; // 收集的亡灵
public float lanternBrightness; // 灯笼亮度
public float bellRange; // 铃铛范围
public float skillCooldown; // 技能CD
public Dictionary<string, bool> mapProgress; // 地图进度
}
```
### 2. 存档点
- **存档水晶**: 在地图中分布
- **自动存档**: 到达新地图时
- **手动存档**: 在存档水晶处按F
---
## 🎵 音效系统
### 1. 环境音效
| 场景 | 音效 |
|-----|------|
| 墓穴 | 风声、滴水声、远处哀嚎 |
| 森林 | 树叶沙沙声、猫头鹰叫 |
| 神殿 | 回声、机关运转声 |
| Boss战 | 紧张BGM、Boss咆哮 |
### 2. 交互音效
| 行为 | 音效 |
|-----|------|
| 铃铛 | 清脆铃声(已实现) |
| 收集亡灵 | 灵魂吸收音 |
| 技能释放 | 灵魂爆发音 |
| 受伤 | 痛苦呻吟 |
| 陷阱触发 | 机械触发音 |
---
## 📊 游戏平衡
### 1. 难度曲线
```
地图1 (废弃墓穴):
- 怪物数量: 3
- 陷阱数量: 5
- 亡灵数量: 5
- 难度: ★☆☆☆☆
地图2 (幽暗森林):
- 怪物数量: 6
- 陷阱数量: 10
- 亡灵数量: 10
- 难度: ★★☆☆☆
地图3 (地下神殿):
- 怪物数量: 10
- 陷阱数量: 15
- 亡灵数量: 15
- 难度: ★★★☆☆
地图4 (暗影领域):
- 怪物数量: 1 (Boss)
- 陷阱数量: 0
- 亡灵数量: 0
- 难度: ★★★★★
```
### 2. 资源平衡
**灯笼容量**:
- 初始: 3个亡灵
- 地图1后: 6个亡灵
- 地图2后: 9个亡灵
- 地图3后: 12个亡灵
**技能CD**:
- 初始: 10秒
- 每收集5个亡灵: -1秒
- 最低: 5秒
---
## 🚀 开发优先级
### Phase 1: 核心玩法 (2周)
- ✅ 灯笼系统(照明+铃铛)- 已实现
- ✅ Enemy AI(视觉+铃声)- 已实现
- ⏳ 玩家移动和碰撞
- ⏳ 亡灵收集逻辑
### Phase 2: 战斗系统 (1周)
- ⏳ 灵魂冲击技能
- ⏳ 怪物攻击逻辑
- ⏳ 玩家受伤和无敌帧
### Phase 3: 关卡设计 (2周)
- ⏳ 地图1: 废弃墓穴
- ⏳ 陷阱系统(地刺、飞箭)
- ⏳ 亡灵分布
### Phase 4: UI和存档 (1周)
- ⏳ HUD系统
- ⏳ 存档功能
- ⏳ 地图切换
### Phase 5: 扩展内容 (2周)
- ⏳ 地图2-4
- ⏳ 更多怪物类型
- ⏳ Boss战
---
## 🎯 下一步行动
基于现有代码,建议按以下顺序开发:
1. **玩家控制器增强**
- 添加生命值系统
- 添加技能系统(灵魂冲击)
- 添加灯笼升级逻辑
2. **亡灵系统**
- 创建亡灵预制体
- 实现收集逻辑
- 实现灯笼亮度动态调整
3. **陷阱系统**
- 创建地刺预制体
- 创建飞箭预制体
- 实现陷阱触发逻辑
4. **地图系统**
- 创建地图1(废弃墓穴)
- 实现地图切换逻辑
- 添加传送门
5. **UI系统**
- 创建HUD
- 添加灯笼和技能UI
- 添加小地图
---
这个设计充分利用了你已经实现的功能:
- ✅ 黑暗遮罩系统 (LightMaskSystem)
- ✅ 回声系统 (EchoSystem)
- ✅ Enemy AI (EnemyAI.cs)
- ✅ Y-Sort排序
- ✅ 地面裁剪Shader
- ✅ 2.5D摄像机系统
需要我帮你实现哪个部分?