add blueprints

This commit is contained in:
Lefteris Notas
2026-05-19 13:22:27 +03:00
parent f71bc678b2
commit 411edea8ce
138 changed files with 23330 additions and 0 deletions

View File

@@ -0,0 +1,97 @@
# BP_PuzzleDeviceActor — Puzzle Device Actor
**Parent Class:** `Actor`
**Category:** Interaction
**Target UE Version:** 5.55.7
**Build Phase:** 2 — Interaction
---
## 1. Overview
`BP_PuzzleDeviceActor` is the base actor for all puzzle devices in the world — levers, pressure plates, valve wheels, keypads, combination locks, circuit boards, and custom logic puzzles. Each instance references a [`DA_PuzzleData`](../14-data-assets/DA_PuzzleData.md) that defines the puzzle rules, solution, and completion effects.
---
## 2. Enums
### `E_PuzzleType`
| Value | Description |
|-------|-------------|
| `Lever` | Single or multi-lever sequence |
| `PressurePlate` | Weight-activated plate |
| `ValveWheel` | Rotate-to-open valve |
| `Keypad` | Numeric code entry |
| `CombinationLock` | Multi-dial combination |
| `CircuitBoard` | Connect-the-pins puzzle |
| `Custom` | Script-driven puzzle |
### `E_PuzzleState`
| Value | Description |
|-------|-------------|
| `Unsolved` | Puzzle not yet completed |
| `InProgress` | Player interacting with puzzle |
| `Solved` | Puzzle completed successfully |
| `Failed` | Puzzle failed (if retryable) |
| `Locked` | Puzzle locked (requires item/flag) |
---
## 3. Variables
| Variable | Type | Description |
|----------|------|-------------|
| `PuzzleData` | `DA_PuzzleData*` | Data asset defining this puzzle |
| `CurrentState` | `E_PuzzleState` | Current puzzle state |
| `bIsInteractable` | `bool` | Can player interact with this puzzle |
| `InteractionPrompt` | `FText` | Prompt text for interaction |
| `LinkedActor` | `AActor*` | Actor to notify on solve (door, gate, etc.) |
| `bResetOnFail` | `bool` | Auto-reset after failure |
| `MaxAttempts` | `int32` | Max attempts before lockout (-1 = unlimited) |
| `CurrentAttempts` | `int32` | Attempts used so far |
| `CooldownSeconds` | `float` | Time before re-interaction allowed |
---
## 4. Functions
| Function | Description |
|----------|-------------|
| `BeginInteraction` | Player starts interacting with puzzle |
| `EndInteraction` | Player exits puzzle UI |
| `CheckSolution` | Validates player input against puzzle data |
| `OnPuzzleSolved` | Processes completion — notifies LinkedActor |
| `OnPuzzleFailed` | Processes failure — resets or locks |
| `ResetPuzzle` | Resets puzzle to default state |
| `GetPuzzleState` | Returns current `E_PuzzleState` |
---
## 5. Event Dispatchers
| Dispatcher | Payload | Description |
|------------|---------|-------------|
| `OnPuzzleStateChanged` | `E_PuzzleState NewState` | State transition occurred |
| `OnPuzzleSolved` | `AActor* Solver` | Puzzle completed |
| `OnPuzzleFailed` | `int32 AttemptNumber` | Attempt failed |
| `OnPuzzleLinkedActorTriggered` | `AActor* LinkedActor` | Linked actor notified |
---
## 6. Dependencies & Communication
| System | Relationship |
|--------|--------------|
| `DA_PuzzleData` | Defines puzzle rules and solution |
| `BPC_InteractionDetector` | Focus and interaction initiation |
| `BP_DoorActor` | Common linked actor (unlock on solve) |
| `BPC_NarrativeStateSystem` | Set narrative flags on solve |
| `SS_SaveManager` | Persist puzzle state |
---
## 7. Reuse Notes
- All puzzle logic is data-driven via `DA_PuzzleData`
- LinkedActor pattern decouples puzzle from effect