#pragma once

#include "CoreMinimal.h"
#include "Engine/DataTable.h"
#include "NPCRow.generated.h"

class APawn;

UENUM(BlueprintType)
enum class ENPCRole : uint8
{
	Generic     UMETA(DisplayName = "Generic"),
	Vendor      UMETA(DisplayName = "Vendor"),
	Questgiver  UMETA(DisplayName = "Questgiver"),
	Trainer     UMETA(DisplayName = "Trainer"),
	Banker      UMETA(DisplayName = "Banker"),
	Innkeeper   UMETA(DisplayName = "Innkeeper"),
	Guard       UMETA(DisplayName = "Guard")
};

USTRUCT(BlueprintType)
struct ZMMO_API FNPCRow : public FTableRowBase
{
	GENERATED_BODY()

	UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "NPC")
	FText DisplayName;

	UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "NPC")
	TSoftClassPtr<APawn> BlueprintRef;

	UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "NPC")
	ENPCRole Role = ENPCRole::Generic;

	UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Shop", meta = (EditCondition = "Role == ENPCRole::Vendor"))
	TArray<FName> ShopInventory;

	UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Dialog")
	FName DialogRoot;
};
