# DA_RoomMutation — Data Asset

**Parent Class:** `UDataAsset`
**Dependencies:** [`BPC_AdaptiveEnvironmentDirector`](../10-adaptive/)
**Purpose:** Defines room mutation rules — environment changes triggered by narrative progression, fear state, or adaptive difficulty.

---

## Variables / Structure

| Field | Type | Description |
|-------|------|-------------|
| `MutationTag` | `FGameplayTag` | Unique mutation identifier |
| `RoomFilter` | `FGameplayTag` | Which rooms this mutation applies to |
| `MutationType` | `EMutationType` | Geometry, Lighting, Audio, EnemyPlacement, LootPlacement |
| `RequiredNarrativeFlags` | `TArray<FGameplayTag>` | Flags required for mutation to activate |
| `RequiredFearThreshold` | `EFearThreshold` | Minimum fear tier needed |
| `CooldownSeconds` | `float` | Min time between mutations |
| `MutationChance` | `float` | 0.0-1.0 probability per eligible room |
| `bCanRevert` | `bool` | Can room return to original state |
| `RevertCondition` | `FGameplayTag` | Narrative flag that triggers revert |

---

## Gameplay Tags
- Namespace: `RoomMutation.<Type>.<Name>` (e.g., `RoomMutation.Geometry.WallShift`)

---

## Validation Rules
- `MutationTag` must be unique
- `MutationChance` must be 0.0-1.0

---

## Example Data

| Field | Value |
|-------|-------|
| MutationTag | `RoomMutation.Geometry.CeilingDrop` |
| MutationType | Geometry |
| RequiredFearThreshold | Afraid |
| MutationChance | 0.3 |

---

## Consumed By
- [`BPC_AdaptiveEnvironmentDirector`](../10-adaptive/)