Compare commits

...

2 Commits

Author SHA1 Message Date
6607524c41 总体设计 2025-12-04 22:37:30 +08:00
e2d7427892 Changes 2025-12-04 22:31:58 +08:00
2 changed files with 252 additions and 0 deletions

31
AGENTS.md Normal file
View File

@ -0,0 +1,31 @@
# Repository Guidelines
## Project Structure & Module Organization
- Godot 4.5 C# project (`导师模拟器.csproj`, `project.godot`) targeting .NET 8; main scene is `scenes/logo_scene.tscn`.
- Gameplay scripts live in `scripts/`; AI task assets in `ai/` (`ai/tasks` for logic, `.tres` for definitions).
- Scenes sit in `scenes/`; shared art/audio in `resources/` and placeholder art in `temp_res/`; shaders in `shaders/`; plugins in `addons/`; animation clips in `Animation/`.
- Add new scenes under `scenes/` and attach scripts there; keep reusable utilities in `scripts/Helpers*` or a new `scripts/common/` subfolder.
## Build, Test, and Development Commands
- `godot4 --headless --build-solutions` (or the Godot 4.5.1 Windows exe) regenerates C# bindings after adding scripts.
- `dotnet build` compiles the game code against Godot assemblies.
- `godot4 .` runs the game with the configured main scene; `godot4 --editor` opens the project for level/content work.
- Optional: `dotnet format` to auto-format C# before committing.
## Coding Style & Naming Conventions
- Match existing style: tabs for indentation, partial classes inheriting from Godot nodes, PascalCase for classes/methods, camelCase for fields, ALL_CAPS for constants.
- Keep resource paths lowercase with underscores (`scenes/logo_scene.tscn`, `resources/...`). Avoid absolute OS paths; prefer `res://`.
- When exporting variables, prefer `[Export] public` properties/fields with descriptive names.
## Testing Guidelines
- No automated tests are present yet; prefer lightweight Godot script tests or `dotnet test` once a `tests/` project is added.
- Aim to cover input handling, drag/drop, and scene transitions (`SceneTransit`, `GameManager`) when adding tests. Document new test commands in PRs.
## Commit & Pull Request Guidelines
- Use short, imperative commit titles similar to existing history (e.g., "Cube drag and drop", "Watch mobile phone"); add a scope tag when helpful (`[scripts] Fix drag`). English is preferred; bilingual is acceptable.
- PRs should state the behavior change, files/scenes touched, test commands run, and include screenshots or GIFs for visual changes. Link related issues/tasks and keep PRs focused/small.
## Asset & Configuration Tips
- Commit Godot import metadata (`*.import`, `.godot/`) alongside assets to avoid reimport churn.
- Keep reusable assets in `resources/`; stash throwaway or WIP art in `temp_res/` and clean before release.
- Modify project settings through the Godot editor rather than hand-editing `project.godot`; update `run/main_scene` if the entry scene moves.

221
docs/design.md Normal file
View File

@ -0,0 +1,221 @@
# 游戏总体设计文档:最强导师 (The Apex Mentor)
**版本:** 1.0 (Refined)
**类型:** 模拟经营 / 策略养成 / 非典型自走棋
**核心体验:** 在学术界的惊涛骇浪中通过排兵布阵分配学生战胜名为“Deadline”和“评审意见”的强敌。
---
## 1. 核心概念与玩法重构
### 1.1 核心隐喻:“科研即战斗”
* **敌人 (Enemies)** 各种任务(论文、项目、结题报告)实体化为“怪物”。它们拥有“工作量 (HP)”和“难度 (防御力/抗性)”。
* **棋子 (Units)** 导师与学生。他们通过“工作 (攻击)”来削减任务的HP。
* **战斗 (Combat)** 发生在“自走阶段”。学生自动寻找任务节点进行攻坚,或在设施间移动恢复状态。
* **战场 (Map)** 校园地图。距离决定效率设施提供Buff。
### 1.2 游戏循环 (细化版)
**单局时长:** 约 30-45 分钟 (30 回合)
**回合结构:**
1. **学期规划 (准备阶段 - 暂停状态)**
* **抽卡/招募:** 每年9月触发根据经费和声望招募新生N/R/SR/SSR
* **排兵布阵:** 将学生拖拽至地图上的不同**设施**或**任务槽位**。
* **资源分配:** 购买设备、升级设施、分配经费(发津贴减压)。
2. **学期进行 (战斗阶段 - 自动演算)**
* **时间流动:** 进度条推进(如 9月 -> 次年8月
* **自走逻辑:** 学生根据指令在地图上移动、工作、摸鱼、社交。
* **实时反馈:** 任务HP下降资源产出突发事件弹窗QTE或二选一
3. **年终结算 (奖励阶段)**
* 结算成果(论文发表、资金到账)。
* 处理毕业/延毕/退学。
* 导师技能树升级。
---
## 2. 棋盘与空间系统 (The Campus)
地图采用**六边形或四边形网格**,通过连线表示路径。
### 2.1 区域划分与功能
| 区域名称 | 功能类型 | 驻扎效果 (Buff/Debuff) | 升级方向 |
| :--- | :--- | :--- | :--- |
| **实验室 (主基地)** | 工作区 | 产出科研点,压力++,心情-- | 工位数量、设备算力 (提升攻速) |
| **图书馆** | 攻坚区 | 写作效率+20%,查重率降低 | 藏书量 (提升理论类任务伤害) |
| **会议室** | 合作区 | 组会/答辩。多人驻扎有连携加成,由于在此容易被骂,压力+++ | 投影仪 (提升声望获取、PPT制作速度) |
| **行政楼** | 资源区 | 跑财务/盖章。产出资金,极高概率触发“办事难”事件 | 办事效率 (减少在此浪费的时间) |
| **咖啡厅/操场** | 恢复区 | 恢复心情,降低压力,但无法工作 | 咖啡品质 (回蓝速度)、八卦传播率 |
| **宿舍** | 待机区 | 默认出生点,也是生病/摆烂时的强制且回血慢的地点 | 舒适度 (减少生病概率) |
### 2.2 移动与寻路
* **物理移动:** 学生从宿舍走到实验室需要时间。如果任务紧急,不仅要考虑属性,还要考虑他住得离实验室远不远。
* **路径事件:**
* 路过 *操场*:可能触发“看人打球”,心情+5工作延误 1秒。
* 路过 *行政楼*:可能触发“被抓壮丁搬东西”,体力-10。
---
## 3. 任务系统 (The Enemies)
任务以**卡片**形式出现在地图的特定格子上具有存在时间Deadline
### 3.1 任务属性
* **HP (工作量)** 需要多少输出才能完成。
* **类型抗性:**
* *顶级顶会 (Top Conf)* 高HP需高“学术”属性破防低学术攻击为0。
* *横向项目 (Industry Project)* 需高“工程”属性,产出大量资金,无声望。
* *报销跑腿 (Admin Task)* 需“社交”属性HP低但极度消耗心情。
* **Deadline (倒计时)** 倒计时结束未完成 -> 任务失败(扣声望/赔钱/Stress爆表
### 3.2 任务阶段
大型任务如S级论文分为三个阶段类似Boss战的多血条
1. **Idea 阶段:***洞察/学术* 属性。
2. **实验 阶段:***工程/体力* 属性 (最耗时)。
3. **写作/Rebuttal 阶段:***写作/逻辑* 属性。
*策略点:玩家需要在任务进行中,动态轮换不同特长的学生去处理不同阶段。*
---
## 4. 角色系统 (The Units)
### 4.1 导师 (玩家/指挥官)
导师是一个不可移动的全局Buff源或者每回合有一次“亲临指导”的机会。
* **能量槽 (时间/精力)** 每回合有限。用于:修改论文(瞬间削减任务HP)、心理按摩(瞬间降压)、画大饼(提升忠诚)。
* **流派 (Class)**
* **卷王型:** 学生效率+20%,压力增长+30%。
* **放养型:** 学生心情回复+20%自主产生Idea概率提升。
* **资源型:** 资金获取+30%,行政任务难度降低。
### 4.2 学生 (棋子)
**生命周期:** 硕士(3年) -> 博士(3+3年) -> 博后(雇佣兵)。
**核心四维属性:**
1. **学术 (INT)** 造成理论伤害,攻克难题。
2. **工程 (STR)** 造成代码/实验伤害,干脏活。
3. **表达 (CHA)** 写作速度、答辩成功率、申项目概率。
4. **抗压 (VIT/SAN)** 压力上限。归零时触发“崩溃/抑郁/发疯”。
**特质系统 (Roguelike词条)**
* *DDL战士* 离Deadline越近全属性提升50%,但压力双倍。
* *代码洁癖:* 工程质量高,但速度慢。
* *社交牛逼症:* 在行政楼/会议室效率翻倍,容易带偏周围同学一起摸鱼。
* *夜猫子:* 白天效率-20%,晚上效率+50%。
### 4.3 羁绊系统 (Synergy)
类似自走棋的种族/职业羁绊。
* **同门师兄弟 (3人)** 协作效率+15%。
* **全员恶人 (卷王+卷王)** 实验室产出极大提升,但每回合随机一名学生心情崩溃。
* **男女搭配:** 特定组合可能触发“办公室恋情” (随机Buff要么效率倍增要么分手后双双离职)。
---
## 5. 经济与资源循环
1. **经费 (Gold)**
* 来源:项目结题、企业赞助、学校拨款。
* 用途发工资维持忠诚、买设备永久Buff、招募强力博后。
2. **声望 (XP/Reputation)**
* 来源:发表高质量论文、学生毕业去向好。
* 用途:提升招募池的卡牌质量 (生源越来越好)、解锁高级课题。
3. **算力/数据 (Mana)**
* 由机房产出是处理“AI类/大数据类”任务的消耗品。
---
## 6. 毕业与延毕机制 (特色玩法)
这是本游戏区别于传统自走棋的核心:**单位一定会流失。**
* **正常毕业:**
* 硕士3回合/博士6回合强制离队。
* 毕业评价S/A/B/C决定回馈给导师的声望和“校友加成”。
* *校友加成:* 已毕业的优秀学生会变成“被动遗物”,如“在某大厂当总监,横向项目金额+20%”。
* **延毕策略:**
* 操作:在学生该毕业的回合,支付大量“忠诚度”和“口舌(导师精力)”,强行留一年。
* 收益:保留高练度战力。
* 风险:学生压力基线永久提高,极大率触发负面事件(如:网上挂导师、删库跑路)。
---
## 7. 突发事件 (Events)
采用卡牌二选一模式,增加叙事性。
* **Positive:**
* "顶会中稿!" -> 声望大增,全员心情+10。
* "猎头挖墙脚" -> 允许学生提前毕业去大厂(换取巨额横向经费),还是强留做学术?
* **Negative:**
* "实验室断电" -> 正在进行的任务进度倒退 20%。
* "情感危机" -> 某学生需请假 2 周(回合时间内消失)。
* "学术造假举报" -> 需消耗大量导师精力公关否则Game Over。
---
## 8. UI/UX 细化设计
* **主界面 (实验室视图)**
* 上帝视角俯瞰校园平面图。
* 小人头顶有状态气泡(写代码中、摸鱼中、哭泣中)。
* **看板 (Dashboard)**
* **甘特图 (Gantt Chart)** 各种Deadline的横条视觉化压迫感。
* **经费线:** 类似心电图,甚至会变红报警。
* **学生详情页:**
* 简历样式。照片随压力值变化(压力大时头发变少、黑眼圈变重)。
* 雷达图显示四维属性。
---
## 9. 技术实现 (Godot 4.5 C#)
### 9.1 数据结构
```csharp
// 棋子基类
public class StudentUnit {
public string Name;
public RoleType Role; // Master, PhD
public Stats CurrentStats;
public List<Trait> Traits;
public int RoundsUntilGraduation;
public float StressLevel; // 0-100
// 行为树引用
public BehaviorTree AI;
}
// 任务基类
public class ResearchTask {
public float TotalWorkload;
public float CurrentProgress;
public Dictionary<StatType, float> Resistance; // 对不同属性的抗性
public int DeadlineRound;
public List<StudentUnit> AssignedStudents;
}
```
### 9.2 关键系统
* **寻路系统 (Navigation2D)** 使用Godot内置NavServer实现学生在设施间的移动。
* **行为树 (Behavior Tree)**
* Idle -> 检查任务队列 -> 有任务? -> 移动到任务点 -> 执行工作(播放动画/扣血) -> 压力过高? -> 移动到咖啡厅 -> 恢复。
* **事件总线 (Event Bus)** 全局广播“DeadlineWarning”、“PaperAccepted”等信号。
---
## 10. 开发路线图 (MVP)
1. **原型阶段 (Month 1):**
* 实现核心循环:招募 -> 自动工作 -> 任务完成 -> 结算。
* 灰盒地图,简单的方块代表学生和任务。
2. **Alpha阶段 (Month 2):**
* 加入属性系统和设施Buff。
* 加入毕业/延毕机制。
* 简单的UI。
3. **Beta阶段 (Month 3):**
* 加入事件系统和特质(Roguelike元素)。
* 美术素材替换像素风或Low Poly
* 数值平衡调整“发Paper”的爽感与“延毕”的压力
---
### 给设计者的建议 (Design Notes)
* **幽默感是关键:** 这个游戏本质是痛苦的(模拟科研压力),所以必须用搞笑的文案、夸张的动画(如学生头顶冒火、导师喷水灭火)来解。
* **失败也是乐趣:** 允许玩家当一个“恶魔导师”,把学生全部压榨跑路,最后只剩自己光杆司令,这本身也是一种结局成就。