# 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..` (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