| 05_PlayerModule.md |
SwimState 加入 FSM 列表;PlayerController 添加 ShieldComponent 引用 |
✅ 已应用 |
| 06_CombatModule.md |
ProjectileConfigSO、LinearProjectile、ParryableProjectile;HurtBox 护盾检查步骤 |
✅ 已应用 |
| 07_EnemyModule.md |
EnemyBase._lootTable 字段;Die() 调用 LootResolver;§14 LootTableSO/LootResolver/LootPickup |
✅ 已应用 |
| 09_ProgressionModule.md |
§7.5 ToolSlotManager(两槽 + 冷却)+ ToolHUD |
✅ 已应用 |
| 12_SaveModule.md |
§9 EmergencySaveService + CrashReporter |
✅ 已应用 |
| 04_InputModule.md |
§6 RebindPanel、ConflictDetector、RebindPersistence |
✅ 已应用 |
| 14_NarrativeModule.md |
§7.5 CutsceneSO + CutsceneTrigger |
✅ 已应用 |
| 16_SupportingModules.md |
§3 IPlatformService 补全(IncrementStat/GetStat/IsAchievementUnlocked/RichPresence/Rumble/Lifecycle);§6 AccessibilityManager 全面重写(AccessibilitySettingsSO + ColorBlindFilter);§8 AnalyticsManager;§9 SpeedrunTimer |
✅ 已应用 |
| 05_PlayerModule.md |
§5 PlayerCombat 更新(HitBox 挂角色/RefreshWeaponData/SetComboSegmentSource);§6 FormController 改 CurrentForm→FormSO + C# event;§7 WeaponManager 全面重写(FormSO 驱动/override 词典);WeaponSO 改为纯数据 SO;FormSO.defaultWeapon;WeaponOverrideEffect;§18 FormConfigSO 改为 forms:FormSO[];AttackState 更新连击读取逻辑 |
✅ 已应用 |
| 06_CombatModule.md |
§12 Layer 矩阵重写(PlayerHitBox/EnemyHitBox 正确命名;完整 32 层 Layer ID 表;Ghost/MagicWall/PhantomBody 补充矩阵) |
✅ 已应用 |
| 03_CoreModule.md |
§10 初始化序列注释 DifficultyManager 加载顺序与事件广播说明 |
✅ 已应用 |
| 02_EventSystem.md |
EVT_AbilityUnlocked 类型从 AbilityTypeEventChannelSO 改为 StringEventChannelSO(payload 改为 abilityId string);订阅方补充 AbilityGate |
✅ 已应用 |
| 09_ProgressionModule.md |
§2 AbilityGate 重写(StringEventChannelSO、_hintUI、_saveData 注入、OnEnable/OnDisable 订阅、handler 改为 string 参数);§4 EquipmentContext 改 class→struct、字段对齐 Design/17;§5 内置魅力效果全面更新(StatModifierEffect/AttackSpeedEffect/OnHitEffect API 对齐 Design;新增 SoulSpellEffect、SkillSlotOverrideEffect、WeaponOverrideEffect);§6 EquipmentManager 改 TryEquipCharm/UnequipCharm、返回 string |
null、_ctx 在 Awake 初始化、添加 CharmEventChannelSO 频道;§15 事件表 EVT_AbilityUnlocked 类型同步 |
| 10_UIModule.md |
§4 BossHPBar 事件频道从 StringEventChannelSO _onBossFightStarted + BoolEventChannelSO _onBossFightEnded + FloatEventChannelSO _onBossHPRatioChanged 改为 BoolEventChannelSO _onBossFightToggled + IntEventChannelSO _onBossHPChanged + StringEventChannelSO _onBossNameSet + IntEventChannelSO _onBossHPMaxSet;同步底部事件表;EVT_AbilityUnlocked 类型同步 |
✅ 已应用 |
| 11_AudioModule.md |
§3 BGMController 字段 _onAudioZoneEntered→_onRegionEntered、_currentZoneId→_currentRegion、方法 SwitchZoneBGM→OnRegionEntered;§3.5 状态机图同步;§4 AudioZone _onAudioZoneEntered→_onRegionEntered;事件表 EVT_AudioZoneEntered→EVT_RegionEntered |
✅ 已应用 |
| 14_NarrativeModule.md |
头部命名空间/路径新增 BaseGames.EventChain;§5 EventChain 完全重写:Step-based(IEventChainStep/ECS_*/EventChainContext)→ Condition+Action SO 驱动(7 种 ChainCondition + 10 种 ChainAction,含 BossDefeatedCondition/FlagSetCondition/AbilityUnlockedCondition 等);§6 EventChainManager 完全重写:路径从 Cutscene/ 改为 EventChain/,字段改为 EventChainSO[] _chains + 5 个 StringEventChannelSO,中继 C# 事件供 ChainCondition.Register(),EvaluateAll()+ExecuteChain() 自动评估执行,_completedChains HashSet 持久化,OnChainCompleted 事件广播;§6.1 SaveData 集成说明 |
✅ 已应用 |
| 02_EventSystem.md |
战斗系统表新增 EVT_BossFightToggled(BoolEventChannelSO)、EVT_BossHPChanged(IntEventChannelSO)、EVT_BossNameSet(StringEventChannelSO)、EVT_BossHPMaxSet(IntEventChannelSO)四条 BossHPBar 所需频道;音频系统表 EVT_AudioZoneEntered→EVT_RegionEntered(对齐 Architecture/11);新增 § 事件链/EventChain 区段(EVT_ChainCompleted / EVT_DoorOpened / EVT_FlagChanged) |
✅ 已应用 |
| 09_ProgressionModule.md |
AbilityType 枚举新增 AerialDash(空中冲刺,默认锁定)和 InvincibleDash(冲刺全程无敌);§10 SkillModifierRegistry 新增 GetEffectiveParams(FormSkillSO)→EffectiveSkillParams 主 API 及 EffectiveSkillParams 结构体(含 effectiveCost/effectiveCooldown/damageMult/rangeMult/effectiveFeedback/effectiveAnimation 字段),保留 GetModifiedValue() 向后兼容 |
✅ 已应用 |
| 11_AudioModule.md |
§9 脚步声材质分层系统(FootstepMaterial 枚举、FootstepAudioConfigSO、FootstepMaterialMarker、播放时机说明);§10 水下音效处理(UnderwaterAudioController、Underwater Snapshot DSP 配置、水下专属 SFX 对照表) |
✅ 已应用 |
| 12_SaveModule.md |
§10 SaveValidator 静态类(Result 结构体、HP/Geo/Scene/Version 四项校验规则,SaveAsync 前调用);§11 IDlcSaveExtension 接口(DlcId/Serialize/Deserialize/MigrateIfNeeded/OnNgPlusReset 五个成员)及 SaveManager 集成(RegisterDlcExtension、SaveAsync/LoadAsync 循环调用) |
✅ 已应用 |
| 14_NarrativeModule.md |
§7.6 SignalEmitterClip 自定义 PlayableAsset(零耦合 Timeline→SO 事件桥接):SignalEmitterClip(PlayableAsset/ITimelineClipAsset)+ SignalEmitterBehaviour(PlayableBehaviour,含 _fired 防重复机制)及使用场景示例 |
✅ 已应用 |
| 16_SupportingModules.md |
§1.1 LanguageManagerSO(SO 单例,PlayerPrefs 持久化,SetLocale/GetCurrentLocaleCode/LoadSavedLocale 三方法);与静态 LocalizationManager 职责对比说明(文本查询 vs 语言切换+持久化) |
✅ 已应用 |
| 12_SaveModule.md |
EquipmentSaveData 移除重复工具字段(ToolSlot0/ToolSlot1/OwnedToolIds/ToolStates)——这些字段仅属于 ToolsSaveData(顶层 SaveData.Tools);添加注释说明归属 |
✅ 已应用 |
| 09_ProgressionModule.md |
ToolSlotManager.OnSave() 数据写入路径从 data.Equipment.ToolSlotX 修正为 data.Tools.ToolSlotX;OnLoad 注释同步为"从 data.Tools 恢复" |
✅ 已应用 |
| 23_BossSkillModule.md |
BossSkillSO 补全 attackPatterns: AttackPatternSO[]、counterResponses: PlayerCounterResponse[]、arenaEvents: ArenaEventTrigger[]、resourceCost: BossResourceCost、buildsRage: bool、poiseWindow: PoiseWindowConfig 六个缺失字段;新增 §4.1 PlayerCounterResponse + CounterType 枚举、§4.2 ArenaEventTrigger/ArenaEventType/ArenaEventParams/ArenaEventData/IArenaInteractable、§4.3 BossResourceCost + BossResourceConfigSO 定义 |
✅ 已应用 |
| 16_SupportingModules.md |
§2 AchievementManager 完全重写(对齐 Design/32 SO 策略模式):AchievementDef/AchievementDatabaseSO 替换为 AchievementSO + AchievementType/AchievementTier 枚举 + AchievementCondition 抽象基类(RegisterListeners/UnregisterListeners/IsMet)+ 内置 12 种条件类型表 + DefeatedBossCondition 示例 + AchievementManager(_allAchievements: AchievementSO[],中继 C# 事件,EvaluateAll/Unlock)+ AchievementRuntimeState |
✅ 已应用 |
| 24_AnimEventModule.md |
IAnimEventReceiver 重命名为 IAnimationEventHandler;方法签名 OnAnimationEvent(type, data) 改为 HandleEvent(type, payload);AnimationEventBinder.Bind() 参数类型、PlayerAnimationEvents/EnemyAnimationEvents 实现声明及方法体内 payload 用法全部同步 |
✅ 已应用 |
| 16_SupportingModules.md |
§5 AntiSoftlockSystem 后新增 §5.1 RoomEscapeInfoSO(设计时房间逃离 SO,含 EscapeRoute 嵌套类,对齐 Design/49 §3)+ §5.2 HardAbilityGate(AbilityGate 子类,_requirePhysicalValidation + _sequenceBreakRisk,对齐 Design/49 §4.2) |
✅ 已应用 |
| 13_AssetPoolModule.md |
AddressKeys 常量从下划线分隔(Scene_Persistent/Pfx_Enemy_Grunt/Label_Enemy 等)改为驼峰式无下划线(ScenePersistent/PrefabEnemyGrunt/LabelEnemy 等),对齐 Design/43 §8 命名规范;ScenePersistent 值修正 "Persistent" → "Scene_Persistent";ObjectPoolManager 类全部重命名为 GlobalObjectPool(类名/Instance/PooledObject.Setup 参数/内部 _pool 字段/文件路径注释均更新) |
✅ 已应用 |
| 14_NarrativeModule.md |
§1 IInteractable 命名空间从 BaseGames.Dialogue 修正为 BaseGames.World,文件路径从 Dialogue/ 改为 World/;新增 §2 InteractionPromptController(提示图标组件,Show/Hide/图标切换);DialogueLineSO 段补加 §3 标题;§4 DialogueManager 重编号(原§3);新增 §5 DialogueUI(ShowLine/SkipTyping/Hide + StringBuilder 打字机零分配实现);§6 InteractableNPC 重编号并添加 Interact_Internal/GetCurrentDialogue 虚方法;新增 §7 NarrativeNPC(DialogueVersion[],CheckConditions 条件对话)+ DialogueVersion 结构体;新增 §8 WorldStateRegistry(SO 形式,HashSet 存储,SetFlag/HasFlag/LoadFromSave/GetAllFlags);EventChain/EventChainManager 等段落重编号为 §9-12;CutsceneTrigger 修正:改用 [SerializeField] WorldStateRegistry _worldState SO 注入,将 WorldStateRegistry.Instance.IsFlagSet 替换为 _worldState.HasFlag,将 SetFlag(..., true) 改为单参数 SetFlag(...) |
✅ 已应用 |
| 20_ShieldModule.md |
IShieldable.AbsorbDamage 签名从 void AbsorbDamage(ref DamageInfo info) 改为 int AbsorbDamage(int incomingDamage)(返回穿透伤害剩余量,对齐 Design/30 §2.3);ShieldComponent 实现同步(移除 ref 参数,return passThrough,注释更新);HurtBox 调用方式更新:_shieldable.AbsorbDamage(info.Amount) 取返回值再 TakeDamage |
✅ 已应用 |
| 21_LiquidPuzzleModule.md |
PuzzleWire 中 WireLogic 枚举重命名为 LogicType(对齐 Design/35);字段 _logic: WireLogic 更新为 _logic: LogicType;switch case 常量同步 |
✅ 已应用 |
| 22_QuestChallengeModule.md |
§3 QuestObjectiveSO 从单类+ObjectiveType 枚举重写为多态体系(抽象基类 + TalkToNPCObjective/DefeatEnemyObjective/CollectItemObjective/ReachAreaObjective/UseSkillObjective 五个子类,对齐 Design/38 §3);QuestManager.IsObjectiveComplete 改用 obj.EvaluateCompletion(state) 多态调用;§6 QuestGiver 从 [RequireComponent] MonoBehaviour 改为 QuestGiver : InteractableNPC(继承方式),字段改为 QuestSO[] _offeredQuests 数组,通过 override Interact_Internal+override GetCurrentDialogue 实现任务接受/完成和对话切换(对齐 Design/38 §5) |
✅ 已应用 |
| 08_WorldModule.md |
§7 IInteractable 命名空间从 BaseGames.Dialogue 修正为 BaseGames.World,文件路径注释从 Assets/Scripts/Dialogue/IInteractable.cs(位于 Dialogue 命名空间,World 引用它) 改为 Assets/Scripts/World/IInteractable.cs(对齐 Architecture/14 §1 权威定义) |
✅ 已应用 |
| 04_InputModule.md |
§4 InputBuffer 从单一 _bufferTime = 0.15f 改为三个独立缓冲时长字段(_jumpBufferDuration=0.15f/_attackBufferDuration=0.12f/_dashBufferDuration=0.10f),对齐 Design/01 §4 缓冲时长配置表;注释补充弹反/UseSpring/SpiritSkill 不缓冲说明;OnEnable/OnDisable 订阅改用各自独立时长字段 |
✅ 已应用 |
| 06_CombatModule.md |
§5 HurtBox ReceiveDamage 步骤 4 护盾拦截:移除旧 _shieldable.AbsorbDamage(ref info) + return 模式,改为 int passThrough = _shieldable.AbsorbDamage(info.Amount),passThrough ≤ 0 时 return,否则将穿透量赋回 info.Amount 继续走后续防御减免→TakeDamage 流程(对齐 Architecture/20 IShieldable 新签名) |
✅ 已应用 |
| 07_EnemyModule.md |
§1 EnemyBase 新增 public virtual void Knockback(DamageInfo info) 方法(检查 DamageFlags.NoKnockback,调用 _movement.ApplyKnockback,对齐 Design/06 §2 方法表);§6 EnemyStatsSO [Header("Attack")] 后新增 [Range(0f,1f)] public float StaggerResistance = 0f 字段(0=正常硬直,1=完全免疫,对齐 Design/06 §3 属性表) |
✅ 已应用 |
| 01_ProjectStructure.md |
§5 AddressKeys 类常量名从下划线分隔(Pfx_Player_Main/Pfx_UI_HUD/Pfx_VFX_HitSpark 等)全部改为驼峰式(PrefabPlayer/PrefabUIHUD/PrefabVFXHitSpark 等),命名规范注释同步;§6 推荐模式代码示例 AddressKeys.Pfx_Player_Main 改为 AddressKeys.PrefabPlayer,ObjectPoolManager.Instance.Spawn 改为 GlobalObjectPool.Instance.Spawn,常量引用同步 |
✅ 已应用 |
| 18_VFXFeedbackModule.md |
头部依赖说明 BaseGames.Core(ObjectPoolManager) 改为 BaseGames.Core(GlobalObjectPool),对齐 Architecture/13 全局对象池命名 |
✅ 已应用 |
| 05_PlayerModule.md |
§1 设计原则从「HitBox 不挂载在 Player Prefab 本体上 / 独立武器 Prefab」改为「HitBox 固定挂载于 Player Prefab / PlayerCombat 管理四向 HitBox / WeaponSO 纯数据驱动」,对齐 §5 PlayerCombat 及 §7 WeaponManager 的实际实现(注释一致性修正) |
✅ 已应用 |
| 06_CombatModule.md |
§1 DamageInfo 结构体字段:移除所有 readonly 关键字(Builder 类需从外部为 _d 的字段赋值,C# 禁止为 class 内嵌 struct 的 readonly 字段赋值);注释改为「Builder 工具类负责逐字段构建,Amount/FinalDamage 在 HurtBox 流水线内可就地修改(局部变量)」,确保代码可编译 |
✅ 已应用 |
| 02_EventSystem.md |
末尾新增 §7 EventChannelRegistry(全文定义:MonoBehaviour 单例,Dictionary<string, SO> 注册表,Register/Get 两方法,DontDestroyOnLoad,注册时机说明);对齐 Architecture/09 §4 EquipmentContext.Events 字段及 EquipmentManager.Awake() 的 EventChannelRegistry.Instance 调用 |
✅ 已应用 |