#pragma once

#include "CoreMinimal.h"
#include "CoreBaseUserWidget.h"
#include "CoreSettingsPerksDisplayWidget.generated.h"

class UCoreMenuPerkWidget;
class UAudioEventWrapper;
class UCoreButtonWidget;

UCLASS(Blueprintable, EditInlineNew)
class UCoreSettingsPerksDisplayWidget : public UCoreBaseUserWidget
{
	GENERATED_BODY()

protected:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Instanced)
	TArray<UCoreMenuPerkWidget*> _perkWidgets;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Instanced)
	UAudioEventWrapper* _perkUnlockAudioEvent;

protected:
	UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
	void OnPerkUnhovered(UCoreButtonWidget* unhoveredPerk);

	UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
	void OnPerkHovered(UCoreButtonWidget* hoveredPerk);

	UFUNCTION(BlueprintCallable)
	void OnPerkClicked(UCoreButtonWidget* button);

public:
	UCoreSettingsPerksDisplayWidget();
};

FORCEINLINE uint32 GetTypeHash(const UCoreSettingsPerksDisplayWidget) { return 0; }
