#pragma once

#include "CoreMinimal.h"
#include "ChargeableInteractionDefinition.h"
#include "GameplayTagContainer.h"
#include "SearchChestInteractionBase.generated.h"

class ASearchable;
class ADBDPlayer;

UCLASS(Blueprintable, EditInlineNew, meta=(BlueprintSpawnableComponent))
class DBDINTERACTION_API USearchChestInteractionBase : public UChargeableInteractionDefinition
{
	GENERATED_BODY()

private:
	UPROPERTY(EditAnywhere)
	FGameplayTag _survivorSearchablePercentTag;

	UPROPERTY(EditAnywhere)
	FGameplayTag _searchableCompleteContributionPercentTag;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	bool _scoreEventFired;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	ASearchable* _owningChest;

private:
	UFUNCTION(BlueprintCallable)
	void FireChestScoreEvent(const ADBDPlayer* player);

public:
	USearchChestInteractionBase();
};

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