151 virtual void Deinitialize()
override;
152 virtual void OnLevelLoaded(ULevel* NewLevel,
const ULevelStreamingData* LevelStreamingData)
override;
153 virtual void OnLevelUnloaded()
override;
157 void SetCurrentWaveRemainingEnemyCount(int32 Count);
158 void IncreaseCurrentWaveRemainingEnemyCount(int32 Count);
159 void DecreaseCurrentWaveRemainingEnemyCount(int32 Count = 1);
160 void NotifyNextWaveCountdownStarted(
float Duration);
161 void NotifyNextWaveCountdownStopped();
167 UFUNCTION(BlueprintPure, Category =
"Stage|Enemy")
168 int32 GetTotalSpawnRemainingCount() const;
170 UFUNCTION(BlueprintPure, Category = "Stage|Enemy")
171 int32 GetCurrentWaveRemainingEnemyCount() const;
173 UFUNCTION(BlueprintPure, Category = "Stage|Enemy")
174 int32 GetSpawnedEnemyCount() const;
176 UFUNCTION(BlueprintCallable, Category = "Stage|Enemy")
177 void NotifyEnemyRemainingCountChanged();
179 UFUNCTION(BlueprintPure, Category = "Stage|Wave")
180 float GetNextWaveCountdownRemainingTime() const;
182 UFUNCTION(BlueprintPure, Category = "Stage|Wave")
183 bool IsNextWaveCountdownActive() const;
185 UFUNCTION(BlueprintPure, Category = "Stage")
189 void RegisterListener(const FName EventID, UStageEventListenerComponent* Listener);
190 void UnregisterListener(const FName EventID, UStageEventListenerComponent* Listener);
191 void DispatchStageEvent(const FName EventID, const AActor* Caller, const AActor* Sender);
196 void NotifyProcessorTriggered(const FName EventID, const AActor* Caller, const
UStageEventProcessor* Processor);
198 FName GetLastPlayerTriggeredEventID() const;
199 bool RollbackLastPlayerTriggeredProcessorCounts(const FName EventID);
202 UFUNCTION(BlueprintCallable, Category = "StageEvent")
205 UFUNCTION(BlueprintCallable, Category = "StageEvent")
206 void ResetAllProcessorTriggerCounts();
209 UFUNCTION(BlueprintPure, Category = "Stage")
217 return StageProgress.GetCurrentStageID();
221 template <CSpawnSystem TSpawnSystem>
222 TSpawnSystem* GetOrCreateSpawnSystem();
225 bool EnsureStageDictionaryLoaded();
228 bool IsPlayerEventCaller(
const AActor* Caller)
const;
232 UPROPERTY(BlueprintAssignable, Category =
"Wave")
233 FOnWaveManagerReadyToSpawning ReadyToSpawn;
235 UPROPERTY(BlueprintAssignable, Category = "Wave")
236 FOnWaveStarted OnWaveStarted;
238 UPROPERTY(BlueprintAssignable, Category = "Wave")
239 FOnWaveCleared OnWaveCleared;
241 UPROPERTY(BlueprintAssignable, Category = "Wave")
242 FOnAllWavesCleared OnAllWavesCleared;
244 UPROPERTY(BlueprintAssignable, Category = "Enemy")
245 FOnSpawnedEnemyKilled OnSpawnedEnemyKilled;
247 UPROPERTY(BlueprintAssignable, Category = "Enemy")
248 FOnEnemyRemainingCountChanged OnEnemyRemainingCountChanged;
250 UPROPERTY(BlueprintAssignable, Category = "Wave")
251 FOnNextWaveCountdownStarted OnNextWaveCountdownStarted;
253 UPROPERTY(BlueprintAssignable, Category = "Wave")
254 FOnNextWaveCountdownStopped OnNextWaveCountdownStopped;
269 TMap<FName, TArray<TWeakObjectPtr<UStageEventListenerComponent>>> ListenersByEventID;
271 FName LastPlayerTriggeredEventID = NAME_None;
272 int32 PlayerTriggeredDispatchSerial = 0;
273 int32 ActivePlayerTriggeredDispatchSerial = INDEX_NONE;
274 int32 LastPlayerTriggeredDispatchSerial = INDEX_NONE;
Definition StoryboardDefinition.h:37
Definition StageEventContext.h:18
Definition StoryboardDefinition.h:18