Initial commit
This commit is contained in:
83
Source/Aura/Public/Actor/AuraEffectActor.h
Normal file
83
Source/Aura/Public/Actor/AuraEffectActor.h
Normal file
@@ -0,0 +1,83 @@
|
||||
// Copyright Echo Devgroup
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "ActiveGameplayEffectHandle.h"
|
||||
#include "GameplayEffectTypes.h"
|
||||
#include "GameFramework/Actor.h"
|
||||
#include "AuraEffectActor.generated.h"
|
||||
|
||||
class UAbilitySystemComponent;
|
||||
class UGameplayEffect;
|
||||
|
||||
UENUM(BlueprintType)
|
||||
enum class EEffectApplicationPolicy :uint8
|
||||
{
|
||||
ApplyOnOverlap,
|
||||
ApplyOnEndOverlap,
|
||||
DoNotApply
|
||||
};
|
||||
|
||||
UENUM(BlueprintType)
|
||||
enum class EEffectRemovalPolicy :uint8
|
||||
{
|
||||
RemoveOnEndOverlap,
|
||||
DoNotRemove
|
||||
};
|
||||
|
||||
UCLASS()
|
||||
class AURA_API AAuraEffectActor : public AActor
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
AAuraEffectActor();
|
||||
|
||||
|
||||
protected:
|
||||
virtual void BeginPlay() override;
|
||||
|
||||
UFUNCTION(BlueprintCallable)
|
||||
void OnOverlap(AActor* TargetActor);
|
||||
|
||||
UFUNCTION(BlueprintCallable)
|
||||
void OnEndOverlap(AActor* TargetActor);
|
||||
|
||||
UPROPERTY(EditAnywhere)
|
||||
bool bDestroyOnEffectRemoval = false;
|
||||
|
||||
UFUNCTION(BlueprintCallable)
|
||||
void ApplyEffectToTarget(AActor* TargetActor, TSubclassOf<UGameplayEffect> GameplayEffectClass);
|
||||
|
||||
//Instant Gameplay Effects
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Applied Effects")
|
||||
TSubclassOf<UGameplayEffect> InstantGameplayEffectClass;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Applied Effects")
|
||||
EEffectApplicationPolicy InstantEffectApplicationPolicy = EEffectApplicationPolicy::DoNotApply;
|
||||
|
||||
//Duration Gameplay Effects
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Applied Effects")
|
||||
TSubclassOf<UGameplayEffect> DurationGameplayEffectClass;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Applied Effects")
|
||||
EEffectApplicationPolicy DurationEffectApplicationPolicy = EEffectApplicationPolicy::DoNotApply;
|
||||
|
||||
//Infinite Gameplay Effects
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Applied Effects")
|
||||
TSubclassOf<UGameplayEffect> InfiniteGameplayEffectClass;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Applied Effects")
|
||||
EEffectApplicationPolicy InfiniteEffectApplicationPolicy = EEffectApplicationPolicy::DoNotApply;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Applied Effects")
|
||||
EEffectRemovalPolicy InfiniteEffectRemovalPolicy = EEffectRemovalPolicy::RemoveOnEndOverlap;
|
||||
|
||||
TMap<FActiveGameplayEffectHandle, UAbilitySystemComponent*> ActiveEffectHandles;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Applied Effects")
|
||||
float ActorLevel = 1.f;
|
||||
private:
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user