5#include "CoreMinimal.h"
8#include "ProjectXGameStateHorde.generated.h"
16 GENERATED_USTRUCT_BODY()
19 UPROPERTY(BlueprintReadWrite)
21 UPROPERTY(BlueprintReadWrite)
28 GENERATED_USTRUCT_BODY()
31 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
32 TMap<TSubclassOf<AActor>, TSubclassOf<AActor>> AIReplacements;
33 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
35 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
36 float SurviveTimeMultiplier = 1.0f;
37 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
38 float MissionTimeMultiplier = 1.0f;
40 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
41 int SoloLivesCount = 0;
47 GENERATED_USTRUCT_BODY()
50 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
76 virtual const FText GetTimerText();
79 UPROPERTY(EditDefaultsOnly)
81 UPROPERTY(EditDefaultsOnly)
84 UFUNCTION(BlueprintCallable)
86 UFUNCTION(BlueprintCallable)
87 const
FWaveInfo& GetCurrentWaveInfo()
const {
return CurrentWaveInfo;}
88 UFUNCTION(BlueprintCallable)
89 const uint8 GetAvailableLives()
const {
return AvailableLives; }
90 UFUNCTION(BlueprintCallable)
91 int GetNumConnectedPlayers()
const;
92 UFUNCTION(BlueprintCallable)
93 const uint8 GetMaxAvaliableLives()
const;
94 UFUNCTION(BlueprintCallable)
95 void ConsumeAvailableLife();
96 UFUNCTION(BlueprintCallable, Category =
"Horde")
106 virtual void AddPlayerState(APlayerState* PlayerState)
override;
107 virtual void RemovePlayerState(APlayerState* PlayerState)
override;
109 virtual bool HasSoloPlayerThatCanBeRevived();
111 virtual TSubclassOf<AActor> CheckForActorReplacement(TSubclassOf<AActor> Actor)
override;
112 void SetPrimaryWaveSpawner(
AWaveSpawner*
const WaveSpawer);
115 virtual
void OnTimedWaveComplete(
AWaveSpawner* const WaveSpawner,
bool bSuccess);
116 UFUNCTION(BlueprintCallable, Category = "
Horde")
119 UFUNCTION(NetMulticast, Reliable)
120 void Multicast_DisplayKillCounter();
122 UFUNCTION(BlueprintImplementableEvent)
123 void ShowKillCounter();
125 UPROPERTY(BlueprintAssignable)
126 FOnPrimarySpawnerUpdatedSignature OnPrimarySpawnerUpdatedEvent;
127 UPROPERTY(BlueprintAssignable)
128 FOnMobKilledSignature OnMobKilledEvent;
129 UPROPERTY(BlueprintAssignable)
130 FMobKillsUpdatedSignature OnWaveKillsUpdatedEvent;
131 UPROPERTY(BlueprintAssignable)
132 FOnDifficultyUpdatedSignature OnDifficultyUpdateEvent;
133 UPROPERTY(BlueprintAssignable)
134 FOnLivesAvailableChangedSignature OnLivesAvailableChanged;
138 virtual
void UpdateWaveProgress(
AWaveSpawner* const WaveSpawner, int32 WaveSize, int32 WaveKills);
140 virtual
void UpdateCurrentWave(
AWaveSpawner* const Spawner);
143 void OnRep_WaveInfo();
145 void OnRep_DifficultyLevel();
147 void OnRep_AvailableLives();
152 UPROPERTY(ReplicatedUsing = OnRep_WaveInfo)
154 UPROPERTY(Replicated)
155 uint8 CurrentWave = 0;
156 UPROPERTY(ReplicatedUsing=OnRep_DifficultyLevel)
158 UPROPERTY(ReplicatedUsing = OnRep_AvailableLives)
159 uint8 AvailableLives = 0;
EDifficultyLevel
Definition: ProjectXGameState.h:54
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FWaveFailedSignature, uint8, CurrentFailureCount)
EHordePlayerStatus
Definition: ProjectXGameStateHorde.h:57
EWaveTimerType
Definition: WaveSpawner.h:72
Definition: ProjectXCharacter.h:128
Definition: ProjectXGameStateHorde.h:73
const TMap< TWeakObjectPtr< AProjectXPlayerState >, EHordePlayerStatus > & GetPlayerOwnedPlayerStates() const
Definition: ProjectXGameStateHorde.h:102
const TWeakObjectPtr< AWaveSpawner > GetPrimaryWaveSpawner() const
Definition: ProjectXGameStateHorde.h:103
Definition: ProjectXGameState.h:158
Definition: ProjectXPlayerState.h:238
uint16 Kills
Definition: ProjectXPlayerState.h:708
virtual void BeginPlay() override
Definition: ProjectXPlayerState.cpp:122
float EXPMultiplier
Definition: ProjectXPlayerState.h:784
Definition: WaveSpawner.h:115
Definition: ProjectXGameStateHorde.h:27
Definition: ProjectXGameStateHorde.h:15
Definition: ProjectXGameStateHorde.h:46