#pragma once

#include "CoreMinimal.h"
#include "Engine/DataAsset.h"
#include "Templates/SubclassOf.h"
#include "UObject/SoftObjectPtr.h"
#include "GameplayTagContainer.h"
#include "K36MagicItemNiagaraSystemByColorBlindSetting.h"
#include "K36SpellCounterData.generated.h"

class UK36SpellCounterStatusEffect;
class UK36SpellData;
class UTexture2D;
class UNiagaraSystem;

UCLASS(Blueprintable)
class UK36SpellCounterData : public UDataAsset
{
	GENERATED_BODY()

private:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TSubclassOf<UK36SpellCounterStatusEffect> _counterStatusEffect;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	UK36SpellData* _associatedSpell;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FText _spellCounterName;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FText _spellCounterDescription;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TSoftObjectPtr<UTexture2D> _uiIcon;

	UPROPERTY(EditAnywhere)
	FGameplayTag _spellActivationEvent;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TSet<FK36MagicItemNiagaraSystemByColorBlindSetting> _bracersNiagaraSystemColorBlindSettingOverrides;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TSet<FK36MagicItemNiagaraSystemByColorBlindSetting> _bootsNiagaraSystemColorBlindSettingOverrides;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	UNiagaraSystem* _chestRevealNiagaraSystem;

public:
	UK36SpellCounterData();
};

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