#include "CageHook.h"
#include "UObject/NoExportTypes.h"
#include "Components/SceneComponent.h"
#include "ChargeableComponent.h"
#include "DBDSkeletalMeshComponentBudgeted.h"
#include "Components/BoxComponent.h"
#include "MontagePlayer.h"
#include "AnimationMontageSlave.h"
#include "CageHookAntiCampComponent.h"
#include "Perception/AIPerceptionStimuliSourceComponent.h"

class ASurvivor;
class AKiller;

void ACageHook::OnSkillCheckFailed()
{

}

void ACageHook::OnCageDisappear()
{

}

void ACageHook::Multicast_SendSurvivorToCageImmediately_Implementation(ASurvivor* survivor, AKiller* killerInstigator, const FVector& location, const FRotator& rotation)
{

}

void ACageHook::Multicast_SendSurvivorToCage_Implementation(ASurvivor* survivor, AKiller* killerInstigator)
{

}

void ACageHook::Multicast_Relocate_Implementation(const FVector& location, const FRotator& rotation, const bool isAnticampRelocation)
{

}

FVector ACageHook::GetRescuerSnapPosition() const
{
	return FVector{};
}

UMontagePlayer* ACageHook::GetMontagePlayer() const
{
	return NULL;
}

ASurvivor* ACageHook::GetCagedSurvivor() const
{
	return NULL;
}

ACageHook::ACageHook()
{
	this->_inMontageID = NAME_None;
	this->_idleMontageID = NAME_None;
	this->_idleToStruggleMontageID = NAME_None;
	this->_struggleMontageID = NAME_None;
	this->_struggleHitMontageID = NAME_None;
	this->_deadMontageID = NAME_None;
	this->_relocateMontageID = NAME_None;
	this->_goingUnderMontageID = NAME_None;
	this->_survivorSocketID = TEXT("SurvivorAttach_01Socket");
	this->_rescuerSocketID = TEXT("RescuerAttach_01Socket");
	this->_cameraSocketID = NAME_None;
	this->_rescueSocketID = TEXT("Cam01Socket");
	this->_sacrificeAfterMontageSecond = 3.000000;
	this->_goingUnderMontageSecond = 1.000000;
	this->_furthestLocationSelectionCount = 0;
	this->_root = CreateDefaultSubobject<USceneComponent>(TEXT("Root"));
	this->_rescueChargeableComponent = CreateDefaultSubobject<UChargeableComponent>(TEXT("RescueChargeableComponent"));
	this->_cageSkeletalMesh = CreateDefaultSubobject<UDBDSkeletalMeshComponentBudgeted>(TEXT("CageSkeletalMesh"));
	this->_interactionZone = CreateDefaultSubobject<UBoxComponent>(TEXT("InteractorZone"));
	this->_playerOverlapZone = CreateDefaultSubobject<UBoxComponent>(TEXT("playerOverlapZone"));
	this->_montagePlayer = CreateDefaultSubobject<UMontagePlayer>(TEXT("MontagePlayer"));
	this->_cageCollision = CreateDefaultSubobject<UBoxComponent>(TEXT("CageCollision"));
	this->_animationMontageSlave = CreateDefaultSubobject<UAnimationMontageSlave>(TEXT("MontageSlave"));
	this->_anticampComponent = CreateDefaultSubobject<UCageHookAntiCampComponent>(TEXT("AnticampComponent"));
	this->_perceptionStimuliComponent = CreateDefaultSubobject<UAIPerceptionStimuliSourceComponent>(TEXT("AIPerceptionStimuliSourceComponent"));
}
