#include "K32Power.h"
#include "Net/UnrealNetwork.h"
#include "Interactor.h"
#include "BoxPlayerOverlapComponent.h"
#include "K32PowerChargePresentationItemProgressComponent.h"
#include "K32PowerChargePresentationPowerFadeComponent.h"
#include "ChargeableComponent.h"
#include "AuthoritativeActorPoolComponent.h"
#include "K32EmpScoreComponent.h"

class AActor;

void AK32Power::OnPodAddedToPool(AActor* actor) const
{

}

void AK32Power::OnEmpAddedToPool(AActor* actor)
{

}

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

	DOREPLIFETIME(AK32Power, _killerPodVisionController);
}

AK32Power::AK32Power()
{
	this->_interactor = CreateDefaultSubobject<UInteractor>(TEXT("Interactor"));
	this->_interactionVolume = CreateDefaultSubobject<UBoxPlayerOverlapComponent>(TEXT("Interaction Volume"));
	this->_powerChargePresentationItemProgressComponent = CreateDefaultSubobject<UK32PowerChargePresentationItemProgressComponent>(TEXT("Killer Pod Spawning Power UI Presenter"));
	this->_powerChargePresentationPowerFadeComponent = CreateDefaultSubobject<UK32PowerChargePresentationPowerFadeComponent>(TEXT("Killer Pod Spawning Power UI Fade Presenter"));
	this->_killerPodVisionControllerClass = NULL;
	this->_killerPodTargetIndicatorClass = NULL;
	this->_killerPodSpawningIndicatorClass = NULL;
	this->_survivorLockedOnTimeComponentClass = NULL;
	this->_blindnessProtectionStatusEffect = NULL;
	this->_undetectableWhileInPodsStatusEffect = NULL;
	this->_overclockStatusEffectClass = NULL;
	this->_survivorChargingEmpHinderedStatusEffectClass = NULL;
	this->_killerProjectileSpawnChargeableComponent = CreateDefaultSubobject<UChargeableComponent>(TEXT("Projectile Spawn Chargeable Component"));
	this->_empPool = CreateDefaultSubobject<UAuthoritativeActorPoolComponent>(TEXT("Emp Pool"));
	this->_empScoreComponent = CreateDefaultSubobject<UK32EmpScoreComponent>(TEXT("EmpScoreComponent"));
}
