// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "LyraGameplayAbility.h" #include "LyraGameplayAbility_Death.generated.h" /** * ULyraGameplayAbility_Death * * Gameplay ability used for handling death. * Ability is activated automatically via the "GameplayEvent.Death" ability trigger tag. */ UCLASS(Abstract) class ULyraGameplayAbility_Death : public ULyraGameplayAbility { GENERATED_BODY() public: ULyraGameplayAbility_Death(const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get()); protected: void DoneAddingNativeTags(); virtual void ActivateAbility(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo* ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, const FGameplayEventData* TriggerEventData) override; virtual void EndAbility(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo* ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, bool bReplicateEndAbility, bool bWasCancelled) override; // Starts the death sequence. UFUNCTION(BlueprintCallable, Category = "Lyra|Ability") void StartDeath(); // Finishes the death sequence. UFUNCTION(BlueprintCallable, Category = "Lyra|Ability") void FinishDeath(); protected: // If enabled, the ability will automatically call StartDeath. FinishDeath is always called when the ability ends if the death was started. UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Lyra|Death") bool bAutoStartDeath; };