#pragma once #include "CoreMinimal.h" #include "FloatPerkComponent.h" #include "Templates/SubclassOf.h" #include "ShieldLinkComponent.generated.h" class APlayerCharacter; class UStatusEffect; UCLASS(Blueprintable, ClassGroup=Custom, meta=(BlueprintSpawnableComponent)) class UShieldLinkComponent : public UFloatPerkComponent { GENERATED_BODY() public: protected: UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) TSubclassOf BoostedStatusEffect; UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true)) UStatusEffect* BoostedStatusEffectInstance; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float LinkDistance; UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true)) TSet LinkedCharacters; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) TSubclassOf LinkStatusEffect; public: UShieldLinkComponent(); protected: UFUNCTION(BlueprintCallable) void TimerFunction(); };