#include "K26AttachedCrow.h"
#include "GameplayTagContainer.h"
#include "GameEventData.h"
#include "EHealthState.h"
#include "Net/UnrealNetwork.h"
#include "K26PowerOutlineUpdateStrategy.h"
#include "DBDOutlineComponent.h"
#include "Components/StaticMeshComponent.h"
#include "Components/SceneComponent.h"

class ASurvivor;
class AK26AttachedCrow;
class AActor;

void AK26AttachedCrow::OnRep_AttachmentStatus()
{

}

void AK26AttachedCrow::Multicast_OnStopDetaching_Implementation()
{

}

void AK26AttachedCrow::Multicast_OnStartDetaching_Implementation()
{

}

void AK26AttachedCrow::HideOutline()
{

}

void AK26AttachedCrow::Authority_OnSurvivorWasUnhooked(FGameplayTag gameEventType, const FGameEventData& gameEventData)
{

}

void AK26AttachedCrow::Authority_OnSurvivorStatusIndicatorSet(const ASurvivor* survivor, AK26AttachedCrow* attachedCrow)
{

}

void AK26AttachedCrow::Authority_OnSurvivorExitLocker(FGameplayTag gameEventType, const FGameEventData& gameEventData)
{

}

void AK26AttachedCrow::Authority_OnSurvivorDroppedEnd()
{

}

void AK26AttachedCrow::Authority_OnSurvivorAdded(ASurvivor* survivor)
{

}

void AK26AttachedCrow::Authority_OnPlayerLeftGame(FGameplayTag gameEventType, const FGameEventData& gameEventData)
{

}

void AK26AttachedCrow::Authority_OnOtherSurvivorPerkFlagsChanged(FGameplayTag gameplayTag, bool isAdded)
{

}

void AK26AttachedCrow::Authority_OnOtherSurvivorGuidedActionChanged()
{

}

void AK26AttachedCrow::Authority_OnOtherSurvivorDamageStateChanged(EHealthState before, EHealthState after)
{

}

void AK26AttachedCrow::Authority_OnOtherAttachedCrowRemoved()
{

}

void AK26AttachedCrow::Authority_OnIsWithinOtherSurvivorRangeChanged(AActor* survivorActor, const bool isInRange)
{

}

void AK26AttachedCrow::Authority_DeactivateInfection()
{

}

void AK26AttachedCrow::Authority_ActivateInfection()
{

}

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

	DOREPLIFETIME(AK26AttachedCrow, _attachmentStatus);
	DOREPLIFETIME(AK26AttachedCrow, _owningKiller);
}

AK26AttachedCrow::AK26AttachedCrow()
{
	this->_outlineUpdateStrategy = CreateDefaultSubobject<UK26PowerOutlineUpdateStrategy>(TEXT("OutlineUpdateStrategy"));
	this->_outlineComponent = CreateDefaultSubobject<UDBDOutlineComponent>(TEXT("OutlineComponent"));
	this->_visualStaticMeshComponent = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Visual"));
	this->_rootComponent = CreateDefaultSubobject<USceneComponent>(TEXT("rootComponent"));
	this->_authority_isInfecting = false;
}
