# DA_AdaptationRule — Data Asset

**Parent Class:** `UDataAsset`
**Dependencies:** [`BPC_DifficultyManager`](../10-adaptive/62_BPC_DifficultyManager.md)
**Purpose:** Defines adaptation rules for dynamic difficulty adjustment — thresholds, modifiers, and response curves.

---

## Variables / Structure

| Field | Type | Description |
|-------|------|-------------|
| `RuleTag` | `FGameplayTag` | Unique rule identifier |
| `AdaptationDomain` | `EAdaptationDomain` | EnemyCount, EnemyAggression, ResourceScarcity, EnvironmentalHazard |
| `ThresholdCheck` | `EThresholdType` | PlayerDeathCount, ClearTime, HealthLost, AmmoUsed |
| `ThresholdValue` | `float` | Trigger value for adaptation |
| `ModifierCurve` | `UCurveFloat*` | Response curve for modifier scaling |
| `ResponseMultiplier` | `float` | Base modifier strength |
| `MaxModifier` | `float` | Cap on total modifier |
| `CooldownMinutes` | `float` | Min time between adaptations |
| `bCanRevert` | `bool` | Adaptation can reverse |

---

## Gameplay Tags
- Namespace: `Adaptation.<Domain>.<Rule>` (e.g., `Adaptation.EnemyCount.IncreaseOnLowDeaths`)

---

## Validation Rules
- `RuleTag` must be unique
- `ModifierCurve` must be valid

---

## Example Data

| Field | Value |
|-------|-------|
| RuleTag | `Adaptation.EnemyAggression.IncreaseOnSpeed` |
| AdaptationDomain | EnemyAggression |
| ThresholdCheck | ClearTime |
| ThresholdValue | 300.0 |
| ResponseMultiplier | 1.5 |

---

## Consumed By
- [`BPC_DifficultyManager`](../10-adaptive/62_BPC_DifficultyManager.md)

## Reuse Notes
- Rules are composable — multiple rules apply simultaneously
- Curves allow non-linear adaptation responses