#pragma once

#include "CoreMinimal.h"
#include "BloodwebRingComposition.h"
#include "BloodwebRarityCost.h"
#include "BloodwebTypeCostModifiers.h"
#include "BloodwebChestProbability.h"
#include "BloodwebEventChestProbability.h"
#include "BloodwebPrestigeModifier.h"
#include "BloodwebBulkCost.h"
#include "BloodwebGenerationRulesData.generated.h"

USTRUCT(BlueprintType)
struct FBloodwebGenerationRulesData
{
	GENERATED_BODY()

public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TArray<FBloodwebRingComposition> RingComposition;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FBloodwebRarityCost RarityCost;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FBloodwebTypeCostModifiers TypeCostModifiers;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TArray<FBloodwebChestProbability> ChestProbability;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TArray<FBloodwebEventChestProbability> EventChestProbability;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TArray<FBloodwebPrestigeModifier> PrestigeModifier;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SkipSerialization)
	bool PrestigeModifier_IsSet;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TArray<FBloodwebBulkCost> BulkCost;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SkipSerialization)
	bool BulkCost_IsSet;

public:
	DEADBYDAYLIGHT_API FBloodwebGenerationRulesData();
};

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