// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "GameplayAbilitySpec.h" #include "LyraGameplayAbility.h" #include "UObject/UObjectGlobals.h" #include "LyraGameplayAbility_Jump.generated.h" class UObject; struct FFrame; struct FGameplayAbilityActorInfo; struct FGameplayTagContainer; /** * ULyraGameplayAbility_Jump * * Gameplay ability used for character jumping. */ UCLASS(Abstract) class ULyraGameplayAbility_Jump : public ULyraGameplayAbility { GENERATED_BODY() public: ULyraGameplayAbility_Jump(const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get()); protected: virtual bool CanActivateAbility(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo* ActorInfo, const FGameplayTagContainer* SourceTags, const FGameplayTagContainer* TargetTags, FGameplayTagContainer* OptionalRelevantTags) const override; virtual void EndAbility(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo* ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, bool bReplicateEndAbility, bool bWasCancelled) override; UFUNCTION(BlueprintCallable, Category = "Lyra|Ability") void CharacterJumpStart(); UFUNCTION(BlueprintCallable, Category = "Lyra|Ability") void CharacterJumpStop(); };