# 09 — Enemy AI Static Analysis **Status: Draft** - **Scope (Batch 1 seed):** Native enemy class only + Blueprint child path seeds. No Behavior Tree assumption. No deep enemy Blueprint graph walk yet. - **Inspection method:** Read `ARIRBaseEnemyCharacter`; calibration prior (no BT/BB/custom AIController assets); subclass path search. - **Last updated:** 2026-07-16 - **Current phase:** Phase 1 — Static Architecture - **Last completed pass:** Pass 2 (Batch 1) - **Next pass expected to contribute:** Batch 4 Pass 9 ## Draft tracking ### Completed sections - Native enemy ASC ownership and highlight interface - Confirmation: no chase/attack/MoveTo in native C++ - Blueprint child paths ### Pending sections - BP_EnemyCharacterBase / BP_Enemy_Skeleton graphs (Tick, overlaps, MoveTo, timers) - AIControllerClass / AutoPossessAI on CDOs - Reconfirm BT asset absence ### Evidence still required - Where chase/attack was intended to live (Blueprint vs missing) - Runtime root cause of nonfunctional chase/attack — Requires Runtime Inspection --- ## Native findings **Observed Implementation:** `ARIRBaseEnemyCharacter` implements: - ASC + AttributeSet on self (Minimal replication) - InitAbilityActorInfo(this, this) in BeginPlay - ITargetInterface highlight via custom depth - Visibility collision on mesh **Observed Implementation:** No AIController subclass, no MoveTo, no perception, no attack timers in native. **Calibration (prior Observed Implementation):** Stock `/Script/AIModule.AIController`; AutoPossessAI PlacedInWorld on skeleton instance; no project BehaviorTree assets. **Issue:** Existing Baseline Defect (enemy chase/attack nonfunctional per project brief). Static native code alone cannot confirm root cause. **Blueprint seeds:** `BP_EnemyCharacterBase`, `BP_Enemy_Skeleton`.