Files
Aura-TopDownRPG-GAS/Source/Aura/Public/Character/AuraCharacterBase.h
2025-10-17 16:43:49 -04:00

61 lines
1.6 KiB
C++

// Copyright Echo Devgroup
#pragma once
#include "CoreMinimal.h"
#include "AbilitySystemComponent.h"
#include "AbilitySystemInterface.h"
#include "GameFramework/Character.h"
#include "Interact/CombatInterface.h"
#include "AuraCharacterBase.generated.h"
UCLASS(Abstract)
class AURA_API AAuraCharacterBase : public ACharacter, public IAbilitySystemInterface, public ICombatInterface
{
GENERATED_BODY()
public:
AAuraCharacterBase();
virtual UAbilitySystemComponent* GetAbilitySystemComponent() const override;
UAttributeSet* GetAttributeSet() const { return AttributeSet; }
protected:
virtual void BeginPlay() override;
//Weapon
UPROPERTY(EditAnywhere, Category = Combat)
TObjectPtr<USkeletalMeshComponent> Weapon;
UPROPERTY(EditAnywhere, Category = Combat)
FName WeaponTipSocketName;
virtual FVector GetCombatSocketLocation() override;
UPROPERTY()
TObjectPtr<UAbilitySystemComponent> AbilitySystemComponent;
UPROPERTY()
TObjectPtr<UAttributeSet> AttributeSet;
virtual void InitAbilityActorInfo();
UPROPERTY(BlueprintReadOnly, EditAnywhere, Category="Attributes")
TSubclassOf<UGameplayEffect> DefaultPrimaryAttributes;
UPROPERTY(BlueprintReadOnly, EditAnywhere, Category="Attributes")
TSubclassOf<UGameplayEffect> DefaultSecondaryAttributes;
UPROPERTY(BlueprintReadOnly, EditAnywhere, Category="Attributes")
TSubclassOf<UGameplayEffect> DefaultVitalAttributes;
void ApplyEffectToSelf(TSubclassOf<UGameplayEffect> GameplayEffectClass, float Level) const;
void InitializeDefaultAttributes() const;
void AddCharacterAbilities();
private:
UPROPERTY(EditAnywhere, Category="Abilities")
TArray<TSubclassOf<UGameplayAbility>> StartupAbilities;
};