#pragma once #include "CoreMinimal.h" #include "Components/ActorComponent.h" #include "BPC_HealthSystem.generated.h" DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnHealthChanged, float, CurrentHealth, float, MaxHealth); DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnDeath); UCLASS(Blueprintable, ClassGroup=(Framework), meta=(BlueprintSpawnableComponent)) class PG_FRAMEWORK_API UBPC_HealthSystem : public UActorComponent { GENERATED_BODY() public: UBPC_HealthSystem(); UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Framework|Health") float MaxHealth = 100.0f; UPROPERTY(BlueprintReadOnly, Category = "Framework|Health") float CurrentHealth = 100.0f; UPROPERTY(BlueprintAssignable, Category = "Framework|Events") FOnHealthChanged OnHealthChanged; UPROPERTY(BlueprintAssignable, Category = "Framework|Events") FOnDeath OnDeath; };