Skip to content

Commit

Permalink
Adding ability helpers
Browse files Browse the repository at this point in the history
  • Loading branch information
iniside committed Jul 5, 2017
1 parent 2360762 commit 23bbc70
Show file tree
Hide file tree
Showing 12 changed files with 323 additions and 128 deletions.
3 changes: 2 additions & 1 deletion ActionRPGGame.uproject
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
"AdditionalDependencies": [
"AbilityFramework",
"Engine",
"AIModule"
"AIModule",
"UMG"
]
}
],
Expand Down
4 changes: 4 additions & 0 deletions Config/DefaultGameplayTags.ini
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,16 @@ NetIndexFirstBitSegment=16
-GameplayTagList=(Tag="Ability.Rifle.Damage",DevComment="")
-GameplayTagList=(Tag="Ability.Rifle.Shoot",DevComment="")
-GameplayTagList=(Tag="Cue.Ability.Shoot",DevComment="")
-GameplayTagList=(Tag="Damage",DevComment="")
-GameplayTagList=(Tag="Input.Ability01.Activate",DevComment="")
-GameplayTagList=(Tag="Input.Gun.Shoot",DevComment="")
+GameplayTagList=(Tag="Ability.Corruption",DevComment="")
+GameplayTagList=(Tag="Ability.Corruption.Cooldown",DevComment="")
+GameplayTagList=(Tag="Ability.Rifle",DevComment="")
+GameplayTagList=(Tag="Ability.Rifle.Damage",DevComment="")
+GameplayTagList=(Tag="Ability.Rifle.Shoot",DevComment="")
+GameplayTagList=(Tag="Cue.Ability.Shoot",DevComment="")
+GameplayTagList=(Tag="Damage",DevComment="")
+GameplayTagList=(Tag="Input.Ability01.Activate",DevComment="")
+GameplayTagList=(Tag="Input.Gun.Shoot",DevComment="")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ void UGAAbilityBase::OnActivationEffectPeriod(const FGAEffectHandle& InHandle)
void UGAAbilityBase::FinishAbility()
{
UE_LOG(AbilityFramework, Log, TEXT("FinishExecution in ability %s"), *GetName());
OnFinished();
OnAbilityFinished();
NativeFinishAbility();
AbilityState = EAFAbilityState::Waiting;
AbilityComponent->AppliedTags.RemoveTagContainer(ActivationAddedTags);
Expand Down Expand Up @@ -218,6 +218,9 @@ bool UGAAbilityBase::ApplyCooldownEffect()
{
return false;
}
FAFFunctionModifier Modifier;
CooldownEffectHandle = UGABlueprintLibrary::ApplyGameEffectToObject(CooldownEffect,
this, POwner, this, Modifier);

return false;
}
Expand Down Expand Up @@ -288,49 +291,6 @@ bool UGAAbilityBase::CanReleaseAbility()
}
return bCanUse;
}
float UGAAbilityBase::GetCurrentActivationTime() const
{
if (ActivationEffect.Handle.IsValid())
{
return ActivationEffect.Handle.GetEffectPtr()->GetCurrentActivationTime();
}
return 0;
}
float UGAAbilityBase::BP_GetCurrentActivationTime() const
{
return GetCurrentActivationTime();
}
float UGAAbilityBase::GetCurrentCooldownTime() const
{
return 0;
}

float UGAAbilityBase::GetPeriodTime() const
{
//if(Activation)
return 0;
}
float UGAAbilityBase::BP_GetPeriodTime() const
{
return GetPeriodTime();
}

float UGAAbilityBase::GetCooldownTime() const
{
return GetWorld()->GetTimeSeconds() - LastCooldownTime;
}
float UGAAbilityBase::BP_GetCooldownTime() const
{
return GetCooldownTime();
}
float UGAAbilityBase::GetActivationTime() const
{
return GetWorld()->GetTimeSeconds() - LastActivationTime;
}
float UGAAbilityBase::BP_GetActivationTime() const
{
return GetActivationTime();
}

void UGAAbilityBase::OnGameplayTaskInitialized(UGameplayTask& Task)
{
Expand Down Expand Up @@ -421,6 +381,10 @@ bool UGAAbilityBase::IsOnCooldown()
{
bool bOnCooldown = false;
bOnCooldown = AbilityComponent->IsEffectActive(CooldownEffectHandle);
if (bOnCooldown)
{
OnNotifyOnCooldown.Broadcast();
}
return bOnCooldown; //temp
}
bool UGAAbilityBase::IsActivating()
Expand Down Expand Up @@ -563,4 +527,87 @@ bool UGAAbilityBase::LineTraceSingleByChannelCorrected(FName SocketName, float R
{
return false;
}
/* Tracing Helpers End */
/* Tracing Helpers End */

//Helpers
float UGAAbilityBase::GetActivationRemainingTime() const
{
return AbilityComponent->GameEffectContainer.GetRemainingTime(ActivationEffectHandle);
}
float UGAAbilityBase::GetActivationRemainingTimeNormalized() const
{
return AbilityComponent->GameEffectContainer.GetRemainingTimeNormalized(ActivationEffectHandle);
}
float UGAAbilityBase::GetActivationCurrentTime() const
{
return AbilityComponent->GameEffectContainer.GetCurrentTime(ActivationEffectHandle);
}
float UGAAbilityBase::GetActivationCurrentTimeNormalized() const
{
return AbilityComponent->GameEffectContainer.GetCurrentTimeNormalized(ActivationEffectHandle);
}
float UGAAbilityBase::GetActivationEndTime() const
{
return AbilityComponent->GameEffectContainer.GetEndTime(ActivationEffectHandle);
}

float UGAAbilityBase::BP_GetActivationRemainingTime()
{
return GetActivationRemainingTime();
}
float UGAAbilityBase::BP_GetActivationRemainingTimeNormalized()
{
return GetActivationRemainingTimeNormalized();
}
float UGAAbilityBase::BP_GetActivationCurrentTime()
{
return GetActivationCurrentTime();
}
float UGAAbilityBase::BP_GetActivationCurrentTimeNormalized()
{
return GetActivationCurrentTimeNormalized();
}
float UGAAbilityBase::BP_GetActivationEndTime()
{
return GetActivationEndTime();
}
float UGAAbilityBase::GetCooldownRemainingTime() const
{
return AbilityComponent->GameEffectContainer.GetRemainingTime(CooldownEffectHandle);
}
float UGAAbilityBase::GetCooldownRemainingTimeNormalized() const
{
return AbilityComponent->GameEffectContainer.GetRemainingTimeNormalized(CooldownEffectHandle);
}
float UGAAbilityBase::GetCooldownCurrentTime() const
{
return AbilityComponent->GameEffectContainer.GetCurrentTime(CooldownEffectHandle);
}
float UGAAbilityBase::GetCooldownCurrentTimeNormalized() const
{
return AbilityComponent->GameEffectContainer.GetCurrentTimeNormalized(CooldownEffectHandle);
}
float UGAAbilityBase::GetCooldownEndTime() const
{
return AbilityComponent->GameEffectContainer.GetEndTime(CooldownEffectHandle);
}
float UGAAbilityBase::BP_GetCooldownRemainingTime()
{
return GetCooldownRemainingTime();
}
float UGAAbilityBase::BP_GetCooldownRemainingTimeNormalized()
{
return GetCooldownRemainingTimeNormalized();
}
float UGAAbilityBase::BP_GetCooldownCurrentTime()
{
return GetCooldownCurrentTime();
}
float UGAAbilityBase::BP_GetCooldownCurrentTimeNormalized()
{
return GetCooldownCurrentTimeNormalized();
}
float UGAAbilityBase::BP_GetCooldownEndTime()
{
return GetCooldownEndTime();
}
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,9 @@ class ABILITYFRAMEWORK_API UGAAbilityBase : public UObject, public IGameplayTask
FGASGenericAbilityDelegate OnActivateBeginDelegate;
UPROPERTY(BlueprintAssignable)
FGASGenericAbilityDelegate OnActivationFinishedDelegate;

UPROPERTY(BlueprintAssignable)
FGASGenericAbilityDelegate OnNotifyOnCooldown;
protected:
EAFAbilityState AbilityState;

Expand Down Expand Up @@ -290,8 +293,7 @@ class ABILITYFRAMEWORK_API UGAAbilityBase : public UObject, public IGameplayTask
void NativeOnAbilityConfirmed();

/*
Called when ability get message to activate.
For player it usually means on button press.
Called when StartActivation is triggered.
*/
UFUNCTION(BlueprintImplementableEvent, Category = "AbilityFramework|Abilities")
void OnActivate();
Expand All @@ -303,12 +305,6 @@ class ABILITYFRAMEWORK_API UGAAbilityBase : public UObject, public IGameplayTask
UFUNCTION(BlueprintImplementableEvent, Category = "AbilityFramework|Abilities")
void OnActivationFinished();

/*
Called when ability deactivates.
For player it usually means in input release.
*/
UFUNCTION(BlueprintImplementableEvent, Category = "AbilityFramework|Abilities")
void OnDeactivate();
/*
In blueprint, call this function to trigger event of the same name,
after ability is ready to be executed (like after targeting is done, input is confirmed,
Expand Down Expand Up @@ -336,7 +332,7 @@ class ABILITYFRAMEWORK_API UGAAbilityBase : public UObject, public IGameplayTask

/* Event called when ability finishes it's execution. Called AFTER OnAbilityExecuted. */
UFUNCTION(BlueprintImplementableEvent, Category = "AbilityFramework|Abilities")
void OnFinished();
void OnAbilityFinished();

UFUNCTION()
void OnCooldownEffectExpired();
Expand All @@ -363,23 +359,6 @@ class ABILITYFRAMEWORK_API UGAAbilityBase : public UObject, public IGameplayTask

bool CanUseAbility();
bool CanReleaseAbility();

float GetCurrentActivationTime() const;
UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Current Activation Time"), Category = "AbilityFramework|Abilities")
float BP_GetCurrentActivationTime() const;
float GetCurrentCooldownTime() const;

float GetPeriodTime() const;
UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Period Time"), Category = "AbilityFramework|Abilities")
float BP_GetPeriodTime() const;

float GetCooldownTime() const;
UFUNCTION(BlueprintPure, meta=(DisplayName = "Get Cooldown Time"), Category = "AbilityFramework|Abilities")
float BP_GetCooldownTime() const;

float GetActivationTime() const;
UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Activation Time"), Category = "AbilityFramework|Abilities")
float BP_GetActivationTime() const;

/** GameplayTaskOwnerInterface - Begin */
virtual UGameplayTasksComponent* GetGameplayTasksComponent(const UGameplayTask& Task) const override;
Expand Down Expand Up @@ -488,4 +467,41 @@ class ABILITYFRAMEWORK_API UGAAbilityBase : public UObject, public IGameplayTask
bool LineTraceSingleByChannelCorrected(FName SocketName, float Range, ETraceTypeQuery TraceChannel, bool bTraceComplex, FHitResult& OutHit,
EDrawDebugTrace::Type DrawDebugType, bool bIgnoreSelf, FLinearColor TraceColor, FLinearColor TraceHitColor, float DrawTime);
/* Tracing Helpers End */


//Helpers
float GetActivationRemainingTime() const;
float GetActivationRemainingTimeNormalized() const;
float GetActivationCurrentTime() const;
float GetActivationCurrentTimeNormalized() const;
float GetActivationEndTime() const;

UFUNCTION(BlueprintPure, DisplayName = "GetActivationRemainingTime", Category = "AbilityFramework|Abilities|Helpers")
float BP_GetActivationRemainingTime();
UFUNCTION(BlueprintPure, DisplayName = "GetActivationRemainingTimeNormalized", Category = "AbilityFramework|Abilities|Helpers")
float BP_GetActivationRemainingTimeNormalized();
UFUNCTION(BlueprintPure, DisplayName = "GetActivationCurrentTime", Category = "AbilityFramework|Abilities|Helpers")
float BP_GetActivationCurrentTime();
UFUNCTION(BlueprintPure, DisplayName = "GetActivationCurrentTimeNormalized", Category = "AbilityFramework|Abilities|Helpers")
float BP_GetActivationCurrentTimeNormalized();
UFUNCTION(BlueprintPure, DisplayName = "GetActivationEndTime", Category = "AbilityFramework|Abilities|Helpers")
float BP_GetActivationEndTime();


float GetCooldownRemainingTime() const;
float GetCooldownRemainingTimeNormalized() const;
float GetCooldownCurrentTime() const;
float GetCooldownCurrentTimeNormalized() const;
float GetCooldownEndTime() const;

UFUNCTION(BlueprintPure, DisplayName = "GetCooldownRemainingTime", Category = "AbilityFramework|Abilities|Helpers")
float BP_GetCooldownRemainingTime();
UFUNCTION(BlueprintPure, DisplayName = "GetCooldownRemainingTimeNormalized", Category = "AbilityFramework|Abilities|Helpers")
float BP_GetCooldownRemainingTimeNormalized();
UFUNCTION(BlueprintPure, DisplayName = "GetCooldownCurrentTime", Category = "AbilityFramework|Abilities|Helpers")
float BP_GetCooldownCurrentTime();
UFUNCTION(BlueprintPure, DisplayName = "GetCooldownCurrentTimeNormalized", Category = "AbilityFramework|Abilities|Helpers")
float BP_GetCooldownCurrentTimeNormalized();
UFUNCTION(BlueprintPure, DisplayName = "GetCooldownEndTime", Category = "AbilityFramework|Abilities|Helpers")
float BP_GetCooldownEndTime();
};

This file was deleted.

This file was deleted.

Loading

0 comments on commit 23bbc70

Please sign in to comment.