#pragma once #include "CoreMinimal.h" #include "UObject/NoExportTypes.h" #include "Engine/DataAsset.h" #include "DeepPathFinderType.h" #include "GameplayTagContainer.h" #include "ECreatureSize.h" #include "EEnemyDescriptorCheatClass.h" #include "EEnemySignificance.h" #include "EVeteranScaling.h" #include "EnemyDebris.h" #include "SpawnRarityItem.h" #include "Templates/SubclassOf.h" #include "EnemyDescriptor.generated.h" class AActor; class APawn; class UBiome; class UCaveInfluencer; class UDebrisPositioning; class UEnemyDescriptor; class UEnemyID; class UMissionTemplate; UCLASS(Blueprintable) class FSD_API UEnemyDescriptor : public UDataAsset { GENERATED_BODY() public: protected: UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UEnemyID* EnemyID; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) TSoftClassPtr EnemyClass; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) EVeteranScaling VeteranScaling; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) TArray VeteranClasses; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) TMap> BiomeEnemyClassOverrides; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) TSoftClassPtr EliteEnemyClass; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) TSet BannedMissionTypes; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) EEnemySignificance EnemySignificance; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) FVector SpawnOffset; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) bool UsesSpawnEffects; UPROPERTY(EditAnywhere, meta=(AllowPrivateAccess=true)) ECreatureSize CreatureSize; UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true)) UDebrisPositioning* Positioning; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UCaveInfluencer* CaveInfluencer; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) TArray Debris; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float InfluencerRange; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) TSubclassOf PlacementCarver; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) DeepPathFinderType PathfinderType; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) FGameplayTagQuery PlacementRoomQuery; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float SpawnSpread; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) int32 IdealSpawnSize; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) bool CanBeUsedForConstantPressure; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) bool CanBeUsedInEncounters; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float DifficultyRating; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) int32 MinSpawnCount; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) int32 MaxSpawnCount; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float Rarity; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float SpawnAmountModifier; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) int32 RequiredMainCampaignProgress; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) bool UsesSpawnRarityModifiers; UPROPERTY(BlueprintReadWrite, EditAnywhere, EditFixedSize, meta=(AllowPrivateAccess=true)) TArray SpawnRarityModifiers; UPROPERTY(AssetRegistrySearchable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) EEnemyDescriptorCheatClass CheatClass; public: UEnemyDescriptor(); UFUNCTION(BlueprintCallable, BlueprintPure) TSubclassOf GetEnemyClass(UBiome* Biome, bool IsElite) const; UFUNCTION(BlueprintCallable) static TArray FindDescriptorsForCheatMenu(EEnemyDescriptorCheatClass NewCheatClass); UFUNCTION(BlueprintCallable) static TArray FindAllDescriptorsForCheatMenu(); };