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

121 lines
4 KiB
C++
Executable file

#pragma once
#include "CoreMinimal.h"
#include "UObject/Object.h"
#include "EMissionStructure.h"
#include "GMMutatorItem.h"
#include "ObjectiveMissionIcon.h"
#include "Templates/SubclassOf.h"
#include "GeneratedMission.generated.h"
class AFSDPlayerController;
class AProceduralSetup;
class UBiome;
class UGeneratedMission;
class ULevelSequence;
class UMissionComplexity;
class UMissionDNA;
class UMissionDuration;
class UMissionMutator;
class UMissionTemplate;
class UMissionWarning;
class UMutator;
class UObjective;
UCLASS(Blueprintable)
class FSD_API UGeneratedMission : public UObject {
GENERATED_BODY()
public:
protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
UBiome* Biome;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
int32 Seed;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
int32 GlobalSeed;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
UMissionTemplate* Template;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
FText MissionName;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TSubclassOf<UObjective> PrimaryObjective;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TArray<TSubclassOf<UObjective>> SecondaryObjectives;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TMap<TSubclassOf<UMutator>, FGMMutatorItem> Mutators;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TArray<UMissionWarning*> MissionWarnings;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
UMissionMutator* MissionMutator;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
UMissionComplexity* ComplexityLimit;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
UMissionDuration* DurationLimit;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TSubclassOf<UMissionDNA> MissionDNA;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
EMissionStructure MissionStructure;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
bool IsInSeasonEventZone;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool CanHaveMutators;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TSoftObjectPtr<ULevelSequence> LoaderLevelSequence;
public:
UGeneratedMission();
protected:
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void Recieve_SetupPLS(AProceduralSetup* pls);
public:
UFUNCTION(BlueprintCallable, BlueprintPure)
bool IsSingleMission() const;
UFUNCTION(BlueprintCallable, BlueprintPure)
bool IsPlagueMission() const;
UFUNCTION(BlueprintCallable, BlueprintPure)
bool IsLocked(AFSDPlayerController* Player) const;
UFUNCTION(BlueprintCallable, BlueprintPure)
bool IsDeepDive() const;
UFUNCTION(BlueprintCallable, BlueprintPure)
FObjectiveMissionIcon GetSecondaryObjectiveIcon() const;
UFUNCTION(BlueprintCallable, BlueprintPure)
TSubclassOf<AProceduralSetup> GetPLS() const;
UFUNCTION(BlueprintCallable, BlueprintPure)
TArray<UMutator*> GetMutators(TSubclassOf<UMutator> mutatorClass) const;
UFUNCTION(BlueprintCallable, BlueprintPure)
float GetMissionScale() const;
UFUNCTION(BlueprintCallable, BlueprintPure)
UMissionDNA* GetMissionDNA() const;
UFUNCTION(BlueprintCallable)
AProceduralSetup* CreatePLS(int32 NewSeed);
UFUNCTION(BlueprintCallable, BlueprintPure)
bool AreMissionsEqual(UGeneratedMission* Other) const;
};