79 lines
2.9 KiB
C++
79 lines
2.9 KiB
C++
// Fill out your copyright notice in the Description page of Project Settings.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Engine/DeveloperSettings.h"
|
|
#include "GameplayTagContainer.h"
|
|
#include "Data/GameplayStatEffect.h"
|
|
#include "Templates/SubclassOf.h"
|
|
#include "UObject/SoftObjectPtr.h"
|
|
|
|
#include "EleriGameSettings.generated.h"
|
|
|
|
class ARemovableStaticMeshActor;
|
|
class UDataTable;
|
|
class UNpcDataAsset;
|
|
class UNpcScheduleAsset;
|
|
class UItemDataAsset;
|
|
class UGameplayEffect;
|
|
|
|
/**
|
|
*
|
|
*/
|
|
UCLASS(Config = Game, defaultconfig, meta = (DisplayName = "Eleri Game Settings"))
|
|
class PROJECTELERI_API UEleriGameSettings : public UDeveloperSettings
|
|
{
|
|
GENERATED_BODY()
|
|
public:
|
|
|
|
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "Items", meta = (ForceInlineRow, Categories = "Items"))
|
|
TMap<FGameplayTag, FPrimaryAssetId> SpecialItemsMap;
|
|
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "Items")
|
|
TSubclassOf<ARemovableStaticMeshActor> RemovableStaticMeshClass;
|
|
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "Items")
|
|
TSubclassOf<AActor> ItemSeedCarouselClass;
|
|
|
|
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "Camera")
|
|
TMap<FGameplayTag, FVector> CameraZoomLevels;
|
|
|
|
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "Ability System|Effects")
|
|
TSubclassOf<UGameplayStatEffect> ExpIncreaseEffectClass;
|
|
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "Ability System|Effects")
|
|
TSubclassOf<UGameplayStatEffect> MovementDisableEffectClass;
|
|
|
|
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "Ability System|Professions")
|
|
TArray<float> ProfessionExpArray;
|
|
|
|
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "Ai")
|
|
TArray<TSoftObjectPtr<UNpcDataAsset>> NpcDataAssets;
|
|
|
|
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "Ability System|Settings")
|
|
TSoftObjectPtr<UDataTable> GlobalSettingsDataSheet;
|
|
|
|
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "Materials")
|
|
TSoftObjectPtr<UMaterialInterface> SpriteShadowMaterial;
|
|
|
|
public:
|
|
|
|
UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Eleri Game Settingss")
|
|
static bool GetCameraZoom(FGameplayTag Tag, FVector& OutBoomLength);
|
|
|
|
UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Items")
|
|
static const UEleriGameSettings* GetEleriGameSettings() {
|
|
return GetDefault<UEleriGameSettings>();
|
|
}
|
|
|
|
UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Items")
|
|
static FPrimaryAssetId GetSpecialItemId(FGameplayTag Tag);
|
|
UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Items")
|
|
static UItemDataAsset* GetSpecialItem(UObject* WorldContext, FGameplayTag Tag);
|
|
|
|
UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Ability System|Professions")
|
|
static int32 GetProfessionLevelForExp(float Exp);
|
|
|
|
UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Eleri Game Settingss", meta = (AutoCreateRefTerm = "Key"))
|
|
static float GetGlobalKeyValue(const FName& Key);
|
|
|
|
};
|