#pragma once #include "CoreMinimal.h" #include "CharacterStateComponent.h" #include "RandRange.h" #include "InfectedStateComponent.generated.h" class UAnimMontage; class UFSDPhysicalMaterial; class UPawnAffliction; class USoundBase; UCLASS(Blueprintable, MinimalAPI, ClassGroup=Custom, meta=(BlueprintSpawnableComponent)) class UInfectedStateComponent : public UCharacterStateComponent { GENERATED_BODY() public: protected: UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) FRandRange CleanseAmount; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) USoundBase* AudioFreeOfInfection; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UFSDPhysicalMaterial* InfectedPhysicalMaterial; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UFSDPhysicalMaterial* DwarfFleshMaterial; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UPawnAffliction* InfectedAffliction; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UAnimMontage* InfectedMontage; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UAnimMontage* InfectedAndBreakingFreeMontage; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float BreakingFreeMontageDuration; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float HoldToBreakTime; public: UInfectedStateComponent(); protected: UFUNCTION(BlueprintCallable, Reliable, Server) void Server_Breakout(); UFUNCTION(BlueprintCallable, BlueprintImplementableEvent) void ReceiveOnCleansing(); };