fix(enemy): 应用 Task 3 代码审查意见
补上池化路径的防重复记忆重置——ResetRepeatMemory 此前文档承诺了 「对象池复用时清除」却无任何调用点,而它要取代的 BossBase.LastUsedSkillId 恰好在 OnSpawn 里有重置。放 EnemyBase.OnSpawn 以覆盖全部池化敌人。 折扣系数改为每次选招前刷新,与 attackSelectionMode 的读取时机对齐—— 此前策划在播放模式下调系数无效、调模式却立即生效,容易误判为功能没生效。 默认值收敛为 EnemyAttackSelector.DefaultAntiRepeatFactor 单一常量。 测试:IneligiblePrevious 用例改用系数 0.5——原先用 0 时,把折扣错写在 eligibility 归零之前也照样通过,是个永远不会失败的测试;统计用例边界由 7σ 收紧到 5σ 使其真正验证该系数;补 ResetRepeatMemory 的确定性用例、 系数 1.0 无惩罚、三候选三条。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -46,7 +46,8 @@ namespace BaseGames.Enemies
|
||||
|
||||
[Tooltip("WeightedRandomAntiRepeat 模式下,上一次选中的招的权重折扣系数。" +
|
||||
"0 = 有替代招时绝不连续重复;1 = 不惩罚。仅该模式生效")]
|
||||
[Range(0f, 1f)] public float attackAntiRepeatFactor = 0.3f;
|
||||
[Range(0f, 1f)] public float attackAntiRepeatFactor
|
||||
= BaseGames.Enemies.Abilities.EnemyAttackSelector.DefaultAntiRepeatFactor;
|
||||
|
||||
[Header("追击 & AI 阶段")]
|
||||
[Tooltip("是否有警觉状态:勾选=未发现态进入视野先进警觉(朝向+警觉动画)再追击;不勾选=进入追逐感知直接追击")]
|
||||
|
||||
Reference in New Issue
Block a user