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

74 lines
2.7 KiB
C++
Executable file

#pragma once
#include "CoreMinimal.h"
#include "Objective.h"
#include "PlagueObjective.generated.h"
class APlagueControlActor;
class APlagueInfectionNode;
class UDialogDataAsset;
class UEnemyWaveController;
UCLASS(Abstract, Blueprintable, ClassGroup=Custom, meta=(BlueprintSpawnableComponent))
class UPlagueObjective : public UObjective {
GENERATED_BODY()
public:
protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, Replicated, meta=(AllowPrivateAccess=true))
int32 StartPlagueAmount;
UPROPERTY(BlueprintReadWrite, EditAnywhere, ReplicatedUsing=OnRep_CurrentPlagueAmount, meta=(AllowPrivateAccess=true))
int32 CurrentPlagueAmount;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 TargetPlagueAmount;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float PercentageRequiredForCompletion;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 SpawningTowersCount;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UDialogDataAsset* NodeKilledShout;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UDialogDataAsset* LastNodeKilledShout;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UDialogDataAsset* OverridePrimaryObjCompletedShout_SelfCompleted;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UDialogDataAsset* OverridePrimaryObjCompletedShout_SelfNotCompleted;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool AllPlagueCleaned;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Replicated, Transient, meta=(AllowPrivateAccess=true))
APlagueControlActor* PlagueController;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TSoftClassPtr<APlagueControlActor> PlagueControllerClass;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TArray<APlagueInfectionNode*> ActivePlagueCenters;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TSoftClassPtr<UEnemyWaveController> ScriptedPlagueWave;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float ScriptedPlagueWaveWeight;
public:
UPlagueObjective();
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
protected:
UFUNCTION(BlueprintCallable)
void OnRep_CurrentPlagueAmount(int32 OldAmount);
public:
UFUNCTION(BlueprintCallable, BlueprintPure)
TArray<APlagueInfectionNode*> GetPlagueCenters();
};