架构设计总览

数据流
启动时初始化
Text1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Unity Play │ ▼ ConsoleTester.Start() │ ├── new GameEngine() ├── Resources.Load<GameConfig>("GameConfig") ← 从 .asset 读配置 ├── engine.Init(gameConfig) │ ├── stats = new PlayerStats() │ └── stats.InitFromConfig(config) ← 把配置灌进运行时数据 │ Energy=10, Skill=5, Resume=0, Mindset=50, Stress=30 │ MaxEnergy=10, MaxSkill=100, ... │ └── 打印欢迎信息 + 初始属性
|
玩家行动阶段(一回合可有多次行动选择)
Text1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| 玩家按 1~5 │ ▼ ConsoleTester.HandleAction(action) │ ├── engine.GetActionCost(action) ← 查费用(含高压 Debuff 判断) │ └── ActionSystem.GetCost() │ └── engine.ExecuteAction(action) ← 执行行动 └── ActionSystem.Execute() ├── 检查 AP 够不够 ├── 扣 AP ├── 计算 Buff(心态≥80 且 焦虑<70 → bonus=+2) ├── 按 switch 修改属性 │ └── Skill 收益走 GetTieredSkillGain() 分段衰减 └── stats.ClampAll() ← 确保不越界
|
结束此回合(按space)
Text1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| 玩家按 Space │ ▼ ConsoleTester.HandleEndTurn() │ └── engine.EndTurn() │ ├── ① 记录 HighStressTurns │ Stress ≥ 90 → 计数器+1 │ Stress < 90 → 计数器归零 │ ├── ② 中期败北判定 │ HighStressTurns ≥ 2 → 抑郁休学,Game Over │ ├── ③ CurrentTurn++ │ 超过 maxTurns(15) → 终局判定,Game Over │ ├── ④ 恢复 AP │ Stress ≥ 90 → 恢复 7 点(崩盘预警) │ 否则 → 恢复 MaxEnergy(10) │ 再减去 pendingApPenalty(事件遗留 debuff) │ └── ⑤ 事件检查 └── EventSystem.CheckAndTrigger(stats) │ ├── 固定事件优先:Turn 5 → 导师问询 │ Turn 7 → 期末大作业 │ └── 随机事件:GitHub爆火 / 源码丢失 / 好评 │ ├── 有选择的事件 → phase = EventChoice │ 等玩家按 1/2 选择 │ └── engine.ResolveEventChoice() │ └── EventSystem.ResolveChoice() │ └── 无选择的事件 → 直接 ApplyPassiveEffect()
|
结局判定
Text1 2 3 4 5 6 7 8 9 10 11 12
| Game Over 触发路径:
路径 A:HighStressTurns ≥ 2 → EndingType.DepressionBurnout(抑郁休学)
路径 B:CurrentTurn > 15 → EndingEvaluator.EvaluateFinalEnding(stats) │ ├── Skill≥80 & Resume≥80 & Mindset≥70 → IndieDev(隐藏结局) ├── Skill≥70 & Resume≥70 → AAAOffer(完美结局) ├── Skill<40 → GraduationDelay(延毕) └── 其他 → Normal(平平无奇)
|
完整的一个回合流程

Buff系统
Text1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| 每次执行行动时,ActionSystem.Execute() 内部判断:
highStress = Stress ≥ 70 mindsetBuff = (!highStress) && (Mindset ≥ 80)
影响 1:AP 消耗 除打瓦外,所有行动 AP +1(当 highStress = true) 打瓦固定 2 AP,不受影响
影响 2:行动收益 mindsetBuff = true 时: 肝Demo 的 Resume 额外 +2 逃课实习的 Resume 额外 +2
注意:Stress ≥ 70 时,即使 Mindset ≥ 80 也不触发正面 Buff
|
测试逻辑
ConsoleTester作为整个游戏的唯一入口,负责:
初始化:Start() 里加载 GameConfig → 传给 GameEngine → 打印欢迎信息
输入路由:Update() 每帧检测按键,根据 phase 分发到不同处理函数
输出显示:所有 Debug.Log 都在这里,GameEngine/ActionSystem 不做任何输出
Text1 2 3 4 5 6 7 8 9 10 11
| Update() 每帧检测: │ ├── phase == GameOver → 什么都不做 │ ├── phase == EventChoice → HandleEventInput() │ 按 1 → ResolveEventChoice(1) │ 按 2 → ResolveEventChoice(2) │ └── phase == Playing 按 1~5 → HandleAction(对应行动) 按 Space → HandleEndTurn()
|
当前项目状态
ActionData.cs:⚠️ 结构定义好了,ActionSystem 还没用它,仍然硬编码;
EventData.cs:❌ 空文件,EventSystem 仍然硬编码;
PlayerStats.GetDisplay():⚠️ 写死 /15,应该从 config.maxTurns 读。
总结:游戏的核心玩法已经可以跑通了,从第 1 回合到第 15 回合,5 种行动、5 个事件、5 种结局全部就位。只差 ActionData/EventData 的配置化接入(解耦优化,不影响功能)。
推到GitHub仓库
在和asset同级的目录下创建文件.gitignore
Text1 2 3 4 5 6 7 8 9 10 11 12 13 14
| /[Ll]ibrary/ /[Tt]emp/ /[Oo]bj/ /[Bb]uild/ /[Bb]uilds/ /[Ll]ogs/ /[Uu]ser[Ss]ettings/ /[Mm]emoryCaptures/
# Visual Studio / Rider / VS Code 缓存 .vs/ .idea/ *.csproj *.sln
|
1 2 3 4 5 6 7 8 9
| git init git add . git commit -m "feat: 核心玩法原型 - 5行动/5事件/5结局"
git remote add origin <仓库地址> git branch -M main git push -u origin main
|
本作品由 Yvonne 于 2026-09-22 00:00:00 发布
