#pragma once

#include "CoreMinimal.h"
#include "BehaviorTree/BTService.h"
#include "AITunableParameter.h"
#include "BTService_SkillCheck.generated.h"

class ADBDAIBTController;

UCLASS(Blueprintable)
class DBDBOTS_API UBTService_SkillCheck : public UBTService
{
	GENERATED_BODY()

public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FAITunableParameter MaxSuccessLength;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FAITunableParameter HalfSuccessLength;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FAITunableParameter SkillCheckDifficultyCurve;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FAITunableParameter SkillCheckUndesiredZonePenalty;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FAITunableParameter SkillCheckDifficultyModifierReversed;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FAITunableParameter SkillCheckDifficultyModifierOffCenter;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FAITunableParameter SkillCheckDifficultyModifierSpeed;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FAITunableParameter SkillCheckDifficultyModifierWarningSound;

private:
	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	ADBDAIBTController* _aiOwner;

public:
	UBTService_SkillCheck();
};

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