add blueprints
This commit is contained in:
97
docs/blueprints/05-saveload/42_BPC_PlayerRespawnSystem.md
Normal file
97
docs/blueprints/05-saveload/42_BPC_PlayerRespawnSystem.md
Normal file
@@ -0,0 +1,97 @@
|
||||
# BPC_PlayerRespawnSystem — Actor Component (Respawn)
|
||||
|
||||
**File:** [`Content/Framework/Save/BPC_PlayerRespawnSystem`](Content/Framework/Save/BPC_PlayerRespawnSystem.uasset)
|
||||
|
||||
**Purpose:** Handles the actual respawn mechanics after death outcome is determined. Reads respawn transform from `BP_Checkpoint`, applies state restoration from `SS_SaveManager`, and runs the respawn transition.
|
||||
|
||||
**Depends On:** [`BPC_DeathHandlingSystem`](BPC_DeathHandlingSystem.md), [`BP_Checkpoint`](BP_Checkpoint.md), [`SS_SaveManager`](35_SS_SaveManager.md), [`BPC_HealthSystem`](../02-player/08_BPC_HealthSystem.md), [`BPC_StaminaSystem`](../02-player/09_BPC_StaminaSystem.md), [`BPC_StressSystem`](../02-player/10_BPC_StressSystem.md)
|
||||
**Used By:** [`BPC_DeathHandlingSystem`](BPC_DeathHandlingSystem.md) (orchestrator)
|
||||
|
||||
---
|
||||
|
||||
## Variables
|
||||
|
||||
| Name | Type | Description |
|
||||
|------|------|-------------|
|
||||
| `RespawnDelay` | Float | Seconds before respawn after death (default 2.0) |
|
||||
| `RespawnFadeDuration` | Float | Seconds for camera fade (default 1.0) |
|
||||
| `bRestoreHealthOnRespawn` | Bool | Should health be fully restored? (default true) |
|
||||
| `HealthRestorePercent` | Float | If bRestoreHealthOnRespawn is false, what % HP to restore (0.0-1.0) |
|
||||
| `bClearStressOnRespawn` | Bool | Reset stress to minimum on respawn? (default true) |
|
||||
| `bRestoreStaminaOnRespawn` | Bool | Reset stamina to maximum on respawn? (default true) |
|
||||
|
||||
---
|
||||
|
||||
## Functions
|
||||
|
||||
| Name | Inputs | Outputs | Description |
|
||||
|------|--------|---------|-------------|
|
||||
| `RespawnPlayer` | Outcome: E_DeathOutcome, Context: S_DeathContext | — | Orchestrates the full respawn sequence |
|
||||
| `GetRespawnTransform` | — | Transform | Delegates to BP_Checkpoint |
|
||||
| `ApplyRespawnState` | — | — | Restores health, stamina, stress via their respective components |
|
||||
| `ResetPlayerAtTransform` | Transform: Transform | — | Moves the character to the respawn location |
|
||||
| `PlayRespawnTransition` | — | — | Camera fade-in, post-process effects |
|
||||
|
||||
---
|
||||
|
||||
## Event Dispatchers
|
||||
|
||||
| Name | Parameters | Fired When |
|
||||
|------|-----------|------------|
|
||||
| `OnRespawnStarted` | Outcome: E_DeathOutcome | Respawn sequence begins |
|
||||
| `OnRespawnCompleted` | — | Player is fully respawned and controllable |
|
||||
| `OnRespawnFailed` | Reason: FText | Respawn could not be completed |
|
||||
|
||||
---
|
||||
|
||||
## Blueprint Flow
|
||||
|
||||
```
|
||||
[RespawnPlayer: Outcome, Context]
|
||||
└─► Broadcast OnRespawnStarted(Outcome)
|
||||
└─► Delay RespawnDelay seconds
|
||||
└─► GetRespawnTransform() → RespawnLocation
|
||||
└─► If RespawnLocation is invalid:
|
||||
Broadcast OnRespawnFailed("No valid respawn point")
|
||||
return
|
||||
└─► ResetPlayerAtTransform(RespawnLocation)
|
||||
└─► ApplyRespawnState()
|
||||
└─► PlayRespawnTransition()
|
||||
└─► Re-enable player input
|
||||
└─► Broadcast OnRespawnCompleted
|
||||
|
||||
[ApplyRespawnState]
|
||||
└─► If bRestoreHealthOnRespawn:
|
||||
BPC_HealthSystem.SetHealth(MaxHealth)
|
||||
└─► Else:
|
||||
BPC_HealthSystem.SetHealth(MaxHealth * HealthRestorePercent)
|
||||
└─► If bClearStressOnRespawn:
|
||||
BPC_StressSystem.ResetStress()
|
||||
└─► If bRestoreStaminaOnRespawn:
|
||||
BPC_StaminaSystem.SetStamina(MaxStamina)
|
||||
|
||||
[GetRespawnTransform]
|
||||
└─► Get BP_Checkpoint from Owner
|
||||
└─► Return BP_Checkpoint.GetRespawnTransform()
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Communications With
|
||||
|
||||
| Target System | Method | Why |
|
||||
|---------------|--------|-----|
|
||||
| [`BPC_DeathHandlingSystem`](BPC_DeathHandlingSystem.md) | Direct call | Orchestrator triggers respawn |
|
||||
| [`BP_Checkpoint`](BP_Checkpoint.md) | Direct call | Get respawn transform |
|
||||
| [`BPC_HealthSystem`](../02-player/08_BPC_HealthSystem.md) | Direct call | Restore health on respawn |
|
||||
| [`BPC_StaminaSystem`](../02-player/09_BPC_StaminaSystem.md) | Direct call | Restore stamina on respawn |
|
||||
| [`BPC_StressSystem`](../02-player/10_BPC_StressSystem.md) | Direct call | Reset stress on respawn |
|
||||
| [`SS_SaveManager`](35_SS_SaveManager.md) | Direct call | Load respawn state |
|
||||
| [`WBP_HUDController`](../06-ui/WBP_HUDController.md) | Dispatcher | Fade transitions |
|
||||
|
||||
---
|
||||
|
||||
## Reuse Notes
|
||||
- RespawnDelay and RespawnFadeDuration are configurable per difficulty level
|
||||
- State restoration values (health %, stress reset, stamina) can be tuned via data assets
|
||||
- Split from original bundled `31_BPC_DeathHandlingSystem.md` per Clean Slate refactoring plan
|
||||
Reference in New Issue
Block a user