21 virtual void NativeConstruct()
override;
22 virtual void NativeDestruct()
override;
25 UFUNCTION(BlueprintImplementableEvent, Category =
"UI|WaveInfo")
26 void UpdateEnemyCount(const int32 Count);
29 UFUNCTION(BlueprintImplementableEvent, Category = "
UI|WaveInfo")
30 void UpdateCountdownTime(const
float SecondsRemaining);
34 void ApplyRemainingEnemyCount(int32 Count);
35 void UpdateCountdownText();
39 void StartCountdown(
float Seconds);
48 void OnEnemyRemainingCountChanged(int32 RemainingCount);
51 void OnSpawnedEnemyKilled(const
AEnemyCharacterBase* DiedEnemy, const int32 RemainingCount);
54 void OnUpdateWave(const
FWaveDataCollection& WaveDataCollection, const int32 CurrentWaveIdx);
57 UPROPERTY(BlueprintReadWrite, meta = (BindWidget))
58 TObjectPtr<UTextBlock> RemainingEnemyCount;
60 UPROPERTY(BlueprintReadWrite, meta = (BindWidget))
61 TObjectPtr<UTextBlock> CurrentWaveIndex;
63 UPROPERTY(BlueprintReadWrite, meta = (BindWidget))
64 TObjectPtr<UTextBlock> NextWaveCountdown;
68 static constexpr
float CountdownTickInterval = 0.1f;
71 float NextWaveCountdownSeconds = 0.0f;
74 int32 WidgetRemainingTotal = 0;
78 int32 LastEnemyCountBroadcast = 0;
82 int32 WidgetTotalBeforeLastBroadcast = 0;
84 FTimerHandle CountdownTimerHandle;