# Weapons, AI & Adaptive — Asset Creation Sheet (31 assets)

> **UE5 Path:** `Content/Framework/Weapons/`, `Content/Framework/AI/`, `Content/Framework/Adaptive/`

---

## Weapons (08-weapons — 10 remaining BP assets)

### BP_WeaponBase (Actor)
**Parent:** `Actor` → Add SkeletalMesh, ArrowComponent (muzzle)

| Variable | Type | Default |
|----------|------|---------|
| `WeaponData` | `DA_ItemData` | Assign |
| `AmmoLoaded` | Integer | `0` |
| `FireMode` | GameplayTag | `Framework.Combat.FireMode.SemiAuto` |
| `MuzzleFlashFX` | ParticleSystem | Assign |
| `FireSound` | SoundBase | Assign |

**Implements:** `I_Interactable`, `I_UsableItem`

### BP Components (attach to player/enemy pawns)

| Component | Key Variables |
|-----------|--------------|
| `BPC_AmmoComponent` | `ReserveAmmo`(Int), `MaxReserve`(Int), `AmmoType`(GameplayTag) |
| `BPC_CombatFeedbackComponent` | `bShowHitMarker`(Bool), `HitMarkerDuration`(Float) |
| `BPC_DamageReceptionSystem` | ✅ C++ done — attach directly |
| `BPC_DeathCauseTracker` | `LastDamageType`(GameplayTag), `LastKiller`(Actor) |
| `BPC_FirearmSystem` | `CurrentFireMode`(GameplayTag), `bChamberEmpty`(Bool) |
| `BPC_HitReactionSystem` | `FlinchAnimation`(AnimMontage), `KnockdownAnimation`(AnimMontage) |
| `BPC_MeleeSystem` | `ComboCount`(Int), `CurrentComboWindow`(Float) |
| `BPC_RecoilSystem` | `RecoilPattern`(CurveVector), `RecoilRecoverySpeed`(Float) |
| `BPC_ReloadSystem` | `ReloadTime`(Float), `bTacticalReload`(Bool) |
| `BPC_ShieldDefenseSystem` | `ShieldHealth`(Float), `BlockAngle`(Float) |

---

## AI (09-ai — 9 BP assets)

### BP_EnemyBase (Character)
**Parent:** `Character` → Add SkeletalMesh, Capsule, AI Perception

| Variable | Type | Default |
|----------|------|---------|
| `EnemyData` | `DA_EncounterData` | Assign |
| `AlertLevel` | GameplayTag | `Framework.AI.Alert.Unaware` |
| `Archetype` | GameplayTag | `Framework.AI.Archetype.Patrol` |

### Components
| Component | Purpose |
|-----------|---------|
| `BPC_AlertSystem` | Suspicious → Alerted → Combat state machine |
| `BPC_AIStateMachine` | Patrol/Search/Combat/Flee transitions |
| `BPC_AIMemorySystem` | Last known locations, threat history |
| `BPC_AIPerceptionSystem` | Sight, hearing, damage sense |
| `BPC_BehaviourVariantSelector` | Weighted random behavior selection from DA_BehaviourVariant set |

### Other AI Assets
| Asset | Type | Purpose |
|-------|------|---------|
| `BP_PatrolPath` | Actor + Spline | Patrol waypoints |
| `AI_BaseAgentController` | AIController | Behavior tree runner |
| `BB_AgentBoard` | Blackboard | AI keys (Target, LastLocation, AlertLevel, etc.) |

---

## Adaptive (10-adaptive — 13 BP assets)

### Components
| Component | Purpose |
|-----------|---------|
| `BPC_DifficultyManager` | Dynamic difficulty scaling based on player metrics |
| `BPC_FearSystem` | AI + player fear states, cower, flee |
| `BPC_PerformanceScaler` | LOD, spawn distance, effect quality |
| `BPC_ProceduralEncounter` | Difficulty-based spawn group generation |
| `BPC_AdaptiveEnvironmentDirector` | Room mutation, event coordination |
| `BPC_AtmosphereStateController` | Room tone, tension, mood |
| `BPC_AudioAtmosphereController` | [DEPRECATED — use SS_AudioManager] |
| `BPC_LightEventController` | Flicker, dim, color shift, strobe |
| `BPC_MemoryDriftSystem` | Visual/audio/dialogue distortions (stress-based) |
| `BPC_PacingDirector` | Intensity bands, encounter frequency, music |
| `BPC_PlaystyleClassifier` | Aggressive/Stealthy/Explorer/Balanced |
| `BPC_RareEventSystem` | Weighted rare event selection + cooldown |
| `BPC_ScareEventSystem` | Jump scares, anticipation, recovery |
| `SS_AudioManager` | GameInstanceSubsystem — MetaSounds entry point |
| `BP_RoomAudioZone` | TriggerVolume — auto-switches room reverb |

---

## Test Weapons
- [ ] Pick up weapon → attaches to hand socket
- [ ] Fire → muzzle flash + recoil + ammo count decreases
- [ ] Empty magazine → auto-reload (or click Reload)
- [ ] Melee → combo counter increments

## Test AI
- [ ] Patrol path → enemy walks waypoints
- [ ] Player enters sight → alert level rises → chase begins
- [ ] Player hides → enemy loses sight → searches last known location
- [ ] Combat → enemy uses behavior variant (flanking, cover, rush)

## Test Adaptive
- [ ] Player dies frequently → difficulty decreases (fewer enemies, more health)
- [ ] Player excels → difficulty increases
- [ ] Stress high → memory drift distortions activate
- [ ] Scare event triggers → jump scare sound + visual plays
