34 UFUNCTION(BlueprintCallable, Category =
"EncounterField")
35 void StartEncounter();
37 UFUNCTION(BlueprintCallable, Category =
"EncounterField")
38 void DeactivateEncounter();
41 UFUNCTION(BlueprintPure, Category =
"EncounterField")
42 virtual UStageEventListenerComponent* GetEventListenerComponent()
const override
44 return EventListenerComponent;
47 UFUNCTION(BlueprintPure, Category =
"EncounterField")
53 UFUNCTION(BlueprintPure, Category =
"EncounterField")
54 FORCEINLINE
bool IsEncounterActive()
const
60 virtual void EndPlay(
const EEndPlayReason::Type EndPlayReason)
override;
64 void ScheduleNextWave(
float Interval);
66 void TrySendClearEvent();
67 void ResetEncounterState();
77 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "
EncounterField")
78 TObjectPtr<UStageEventListenerComponent> EventListenerComponent;
81 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "
EncounterField")
82 TObjectPtr<UStageEventSenderComponent> ClearEventSender;
85 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "
EncounterField")
86 TObjectPtr<UStageEventSenderComponent> EnemyKilledEventSender;
89 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "
EncounterField")
101 int32 CurrentWaveIndex = 0;
104 int32 AliveEnemyCount = 0;
107 int32 PendingSpawnCount = 0;
110 int32 CurrentWavePendingSpawnCount = 0;
113 bool bAllWavesSpawned = false;
116 bool bActivated = false;
119 bool bClearEventSent = false;
122 FTimerHandle WaveTimerHandle;