2.9 KiB
2.9 KiB
BPC_ShieldDefenseSystem — Actor Component
⚡ C++ Status: Stub —
Source/PG_Framework/Public/Weapons/BPC_ShieldDefenseSystem.hprovides the UCLASS shell,ShieldHealth,MaxShieldHealth,BlockAngle,bShieldBroken. The C++ stub has NO gameplay logic. Create a BP child and build ALL logic: shield raise/lower, block detection, damage reduction while blocking, break effect, stamina drain. Attach to player pawn. Seedocs/developer/cpp-integration-guide.md.
File: Content/Framework/Weapons/BPC_ShieldDefenseSystem
Parent Class: UActorComponent
Dependencies: BPC_DamageReceptionSystem, BPC_StaminaSystem
Purpose: Manages defensive tools: shields, blocking, parrying. Works in both melee and ranged defense contexts.
Variables
| Name | Type | Description |
|---|---|---|
bIsBlocking |
Bool | Block active |
BlockDamageReduction |
Float | % reduction while blocking (0.0–1.0) |
ParryWindow |
Float | Perfect parry timing window in seconds |
ShieldDurability |
Float | Current shield durability (0 = broken) |
MaxShieldDurability |
Float | Maximum durability |
BlockAngle |
Float | Max angle from forward vector for block to cover |
StaminaCostPerBlock |
Float | Stamina drain per blocked hit |
bCanParry |
Bool | Whether parry mechanic is enabled |
Functions / Events
| Name | Inputs | Outputs | What it does |
|---|---|---|---|
BeginBlock |
— | — | Raises shield, starts blocking |
EndBlock |
— | — | Lowers shield, ends blocking |
ProcessHit |
Damage: S_DamageEvent | Bool (blocked) | Evaluates if hit was blocked or parried |
TryParry |
— | Bool | Checks if parry window is active |
BreakShield |
— | — | Reduces durability to 0, triggers break anim |
Event Dispatchers
| Name | Parameters | Fired when |
|---|---|---|
OnBlockStarted |
— | Shield raised |
OnBlockEnded |
— | Shield lowered |
OnHitBlocked |
Damage: S_DamageEvent | Incoming hit blocked |
OnHitParried |
Instigator: Actor | Perfect parry executed |
OnShieldBroken |
— | Durability reaches 0 |
Communications With
| Target System | Method | Why |
|---|---|---|
BPC_DamageReceptionSystem |
Interface hook | Intercepts incoming damage |
BPC_StaminaSystem |
Direct ConsumeStamina |
Stamina cost per block |
BPC_HitReactionSystem |
Direct | Triggers parry follow-up window |
ABP_PlayerBody |
Animation Notify | Block/parry animation states |
Reuse Notes
- ParryWindow drives a perfect-parry mechanic; set to 0 to disable parries
- BlockDamageReduction is per-shield from DA_WeaponData or DA_EquipmentConfig
- Shield durability adds wear mechanic; set MaxShieldDurability to 0 for indestructible shields