// Project Lab - NHTV Igad

#pragma once

#include "Creatures/NetworkPossessable.h"
#include "NetworkGhost.generated.h"

UCLASS()
class UNREALPROJECT_API ANetworkGhost : public ANetworkPossessable
{
	GENERATED_BODY()

public:
	ANetworkGhost();

	virtual void BeginPlay() override;

	virtual void Tick(float DeltaSeconds) override;


	bool CanRespawn() const;

	UPROPERTY(BlueprintReadonly, Category = "Respawn")
	int32 shrinesInRange;

	// Range to ally for respawn
	UPROPERTY(EditAnywhere, Category = "Respawn")
	float allyRespawnRange;

	// Time it takes before the player is allowed to respawn
	UPROPERTY(EditAnywhere, Category = "Respawn")
	float respawnDuration;

	// Get time it takes before respawning
	UFUNCTION(BlueprintCallable, Category = "Respawn")
	float RespawnTime() const;

	UPROPERTY(EditAnywhere, Category = "PostProcess")
	UPostProcessComponent* postProcess;

private:
	UPROPERTY(Replicated)
	float m_respawnTime;
};