mirror of
https://github.com/Ed94/Cog.git
synced 2026-06-13 08:02:23 -07:00
47 lines
1.5 KiB
C++
47 lines
1.5 KiB
C++
#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)
|
|
FGameplayAttribute MaxAmountAttribute;
|
|
|
|
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"))
|
|
FScalableFloat TotalDuration;
|
|
|
|
virtual void Execute_Implementation(const FGameplayEffectCustomExecutionParameters& ExecutionParams, OUT FGameplayEffectCustomExecutionOutput& OutExecutionOutput) const override;
|
|
};
|