#pragma once #include "CoreMinimal.h" #include "UObject/Object.h" #include "GameplayTagContainer.h" #include "MissionDNA.generated.h" class UMissionComplexity; class UMissionDuration; UCLASS(Abstract, Blueprintable) class FSD_API UMissionDNA : public UObject { GENERATED_BODY() public: UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float MissionScale; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float Weight; protected: UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UMissionComplexity* Complexity; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UMissionDuration* Duration; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) TArray RoomQueries; public: UMissionDNA(); UFUNCTION(BlueprintCallable, BlueprintPure) float GetDurationHazardBonus() const; UFUNCTION(BlueprintCallable, BlueprintPure) float GetComplexityHazardBonus() const; };