// 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 Weapon; UPROPERTY() TObjectPtr AbilitySystemComponent; UPROPERTY() TObjectPtr AttributeSet; virtual void InitAbilityActorInfo(); UPROPERTY(BlueprintReadOnly, EditAnywhere, Category="Attributes") TSubclassOf DefaultPrimaryAttributes; UPROPERTY(BlueprintReadOnly, EditAnywhere, Category="Attributes") TSubclassOf DefaultSecondaryAttributes; UPROPERTY(BlueprintReadOnly, EditAnywhere, Category="Attributes") TSubclassOf DefaultVitalAttributes; void ApplyEffectToSelf(TSubclassOf GameplayEffectClass, float Level) const; void InitializeDefaultAttributes() const; void AddCharacterAbilities(); private: UPROPERTY(EditAnywhere, Category="Abilities") TArray> StartupAbilities; };