docs(enemy): Boss AI 单轨落地——新增作者指南,清理描述已删除系统的长期文档

新增 Docs/Guides/09_BossAi_Authoring_Guide.md:
定制路径写法([AiDefinition] + AiScript)、建态原语(AiStateFragments +
BossFragments + IBossControl)、阶段=换招池、一招怎么配(EnemyAbilitySO +
EnemyAttackSO + 动画事件)、开战触发、死亡归物理层,
以已落地的 ChaoFengAi 为逐段范例,附 Boss 专属陷阱与已知缺口。
08 号指南加交叉引用。

删除两份整份描述已删除且从未实现的体系的文档:
Docs/Architecture/23_BossSkillModule.md、Docs/Design/47_BossSkillSystem.md。
删前已确认全库无 Markdown 链接残留,索引行与关联文档行改指新指南或 spec。

修订:25_CharacterArchitectureOverview §4 Boss 章节按实际代码重写;
07_EnemyModule 加过时提示、§11 改重定向;02_EventSystem 修正 Boss 事件发送方;
19_BossPatternLibrary 加废止提示(设计意图仍有效,类型名已废);
AssetFolderSpec 删旧 Boss 技能编辑器条目;三处 README/索引同步。
Docs_Dev/ 历史记录保留不动。

spec 标记为已实施,并记录实施期偏差(无 Boss 骨架、Telegraph 枚举保留、
阶段直查不走黑板、BossSkillEvent 一并删除)与八项已知未完成项,
其中 EnemyHurtState 无受击动画永久卡死为最高优先级、且与 Boss 轨无关。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-30 17:14:32 +08:00
co-authored by Claude Opus 5
parent cf0ac60fad
commit 6d3816d7ef
12 changed files with 654 additions and 242 deletions
+4 -14
View File
@@ -140,12 +140,6 @@ public class ShopPurchaseEventChannelSO : BaseEventChannelSO<ShopPurchaseEvent>
[CreateAssetMenu(menuName = "Events/DialogueRequest")]
public class DialogueEventChannelSO : BaseEventChannelSO<DialogueDataSO> { }
// Assets/Scripts/Core/Events/BossSkillEventChannelSO.cs
[System.Serializable]
public struct BossSkillEvent { public string BossId; public string SkillId; }
[CreateAssetMenu(menuName = "Events/BossSkill")]
public class BossSkillEventChannelSO : BaseEventChannelSO<BossSkillEvent> { }
// Assets/Scripts/Core/Events/BossPhaseEventChannelSO.cs
[System.Serializable]
public struct BossPhaseEvent { public string BossId; public int Phase; }
@@ -246,16 +240,12 @@ public class StatusEffectEventChannelSO : BaseEventChannelSO<StatusEffectType> {
| `EVT_EnemyDied` | `TransformEventChannelSO` | `EnemyBase`HP ≤ 0 | `PlayerStats`(击杀点)、`QuestManager` |
| `EVT_HitConfirmed` | `HitConfirmedEventChannelSO`HitInfo | `HurtBox.ReceiveDamage` | `HitFXSpawner``AudioManager``PlayerFeedback`(受击方) |
| `EVT_DamageDealt` | `DamageInfoEventChannelSO` | `HurtBox.ReceiveDamage` | `AnalyticsManager` |
| `EVT_BossFightStarted` | `StringEventChannelSO`bossId | `BossOrchestrator` | `GameManager`(切换 BossFight 状态)、`AudioManager` |
| `EVT_BossFightEnded` | `BoolEventChannelSO`胜利/失败) | `BossBase.Die()` | `GameManager``AudioManager``UIManager` |
| `EVT_BossFightToggled` | `BoolEventChannelSO`true=开始,false=结束) | `BossOrchestrator`(开始)、`BossBase.Die()`(结束) | `BossHPBar`(显示/隐藏 Boss 血条) |
| `EVT_BossFightStarted` | `StringEventChannelSO`bossId | `BossFightTrigger`(玩家进入竞技场触发区) | `GameManager`(切换 BossFight 状态)、`AudioManager` |
| `EVT_BossFightEnded` | `BoolEventChannelSO`true=开始 / false=结束) | `BossFightTrigger`(开始)、`BossBase.Die()`(结束) | `BossHPBar`(显示/隐藏血条)`AudioManager``UIManager` |
| `EVT_BossHPChanged` | `IntEventChannelSO` | `BossBase`(受击/回血) | `BossHPBar`HP 进度条更新) |
| `EVT_BossNameSet` | `StringEventChannelSO`bossName | `BossOrchestrator`(战斗开始时 | `BossHPBar`(显示 Boss 名称标签) |
| `EVT_BossHPMaxSet` | `IntEventChannelSO` | `BossOrchestrator`(战斗开始时 | `BossHPBar`(初始化满血值) |
| `EVT_BossNameSet` | `StringEventChannelSO`bossName | ⚠️ 暂无发送方(旧编排器已删除 | `BossHPBar`(显示 Boss 名称标签) |
| `EVT_BossHPMaxSet` | `IntEventChannelSO` | ⚠️ 暂无发送方(旧编排器已删除 | `BossHPBar`(初始化满血值) |
| `EVT_BossPhaseChanged` | `BossPhaseEventChannelSO`bossId, phase | `BossBase.EnterPhase()` | `BossHUD`(相机切换通过 `CameraStateController.Instance` 直接调用,不订阅事件)|
| `EVT_BossSkillStarted` | `BossSkillEventChannelSO`bossId, skillId | `BossSkillExecutor` | `BossHUD`(显示技能名)(震动通过 `CameraStateController.Instance.TriggerImpulse()` 直接调用)|
| `EVT_BossSkillEnded` | `BossSkillEventChannelSO`bossId, skillId | `BossSkillExecutor` | `BossOrchestrator`BD 决策推进) |
| `EVT_BossVulnerabilityWindowOpened` | `StringEventChannelSO`bossId | `WeakPointSystem` | `PlayerFeedback`(提示音效)、`HUDController` |
| `EVT_NailClash` | `VoidEventChannelSO` | `ClashResolver`(玩家与敌人 HitBox 对碰) | `VFXSpawner`(拼刀特效)、`AudioManager`(拼刀音效)、`CameraStateController`(轻振动) |
| `EVT_StatusEffectApplied` | `StatusEffectEventChannelSO` | `StatusEffectManager.ApplyEffect()` | `HUDController`(状态图标)、`PlayerFeedback`(特效) |
| `EVT_StatusEffectExpired` | `StatusEffectEventChannelSO` | `StatusEffectManager.Tick()` | `HUDController`(移除状态图标) |