58 lines
2.1 KiB
Markdown
58 lines
2.1 KiB
Markdown
# DA_ObjectiveData — Data Asset
|
|
|
|
**Parent Class:** `UDataAsset`
|
|
**Dependencies:** [`BPC_ObjectiveSystem`](../07-narrative/39_BPC_ObjectiveSystem.md), [`WBP_ObjectiveDisplay`](../06-ui/WBP_ObjectiveDisplay.md)
|
|
**Purpose:** Defines objective content — objective text, requirements, completion conditions, linked narrative flags, and reward data.
|
|
|
|
---
|
|
|
|
## Variables / Structure
|
|
|
|
| Field | Type | Description |
|
|
|-------|------|-------------|
|
|
| `ObjectiveTag` | `FGameplayTag` | Unique tag for this objective |
|
|
| `ObjectiveText` | `FText` | Display text for HUD/journal |
|
|
| `ObjectiveCategory` | `EObjectiveCategory` | Main, Side, Hidden, Tutorial |
|
|
| `PrerequisiteFlags` | `TArray<FGameplayTag>` | Narrative flags required before objective activates |
|
|
| `CompletionFlags` | `TArray<FGameplayTag>` | Flags set when objective completes |
|
|
| `bIsOptional` | `bool` | Objective can be skipped |
|
|
| `ObjectiveLocation` | `FVector` | World location for marker |
|
|
| `RewardItems` | `TArray<FPrimaryAssetId>` | Items granted on completion |
|
|
| `RewardExperience` | `int32` | XP awarded |
|
|
| `LinkedEndingWeight` | `float` | Score contribution to ending evaluation |
|
|
|
|
---
|
|
|
|
## Gameplay Tags
|
|
- Namespace: `Objective.<Category>.<Name>` (e.g., `Objective.Main.FindKey`, `Objective.Side.RescueNPC`)
|
|
|
|
---
|
|
|
|
## Validation Rules
|
|
- `ObjectiveTag` must be unique
|
|
- `ObjectiveText` must not be empty
|
|
- At least one `CompletionFlag` required (unless narrative-driven)
|
|
|
|
---
|
|
|
|
## Example Data
|
|
|
|
| Field | Value |
|
|
|-------|-------|
|
|
| ObjectiveTag | `Objective.Main.EscapeHospital` |
|
|
| ObjectiveText | "Escape the abandoned hospital" |
|
|
| ObjectiveCategory | Main |
|
|
| CompletionFlags | `Narrative.EscapedHospital` |
|
|
| RewardExperience | 500 |
|
|
|
|
---
|
|
|
|
## Consumed By
|
|
- [`BPC_ObjectiveSystem`](../07-narrative/39_BPC_ObjectiveSystem.md)
|
|
- [`WBP_ObjectiveDisplay`](../06-ui/WBP_ObjectiveDisplay.md)
|
|
- [`BPC_EndingAccumulator`](../07-narrative/BPC_EndingAccumulator.md)
|
|
|
|
## Reuse Notes
|
|
- Objectives are data-driven; no blueprint logic changes needed for new objectives
|
|
- `PrerequisiteFlags` gate objective activation behind narrative flags
|
|
- `LinkedEndingWeight` feeds into ending evaluation system |