コード例 #1
0
void UGASAbilityStateCooldown::BeginState(UGASAbilityState* PrevState)
{
	//GetOuterUGASAbility()->bIsOnCooldown = true;
	//GetOuterAARAbility()->EnterCooldown();
	GetOuterUGASAbilityBase()->bIsOnCooldown = true;
	//GetOuterUGASAbility()->SetTickEnabled(true);
	UE_LOG(GameAbilities, Log, TEXT("Begining State: %s"), *GetName());
	FTimerManager& TimerManager = GetOuterUGASAbilityBase()->GetWorld()->GetTimerManager();
	FTimerDelegate del = FTimerDelegate::CreateUObject(this, &UGASAbilityStateCooldown::FinishCooldown);
	TimerManager.SetTimer(CooldownTimerDelegate, del, Cooldown, false, Cooldown);
	//FinishCooldown();
}
コード例 #2
0
void UGASAbilityStateCooldown::FinishCooldown()
{
	//GetOuterUGASAbility()->bIsOnCooldown = false;
	//if (GetOuterUGASAbility()->GetNetMode() == ENetMode::NM_DedicatedServer)
	//	GetOuterUGASAbility()->EndCooldown();

	//GetOuterUGASAbility()->SetTickEnabled(false);
	//GetOuterUGASAbility()->GotoState(GetOuterUGASAbility()->ActiveState);
	FTimerManager& TimerManager = GetOuterUGASAbilityBase()->GetWorld()->GetTimerManager();
	TimerManager.ClearTimer(CooldownTimerDelegate);
	GetOuterUGASAbilityBase()->bIsOnCooldown = false;
	GetOuterUGASAbilityBase()->GotoState(GetOuterUGASAbilityBase()->DefaultState);
}
コード例 #3
0
void UGASAbilityStateCooldown::BeginState(UGASAbilityState* PrevState)
{
	if (GetOuterUGASAbilityBase()->ApplyCooldownEffect())
	{
		GetOuterUGASAbilityBase()->bIsOnCooldown = true;
	}
	else
	{
		GetOuterUGASAbilityBase()->bIsOnCooldown = false;
		GetOuterUGASAbilityBase()->GotoState(GetOuterUGASAbilityBase()->DefaultState);
	}
	
	UE_LOG(GameAbilities, Log, TEXT("Begining State: %s"), *GetName());
}
コード例 #4
0
UWorld* UGASAbilityMod::GetWorld() const
{
	return GetOuterUGASAbilityBase()->GetWorld();
}
コード例 #5
0
void UGASAbilityStateCooldown::FinishCooldown()
{
	GetOuterUGASAbilityBase()->bIsOnCooldown = false;
	GetOuterUGASAbilityBase()->GotoState(GetOuterUGASAbilityBase()->DefaultState);
}