2025-11-02 06:40:35 -05:00
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "CoreMinimal.h"
|
|
|
|
|
#include "Engine/DataAsset.h"
|
|
|
|
|
#include "CharacterClassInfo.generated.h"
|
|
|
|
|
|
|
|
|
|
|
2025-11-09 16:27:22 -05:00
|
|
|
class UGameplayAbility;
|
2025-11-02 06:40:35 -05:00
|
|
|
class UGameplayEffect;
|
|
|
|
|
|
|
|
|
|
UENUM(BlueprintType)
|
|
|
|
|
enum class ECharacterClass : uint8
|
|
|
|
|
{
|
|
|
|
|
Elementalist,
|
|
|
|
|
Warrior,
|
|
|
|
|
Ranger
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
USTRUCT(BlueprintType)
|
|
|
|
|
struct FCharacterClassDefaultInfo
|
|
|
|
|
{
|
|
|
|
|
GENERATED_BODY()
|
|
|
|
|
|
|
|
|
|
UPROPERTY(EditDefaultsOnly, Category = "Class Defaults")
|
|
|
|
|
TSubclassOf<UGameplayEffect> PrimaryAttributes;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
UCLASS()
|
|
|
|
|
class AURA_API UCharacterClassInfo : public UDataAsset
|
|
|
|
|
{
|
|
|
|
|
GENERATED_BODY()
|
|
|
|
|
public:
|
|
|
|
|
UPROPERTY(EditDefaultsOnly, Category = "Character Class Defaults")
|
|
|
|
|
TMap<ECharacterClass, FCharacterClassDefaultInfo> CharacterClassInformation;
|
|
|
|
|
|
|
|
|
|
UPROPERTY(EditDefaultsOnly, Category = "Common Class Defaults")
|
|
|
|
|
TSubclassOf<UGameplayEffect> SecondaryAttributes;
|
|
|
|
|
|
|
|
|
|
UPROPERTY(EditDefaultsOnly, Category = "Common Class Defaults")
|
|
|
|
|
TSubclassOf<UGameplayEffect> VitalAttributes;
|
|
|
|
|
|
|
|
|
|
UPROPERTY(EditDefaultsOnly, Category = "Common Class Defaults")
|
2025-11-09 16:27:22 -05:00
|
|
|
TArray<TSubclassOf<UGameplayAbility>> CommonAbilities;
|
|
|
|
|
|
|
|
|
|
UPROPERTY(EditDefaultsOnly, Category = "Common Class Defaults|Damage")
|
|
|
|
|
TObjectPtr<UCurveTable> DamageCalculationCoefficients;
|
2025-11-02 06:40:35 -05:00
|
|
|
|
|
|
|
|
FCharacterClassDefaultInfo GetClassDefaultInfo(ECharacterClass CharacterClass);
|
|
|
|
|
};
|