5#include "CoreMinimal.h"
7#include "ProjectXObjectiveVIP.generated.h"
9class UAfflictionInstance;
14 GENERATED_USTRUCT_BODY()
17 UPROPERTY(BlueprintReadWrite, EditAnywhere)
24 GENERATED_USTRUCT_BODY()
33 UPROPERTY(BlueprintReadWrite)
34 bool bDefeated = false;
35 UPROPERTY(BlueprintReadWrite)
45 GENERATED_UCLASS_BODY()
47 UFUNCTION(BlueprintCallable)
48 uint8 GetPhaseNumber()
const {
return CurrentPhase; }
49 void GetVIPActors(TArray<AActor*>& VIPS)
const;
51 virtual bool IsObjectiveComplete()
const override;
52 virtual bool IsPhaseComplete()
const;
54 UPROPERTY(BlueprintAssignable)
55 FOnVIPObjectivePhaseUpdatedSignature OnPhaseNumberUpdatedEvent;
56 UPROPERTY(BlueprintAssignable)
57 FOnVIPObjectiveVIPSUpdatedSignature OnVIPSUpdatedEvent;
60 virtual
void ObjectiveStarted() override;
61 virtual
void InitializeGamePlayObjects();
62 virtual
void ObjectiveComplete() override;
63 virtual
void UpdateCurrentPhase();
64 virtual
void StartCurrentPhase();
65 virtual
void EndCurrentPhase();
66 virtual
void UpdateIsFullySpawned();
71 void OnVIPKilled(class AActor* Victim, const
float Damage, struct FDamageEvent const& DamageEvent, const class AController* EventInstigator, const class AActor* DamageCauser, const class APlayerState* InstigatorPlayerState);
74 virtual
void OnRep_PhaseNumber();
76 virtual
void OnRep_VIPS();
79 UPROPERTY(EditInstanceOnly)
82 UPROPERTY(EditInstanceOnly)
83 float VIPPhaseDelay = 1.0f;
85 UPROPERTY(EditDefaultsOnly)
86 TSubclassOf<UAfflictionInstance> VIPAffliction = NULL;
87 UPROPERTY(ReplicatedUsing = OnRep_PhaseNumber)
88 uint8 CurrentPhase = -1;
89 UPROPERTY(ReplicatedUsing = OnRep_VIPS)
94 FTimerHandle PhaseDelayTimer;
95 bool bPhaseActive = false;
96 bool bPhaseFullySpawned = false;
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnVIPObjectivePhaseUpdatedSignature, AProjectXObjectiveVIP *, VIPObjective, int32, Phase)
Definition: ProjectXCharacter.h:128
Definition: ProjectXObjectiveVIP.h:44
Definition: ProjectXSpawnerObjective.h:53
Definition: ProjectXObjectiveVIP.h:23
FActiveVIPInfo(TWeakObjectPtr< AProjectXCharacter > VIP)
Definition: ProjectXObjectiveVIP.h:26
Definition: ProjectXObjectiveVIP.h:13