#pragma once #include "CoreMinimal.h" #include "Engine/DataAsset.h" #include "CharacterClassInfo.generated.h" class UGameplayEffect; UENUM(BlueprintType) enum class ECharacterClass : uint8 { Elementalist, Warrior, Ranger }; USTRUCT(BlueprintType) struct FCharacterClassDefaultInfo { GENERATED_BODY() UPROPERTY(EditDefaultsOnly, Category = "Class Defaults") TSubclassOf PrimaryAttributes; }; /** * */ UCLASS() class AURA_API UCharacterClassInfo : public UDataAsset { GENERATED_BODY() public: UPROPERTY(EditDefaultsOnly, Category = "Character Class Defaults") TMap CharacterClassInformation; UPROPERTY(EditDefaultsOnly, Category = "Common Class Defaults") TSubclassOf SecondaryAttributes; UPROPERTY(EditDefaultsOnly, Category = "Common Class Defaults") TSubclassOf VitalAttributes; UPROPERTY(EditDefaultsOnly, Category = "Common Class Defaults") TArray> CommonAbilities; FCharacterClassDefaultInfo GetClassDefaultInfo(ECharacterClass CharacterClass); };