DRG-Femboy-Voice/Source/FSD/Public/StatusEffect.h
2025-04-15 12:39:31 -07:00

85 lines
2.8 KiB
C++
Executable file

#pragma once
#include "CoreMinimal.h"
#include "UObject/Object.h"
#include "GameplayTagContainer.h"
#include "GameplayTagContainer.h"
#include "RandRange.h"
#include "Templates/SubclassOf.h"
#include "StatusEffect.generated.h"
class AActor;
class UDamageClass;
class UPawnAffliction;
class UStatusEffect;
class UStatusEffectExclusiveKey;
class UStatusEffectItem;
UCLASS(Abstract, Blueprintable, EditInlineNew)
class UStatusEffect : public UObject {
GENERATED_BODY()
public:
protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UPawnAffliction* PawnAffliction;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
TArray<UStatusEffectItem*> StatusEffects;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float MaxResistance;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UDamageClass* DamageClass;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UStatusEffectExclusiveKey* ExclusiveKey;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool TriggerTwiceOnPush;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FRandRange ApplyEffectsInterval;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool CanStack;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 MaxStack;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float Duration;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool ApplyDurationAfterPop;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool RemoveOnDeath;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool RemoveOnTemperatureStateChange;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool AllowExternalSread;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FGameplayTagQuery GameplayTagQuery;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FGameplayTagContainer ExcludeTargetsWithTags;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FGameplayTagContainer TargetRequiredTags;
public:
UStatusEffect();
UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
bool ShouldInstantiate() const;
UFUNCTION(BlueprintCallable, BlueprintPure)
static float GetStatusEffectDuration(TSubclassOf<UStatusEffect> StatusEffect);
UFUNCTION(BlueprintCallable, BlueprintPure)
bool CanTrigger(AActor* Target) const;
};