61 lines
2.2 KiB
Markdown
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 |