#include "K36MageHand.h"
#include "Net/UnrealNetwork.h"
#include "Components/SceneComponent.h"
#include "DBDSkeletalMeshComponentBudgeted.h"
#include "DBDOutlineComponent.h"
#include "K36MageHandOutlineUpdateStrategy.h"
#include "AkComponent.h"
#include "StateController.h"
#include "MontagePlayer.h"
#include "GameplayTagContainerComponent.h"

class APallet;

void AK36MageHand::OnRep_TargetPallet(APallet* previousPallet)
{

}

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

	DOREPLIFETIME(AK36MageHand, _targetPallet);
	DOREPLIFETIME(AK36MageHand, _owningKiller);
}

AK36MageHand::AK36MageHand()
{
	this->_rootComponent = CreateDefaultSubobject<USceneComponent>(TEXT("Root"));
	this->_skeletalMeshComponent = CreateDefaultSubobject<UDBDSkeletalMeshComponentBudgeted>(TEXT("SkeletalMesh"));
	this->_outlineComponent = CreateDefaultSubobject<UDBDOutlineComponent>(TEXT("OutlineComponent"));
	this->_outlineStrategy = CreateDefaultSubobject<UK36MageHandOutlineUpdateStrategy>(TEXT("OutlineStrategy"));
	this->_akComponent = CreateDefaultSubobject<UAkComponent>(TEXT("AkComponent"));
	this->_stateController = CreateDefaultSubobject<UStateController>(TEXT("StateController"));
	this->_montagePlayer = CreateDefaultSubobject<UMontagePlayer>(TEXT("MontagePlayer"));
	this->_objectState = CreateDefaultSubobject<UGameplayTagContainerComponent>(TEXT("MageHandObjectState"));
}
