HasEligibleAttack() 只看攻击射程圆(远小于追击/视野区),脱离全部感知区在真实系统里 必然已脱离攻击射程,原顺序(attackInRange 先于 leftAllZones)本就正确。 FakeCombat.Eligible 是裸字段不会随 Chase/Vision 联动,才让上一版看似需要调边序。 改法:边序退回原样,测试里玩家离开感知区时手工同步清 Eligible,贴合真实耦合关系。
寻路逼近↔到射程选招攻击的交战模块。招式射程/冷却/权重归 EnemyAttackSelector, 本模块只决定何时逼近、何时出手。 有意的行为变更:Attack 态去掉 leftAllZones 边,玩家在前摇中跑出感知区不再 中途打断招式,招式完整打完后经 Approach 自然脱战。