#pragma once

#include "CoreMinimal.h"
#include "GameplayTagContainer.h"
#include "GameEventData.generated.h"

class ADBDPlayer;
class AActor;
class UObject;

USTRUCT(BlueprintType)
struct FGameEventData
{
	GENERATED_BODY()

public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	ADBDPlayer* Instigator;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	AActor* Target;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	float CustomValue;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	UObject* CustomObjectParameter;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	int32 CustomIntValue;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	FGameplayTag CustomGameplayTag;

public:
	DEADBYDAYLIGHT_API FGameEventData();
};

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