Add more abilities in the sample

This commit is contained in:
Arnaud Jamin
2023-10-05 16:57:43 -04:00
parent e952256b98
commit 25f2e06400
83 changed files with 966 additions and 356 deletions
@@ -0,0 +1,46 @@
#pragma once
#include "CoreMinimal.h"
#include "GameplayEffectExecutionCalculation.h"
#include "ScalableFloat.h"
#include "CogSampleExecCalculation_PoolRegen.generated.h"
UENUM()
enum class ECogSamplePoolRegenMode : uint8
{
Attribute,
MaxPoolDuration,
ScalableFloatRate,
};
UCLASS()
class UCogSampleExecCalculation_PoolRegen : public UGameplayEffectExecutionCalculation
{
GENERATED_BODY()
public:
UCogSampleExecCalculation_PoolRegen();
UPROPERTY(EditAnywhere, BlueprintReadOnly)
FGameplayAttribute AmountAttribute;
UPROPERTY(EditAnywhere, BlueprintReadOnly)
FGameplayTag DisableRegenTag;
UPROPERTY(EditAnywhere, BlueprintReadOnly)
ECogSamplePoolRegenMode Mode = ECogSamplePoolRegenMode::MaxPoolDuration;
UPROPERTY(EditAnywhere, BlueprintReadOnly, meta = (EditConditionHides, EditCondition = "Mode == ECogSamplePoolRegenMode::Attribute"))
FGameplayAttribute RegenRateAttribute;
UPROPERTY(EditAnywhere, BlueprintReadOnly, meta = (EditConditionHides, EditCondition = "Mode == ECogSamplePoolRegenMode::ScalableFloatRate"))
FScalableFloat RegenRate;
UPROPERTY(EditAnywhere, BlueprintReadOnly, meta = (EditConditionHides, EditCondition = "Mode == ECogSamplePoolRegenMode::MaxPoolDuration"))
FGameplayAttribute MaxAmountAttribute;
UPROPERTY(EditAnywhere, BlueprintReadOnly, meta = (EditConditionHides, EditCondition = "Mode == ECogSamplePoolRegenMode::MaxPoolDuration"))
FScalableFloat TotalDuration;
virtual void Execute_Implementation(const FGameplayEffectCustomExecutionParameters& ExecutionParams, OUT FGameplayEffectCustomExecutionOutput& OutExecutionOutput) const override;
};