s&box Rollermine: physics-driven NPC using Rigidbody (not NavMeshAgent).
s&box ScientistNpc fear system: _peakFear accumulates on damage (damage/50f, ...
s&box FireWeapon task: only fire when IsFacingTarget() returns true (body ang...
s&box NPC AnimationLayer: sync move/look state, compute move_direction as atan2, broadcast attack triggers
s&box NPC SensesLayer: throttle scans to 100ms, FindInPhysics sphere query, LOS with IsDescendant check
s&box NPC MoveTo: navigate to bounds.ClosestPoint, re-evaluate path every 0.5s, face movement direction when lateral
s&box NPC: cache schedules by type in Dictionary to avoid per-tick allocation, interrupt via EndCurrentSchedule()
s&box NPC architecture: ScheduleBase (task sequence) + TaskBase (atomic action) with ShouldCancel() interrupt