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(); }
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); }
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()); }
UWorld* UGASAbilityMod::GetWorld() const { return GetOuterUGASAbilityBase()->GetWorld(); }
void UGASAbilityStateCooldown::FinishCooldown() { GetOuterUGASAbilityBase()->bIsOnCooldown = false; GetOuterUGASAbilityBase()->GotoState(GetOuterUGASAbilityBase()->DefaultState); }