#include "Pumpkin.h"
#include "Net/UnrealNetwork.h"
#include "HalloweenPumpkinInteraction.h"
#include "ChargeableComponent.h"
#include "Interactor.h"
#include "Components/BoxComponent.h"
#include "RespawnableComponent.h"

void APumpkin::Multicast_OnRespawn_Implementation()
{

}

void APumpkin::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
{
	Super::GetLifetimeReplicatedProps(OutLifetimeProps);

	DOREPLIFETIME(APumpkin, _pumpkinType);
}

APumpkin::APumpkin()
{
	this->_specialBehaviourId = NAME_None;
	this->_pumpkinType = EPumpkinType::None;
	this->_pumpkinInteractionSurvivor = CreateDefaultSubobject<UHalloweenPumpkinInteraction>(TEXT("PumpkinInteraction"));
	this->_pumpkinInteractionKiller = CreateDefaultSubobject<UHalloweenPumpkinInteraction>(TEXT("PumpkinInteractionKiller"));
	this->_pumpkinInteractionChargeable = CreateDefaultSubobject<UChargeableComponent>(TEXT("PumpkinInteractionChargeable"));
	this->_pumpkinInteractionChargeableKiller = CreateDefaultSubobject<UChargeableComponent>(TEXT("PumpkinInteractionChargeableKiller"));
	this->_pumpkinInteractor = CreateDefaultSubobject<UInteractor>(TEXT("PumpkinInteractor"));
	this->_pumpkinInteractionZone = CreateDefaultSubobject<UBoxComponent>(TEXT("PumpkinInteractionZone"));
	this->_respawnableComponent = CreateDefaultSubobject<URespawnableComponent>(TEXT("RespawnableComponent"));
	this->_pumpkinTreatEffect = NULL;
	this->_pumpkinTrickEffect = NULL;
	this->_minDistanceToFollowPlayer = 85.000000;
	this->_maxDistanceToFollowPlayer = 3200.000000;
}
