#include "Competence.h"
#include "Net/UnrealNetwork.h"
#include "ManualIconStrategy.h"

class UBasePerkIconStrategy;
class UTimerObject;

void UCompetence::OnRep_TokenCount(int32 oldCount)
{

}

void UCompetence::OnRep_IsDisabled(bool disabled)
{

}

void UCompetence::OnRep_CooldownTimer() const
{

}

bool UCompetence::IsPermanentlyDisabled() const
{
	return false;
}

bool UCompetence::IsHudIconTimerDone() const
{
	return false;
}

bool UCompetence::IsHudIconTimerActive() const
{
	return false;
}

bool UCompetence::IsCooldownTimerDone() const
{
	return false;
}

int32 UCompetence::GetTokenCount() const
{
	return 0;
}

UBasePerkIconStrategy* UCompetence::GetPerkIconStrategy() const
{
	return NULL;
}

int32 UCompetence::GetMaxTokenCount() const
{
	return 0;
}

float UCompetence::GetHudIconTimerRemainingTime() const
{
	return 0.0f;
}

float UCompetence::GetHudIconTimerElapsedTimePercent() const
{
	return 0.0f;
}

UTimerObject* UCompetence::GetCooldownTimer() const
{
	return NULL;
}

void UCompetence::Authority_TriggerHudIconTimer(float duration)
{

}

void UCompetence::Authority_TriggerCooldownTimer(const float duration)
{

}

void UCompetence::Authority_SetTokenCount(int32 value)
{

}

void UCompetence::Authority_SetPermanentlyDisabled(bool disabled)
{

}

void UCompetence::Authority_SetMaxTokenCount(int32 value)
{

}

void UCompetence::Authority_IncrementToken()
{

}

void UCompetence::Authority_DecrementToken()
{

}

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

	DOREPLIFETIME(UCompetence, _cooldownTimer);
	DOREPLIFETIME(UCompetence, _hudIconTimer);
	DOREPLIFETIME(UCompetence, _isDisabled);
	DOREPLIFETIME(UCompetence, _tokenCount);
	DOREPLIFETIME(UCompetence, _maxTokenCount);
}

UCompetence::UCompetence()
{
	this->PerkIconStrategyClass = UManualIconStrategy::StaticClass();
	this->SetInactiveDuringCooldown = false;
	this->_isDisabled = false;
	this->_tokenCount = 0;
	this->_maxTokenCount = 3;
	this->_startWithMaxTokenCount = false;
	this->_tokenSoundStrategy = EPerkTokenSoundStrategy::SoundOnEveryTokenChange;
}
