5#include "CoreMinimal.h"
6#include "../BaseControl/CapturePoint.h"
7#include "../Team/SpawnTargetInterface.h"
11#include "ShieldGenerator.generated.h"
38 virtual void SetLocked(
bool bNewLocked)
override;
39 virtual void Initialize(int32 NumberOfCheckPointsOverride = INDEX_NONE,
float PerPlayerCaptureRateOverride = INDEX_NONE)
override;
41 virtual float GetObjectiveHealth()
const override;
42 virtual float GetObjectiveMaxHealth()
const override;
48 UFUNCTION(BlueprintCallable, Category =
"Shield Generator")
49 virtual
bool IsDead()
const {
return ShieldPartsAlive <= 0; }
51 UFUNCTION(BlueprintCallable, Category =
"Shield Generator")
52 virtual int32 GetShieldTeam()
const {
return ShieldTeam == UINT8_MAX?
GetTeam() : ShieldTeam; }
53 UFUNCTION(BlueprintPure, Category =
"Shield Generator")
54 FORCEINLINE
bool GetTurnsIntoCapturePoint()
const {
return bTurnIntoCapturePoint; }
56 UPROPERTY(BlueprintAssignable, Category =
"Shield Generator Events")
57 FShieldGeneratorEventSignature OnShieldGeneratorDestroyed;
58 UPROPERTY(BlueprintAssignable, Category = "Shield Generator Events")
59 FShieldGeneratorEventSignature OnShieldUnderAttack;
60 UPROPERTY(BlueprintAssignable, Category = "Shield Generator Events")
61 FShieldGeneratorHealthEventSignature OnShieldHealthChanged;
62 UPROPERTY(BlueprintAssignable, Category = "Shield Generator Events")
63 FShieldGeneratorEventSignature OnShieldProperlyInitialized;
68 virtual
void DestroyShieldGenerator();
69 UFUNCTION(BlueprintImplementableEvent)
70 void OnShieldGeneratorInitialized();
73 virtual
void CheckForInitialization();
75 virtual
void OnShieldPartTakeDamage(
ADestroyableObjective* Objective, const
float Damage, struct FDamageEvent const& DamageEvent, class AController* EventInstigator, class AActor* DamageCauser, class APlayerState* InstigatorPlayerState);
77 virtual
void OnShieldPartDestroyed(
ADestroyableObjective* Objective, const
float Damage, struct FDamageEvent const& DamageEvent, class AController* EventInstigator, class AActor* DamageCauser, class APlayerState* InstigatorPlayerState);
79 virtual
void OnShieldGeneratorHealthChanged(
float Delta);
82 UPROPERTY(EditInstanceOnly, Category = "Shield Generator")
85 UPROPERTY(EditInstanceOnly, Category = "Shield Generator")
86 bool bTurnIntoCapturePoint = false;
88 UPROPERTY(EditInstanceOnly, Category = "Shield Generator")
92 uint8 ShieldPartsAlive = 0;
93 bool bIsProperlyInitialized = false;
95 FTimerHandle InitializationTimerHandle;
97 uint8 ShieldTeam = UINT8_MAX;
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FShieldGeneratorHealthEventSignature, class AShieldGenerator *, Generator, float, Delta)
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FShieldGeneratorEventSignature, class AShieldGenerator *, Generator)
Definition: CapturePoint.h:77
Definition: DeployableAutonomousTurret.h:14
virtual void BeginPlay() override
Definition: DeployableAutonomousTurret.cpp:35
virtual int32 GetTeam() const override
Definition: DeployableAutonomousTurret.h:17
virtual bool IsDead() const override
Definition: Deployable.cpp:162
Definition: DestroyableObjective.h:23
Definition: ProjectXPlayerState.h:238
Definition: ShieldGenerator.h:30
virtual bool GetIsObjectiveProperlyInitialized() const
Definition: ShieldGenerator.h:46
virtual int32 GetObjectiveTeam() const
Definition: ShieldGenerator.h:44
virtual bool GetIsObjectiveDead() const
Definition: ShieldGenerator.h:43
virtual int32 GetObjectiveSortOrder() const
Definition: ShieldGenerator.h:45
Definition: StartPointVolume.h:14
Definition: AllOutWarfareObjectiveInterface.h:19