#pragma once

#include "CoreMinimal.h"
#include "Components/ActorComponent.h"
#include "BPC_StressSystem.generated.h"

UENUM(BlueprintType)
enum class EStressTier : uint8
{
	Calm     UMETA(DisplayName = "Calm"),
	Tense    UMETA(DisplayName = "Tense"),
	Distressed UMETA(DisplayName = "Distressed"),
	Panic    UMETA(DisplayName = "Panic"),
	Catatonic UMETA(DisplayName = "Catatonic"),
};

DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnStressTierChanged, EStressTier, NewTier);

UCLASS(Blueprintable, ClassGroup=(Framework), meta=(BlueprintSpawnableComponent))
class PG_FRAMEWORK_API UBPC_StressSystem : public UActorComponent
{
	GENERATED_BODY()

public:
	UBPC_StressSystem();

	UPROPERTY(BlueprintReadOnly, Category = "Framework|Stress")
	EStressTier StressTier = EStressTier::Calm;

	UPROPERTY(BlueprintAssignable, Category = "Framework|Events")
	FOnStressTierChanged OnStressTierChanged;
};
