101 lines
4.6 KiB
Markdown
101 lines
4.6 KiB
Markdown
# MVP 详细设计文档:最强导师 (The Apex Mentor)
|
||
|
||
## 1. 概述
|
||
本 MVP 旨在验证游戏的核心循环:**任务分发 -> 学生自动工作 -> 资源结算 -> 压力/状态管理**。
|
||
范围仅涵盖设计文档中的“第一阶段:青椒求生”(前 10 回合)。
|
||
|
||
## 2. 核心循环 (Core Loop)
|
||
|
||
游戏以“回合”(Turn)为单位,每个回合代表一年(或一个学期)。
|
||
回合内流程如下:
|
||
|
||
1. **准备阶段 (Planning Phase)**
|
||
* **时间暂停**。
|
||
* 玩家查看当前资源(经费、声望)。
|
||
* 玩家查看现有学生状态(心情、属性)。
|
||
* 玩家接收新任务(课题/论文)并将其分配给具体的设施(如实验室工位)。
|
||
* 玩家使用经费购买/升级设施或道具。
|
||
|
||
2. **执行阶段 (Execution Phase)**
|
||
* **时间流动**(可视化的几天/几周)。
|
||
* 学生根据 AI 逻辑自动寻找任务进行工作(扣减任务 HP)。
|
||
* 学生各项数值变化(压力上升、体力下降)。
|
||
* 导师(玩家 Avatar)在地图上移动,使用技能(如“画饼”、“PUA”)干预学生状态。
|
||
* 突发事件触发(如“电脑蓝屏”),需要导师立刻前往处理。
|
||
|
||
3. **结算阶段 (Review Phase)**
|
||
* 回合结束(Deadline 到达)。
|
||
* 计算完成的任务:获得声望、经费。
|
||
* 计算未完成的任务:扣除声望、经费。
|
||
* 支付学生工资、维护费。
|
||
* 结算学生状态(是否崩溃/退学/毕业)。
|
||
* 显示本回合报表。
|
||
|
||
## 3. 核心对象设计 (Core Object Design)
|
||
|
||
### 3.1 全局管理器 (GameManager)
|
||
* **职责**:维护全局状态、回合流转、全局资源。
|
||
* **属性**:
|
||
* `CurrentTurn` (int): 当前回合数。
|
||
* `Phase` (Enum): Planning / Execution / Review。
|
||
* `GlobalResources` (Object): 包含 Money, Reputation, ResearchPoints。
|
||
* **方法**:
|
||
* `StartTurn()`: 进入准备阶段。
|
||
* `StartExecution()`: 开始执行阶段。
|
||
* `EndTurn()`: 触发结算。
|
||
|
||
### 3.2 导师 (Mentor / Player)
|
||
* **职责**:玩家在场景中的化身,提供 Buff 和技能。
|
||
* **属性**:
|
||
* `Energy` (int): 精力值,用于释放技能。
|
||
* `Position` (Vector2): 地图位置。
|
||
* `Skills` (List): 拥有的技能列表。
|
||
* **技能示例**:
|
||
* `Inspire`: 消耗精力,范围内学生工作效率 +50%,持续 5秒。
|
||
* `MicroManage`: 消耗精力,立刻减少某任务 5% 剩余工作量,增加学生压力。
|
||
|
||
### 3.3 学生 (Student)
|
||
* **职责**:基础工作单位,具有自主 AI。
|
||
* **扩展属性** (继承自现有 `Student.cs`):
|
||
* **Attributes (能力值)**: `Intelligence` (智力), `Strength` (体力), `Expression` (表达).
|
||
* **Status (状态值)**: `Sanity` (SAN值/抗压), `Stamina` (当前体力), `Loyalty` (忠诚度).
|
||
* **Traits (特质)**: List<Trait> (如 "NightOwl": 晚上效率高).
|
||
* **状态机 (FSM)**:
|
||
* `Idle`: 无任务或休息中。
|
||
* `Working`: 在工位上对任务造成伤害。
|
||
* `Resting`: 在咖啡厅/宿舍恢复 Sanity/Stamina。
|
||
* `Breakdown`: 崩溃状态,无法工作,需导师干预。
|
||
|
||
### 3.4 任务 (Task)
|
||
* **职责**:地图上的“怪物”,需要被学生“击败”。
|
||
* **属性**:
|
||
* `TotalWorkload` (float): 总工作量 (HP)。
|
||
* `CurrentProgress` (float): 当前进度。
|
||
* `Type` (Enum): Paper (论文), Project (项目), Admin (杂务).
|
||
* `Difficulty` (float): 减伤系数,需要特定属性(如智力)对抗。
|
||
* `Deadline` (int): 剩余回合数。
|
||
* `Rewards` (Resource): 完成奖励。
|
||
|
||
### 3.5 实验室/地图 (Lab)
|
||
* **职责**:容器,管理设施和路径。
|
||
* **扩展**:
|
||
* 需支持从 `GameManager` 获取设施列表。
|
||
* 设施 (Facility) 需关联 Task(任务绑定到设施上,学生去设施工作)。
|
||
|
||
## 4. 扩展性设计 (Scalability)
|
||
|
||
* **IAgent 接口**:学生、导师、后续的“博后”都实现此接口,方便统一管理行为。
|
||
* **EventSystem**:使用观察者模式(已有的 `TimelineType` 可扩展)处理突发事件。
|
||
* **SaveSystem**:所有核心数据(Student Data, Task Data)需可序列化,支持 SL 大法和 Roguelite 继承。
|
||
|
||
## 5. MVP 开发计划 (脚手架)
|
||
|
||
我们将创建以下脚本结构:
|
||
|
||
* `scripts/Core/GameLoop.cs`: 处理回合流程。
|
||
* `scripts/Domain/Task.cs`: 任务数据结构。
|
||
* `scripts/Domain/Mentor.cs`: 导师逻辑。
|
||
* `scripts/Domain/StudentData.cs`: 学生数值模型(与表现层 `Student.cs` 分离或集成)。
|
||
|
||
---
|