Files

61 lines
2.2 KiB
Markdown

# DA_EncounterData — Data Asset
**Parent Class:** `Primary Data Asset` (Blueprint: `PrimaryDataAsset`)
**Dependencies:** [`BPC_ProceduralEncounter`](../10-adaptive/92_BPC_ProceduralEncounter.md)
**Purpose:** Defines procedural encounter configurations — enemy types, spawn rules, difficulty scaling, and encounter triggers.
---
## Variables / Structure
| Field | Type | Description |
|-------|------|-------------|
| `EncounterTag` | `Gameplay Tag` | Unique encounter identifier |
| `EnemyArchetypes` | `Array<Primary Asset Id>` | Allowed enemy `DA_BehaviourVariant` references |
| `MinEnemies` | `Integer` | Minimum spawn count |
| `MaxEnemies` | `Integer` | Maximum spawn count |
| `SpawnRadius` | `Float` | Radius around trigger point (cm) |
| `SpawnDelay` | `Float` | Time between individual spawns |
| `bTriggerOnOverlap` | `Boolean` | Auto-trigger on player overlap |
| `bTriggerOnAlert` | `Boolean` | Trigger when alert level reaches threshold |
| `RequiredAlertLevel` | `Float` | Alert threshold (0.0-1.0) |
| `EncounterCooldown` | `Float` | Min time between encounters |
| `DifficultyScaling` | `Curve Float` (Object Reference) | Curve for scaling enemy count/strength by difficulty |
| `NarrativePrerequisites` | `Array<Gameplay Tag>` | Narrative flags required |
---
## Gameplay Tags
- Namespace: `Encounter.<Type>.<Name>` (e.g., `Encounter.Ambush.Hallway`, `Encounter.Siege.Room`)
---
## Validation Rules
- `MinEnemies` must be >= 1
- `MaxEnemies` must be >= `MinEnemies`
- At least one `EnemyArchetype` required
- `SpawnRadius` must be > 0
---
## Example Data
| Field | Value |
|-------|-------|
| EncounterTag | `Encounter.Ambush.DarkCorridor` |
| EnemyArchetypes | `[DA_AIProfile_Crawler, DA_AIProfile_Stalker]` |
| MinEnemies | 2 |
| MaxEnemies | 5 |
| SpawnRadius | 800.0 |
| bTriggerOnOverlap | true |
---
## Consumed By
- [`BPC_ProceduralEncounter`](../10-adaptive/70_BPC_ProceduralEncounter.md)
- [`BPC_DifficultyManager`](../10-adaptive/62_BPC_DifficultyManager.md)
## Reuse Notes
- Encounter data is completely data-driven; spawning logic reads from this DA
- DifficultyScaling curve allows non-linear difficulty adjustment
- Narrative prerequisites gate encounters behind story progression