// REALMS IN RUIN. Copyright (c) 2025 Trevor Edwards. All rights reserved. #pragma once #include "CoreMinimal.h" #include "UI/WidgetController/RIRWidgetController.h" #include "OverlayWidgetController.generated.h" DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnHealthChangedSignature, float, NewHealth); DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnMaxHealthChangedSignature, float, NewMaxHealth); DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnManaChangedSignature, float, NewMana); DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnMaxManaChangedSignature, float, NewMaxMana); DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnStaminaChangedSignature, float, NewStamina); DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnMaxStaminaChangedSignature, float, NewMaxStamina); // Forward declaration of FOnAttributeChangeData struct FOnAttributeChangeData; /** * */ UCLASS(BlueprintType, Blueprintable) class REALMSINRUIN_API UOverlayWidgetController : public URIRWidgetController { GENERATED_BODY() public: virtual void BroadcastInitialInitialValues() override; virtual void BindCallbacksToDependencies() override; UPROPERTY(BlueprintAssignable, Category="GAS|Attributes") FOnHealthChangedSignature OnHealthChanged; UPROPERTY(BlueprintAssignable, Category="GAS|Attributes") FOnMaxHealthChangedSignature OnMaxHealthChanged; UPROPERTY(BlueprintAssignable, Category="GAS|Attributes") FOnManaChangedSignature OnManaChanged; UPROPERTY(BlueprintAssignable, Category="GAS|Attributes") FOnMaxManaChangedSignature OnMaxManaChanged; UPROPERTY(BlueprintAssignable, Category="GAS|Attributes") FOnManaChangedSignature OnStaminaChanged; UPROPERTY(BlueprintAssignable, Category="GAS|Attributes") FOnMaxManaChangedSignature OnMaxStaminaChanged; protected: void HealthChanged(const FOnAttributeChangeData& Data) const; void MaxHealthChanged(const FOnAttributeChangeData& Data) const; void ManaChanged(const FOnAttributeChangeData& Data) const; void MaxManaChanged(const FOnAttributeChangeData& Data) const; void StaminaChanged(const FOnAttributeChangeData& Data) const; void MaxStaminaChanged(const FOnAttributeChangeData& Data) const; };