53 lines
1.6 KiB
Markdown
53 lines
1.6 KiB
Markdown
# 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 |