Files
KingshearthLegacy/Source/KingshearthLegacy/UI/StaminaBarWidget.h
T
Dolobarsch 83cc8f592e Sprint- und Ausdauermechanik hinzugefügt
Die Sprint-Funktionalität wurde in `AKingshearthLegacyCharacter` implementiert, einschließlich neuer Methoden (`StartSprint`, `StopSprint`, `Tick`) und Eigenschaften (`SprintSpeedMultiplier`, `SprintStaminaDrainRate`, etc.). Die Eingabeverarbeitung wurde entsprechend erweitert.

Eine neue `UStaminaComponent` wurde hinzugefügt, die Ausdauer, Fatigue und Regeneration verwaltet. Ereignisse wie `OnStaminaChanged` und `OnExhausted` ermöglichen die Überwachung von Änderungen.

Die Benutzeroberfläche wurde angepasst: `UPlayerHUDWidget` und `UStaminaBarWidget` unterstützen nun die Anzeige der Ausdauer. Alte, fest codierte Werte wurden entfernt, und die Widgets sind nun dynamisch an die `StaminaComponent` gebunden.

Zusätzlich wurden Änderungen an `.uasset`-Dateien vorgenommen, um die neuen Mechaniken in Unreal Engine zu unterstützen.
2026-08-27 23:43:11 +02:00

47 lines
1.3 KiB
C++

#pragma once
#include "CoreMinimal.h"
#include "UI/StatBarWidget.h"
#include "StaminaBarWidget.generated.h"
class UStaminaComponent;
/**
* Stat bar bound to a live UStaminaComponent. Call InitializeStaminaBar once the
* component is known (typically from the owning PlayerController on possession),
* mirroring UHealthBarWidget::InitializeHealthBar.
*/
UCLASS(abstract)
class UStaminaBarWidget : public UStatBarWidget
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable, Category = "Stamina")
void InitializeStaminaBar(UStaminaComponent* InStaminaComponent);
UFUNCTION(BlueprintCallable, Category = "Fatigue")
void SetFatigue(float NewFatigue);
UFUNCTION(BlueprintPure, Category = "Fatigue")
float GetFatigue() const { return Fatigue; }
protected:
UFUNCTION()
void HandleStaminaChanged(float NewStamina);
UFUNCTION()
void HandleFatigueChanged(float NewFatigue);
/** Hook for Blueprint-side fatigue visuals (e.g. a darkened "locked" portion of the bar). */
UFUNCTION(BlueprintImplementableEvent, Category = "Fatigue")
void OnFatigueChanged(float NewFatigue);
UPROPERTY(BlueprintReadOnly, Category = "Stamina")
TObjectPtr<UStaminaComponent> StaminaComponent;
/** 0-1 exhaustion amount. Drives the bar's penalty segment via SetPenaltyPercent. */
UPROPERTY(BlueprintReadOnly, Category = "Fatigue")
float Fatigue = 0.0f;
};