#pragma once

#include "CoreMinimal.h"
#include "BasicChargeableInteraction.h"
#include "StatusEffectSpawnData.h"
#include "Templates/SubclassOf.h"
#include "GameplayTagContainer.h"
#include "TryksTotemInteraction.generated.h"

class UStatusEffect;

UCLASS(Blueprintable, Abstract, EditInlineNew, meta=(BlueprintSpawnableComponent))
class ANNIVERSARY2024_API UTryksTotemInteraction : public UBasicChargeableInteraction
{
	GENERATED_BODY()

protected:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FStatusEffectSpawnData _hasteEffectOnCompletion;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TSubclassOf<UStatusEffect> _timedRevealForOpposingRole;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float _timedRevealDuration;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float _hasteDuration;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FGameplayTagContainer _tagsToTriggerInterruptScore;

public:
	UTryksTotemInteraction();
};

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