// REALMS IN RUIN. Copyright (c) 2025 Trevor Edwards. All rights reserved. #pragma once #include "CoreMinimal.h" #include "AbilitySystemInterface.h" #include "GameFramework/Character.h" #include "RIRBaseCharacter.generated.h" // Forward declarations class URIRAbilitySystemComponent; // Custom AbilitySystemComponent class URIRAttributeSet; // Custom AttributeSet class UAbilitySystemComponent; class UAttributeSet; class UGameplayEffect; class UGameplayAbility; // Base Character class using GAS for RIR Project UCLASS(ABSTRACT) class REALMSINRUIN_API ARIRBaseCharacter : public ACharacter, public IAbilitySystemInterface { GENERATED_BODY() public: // Sets default values for this character's properties ARIRBaseCharacter(); // Implementation of IAbilitySystemInterface virtual UAbilitySystemComponent* GetAbilitySystemComponent() const override; // Custom getter for the attribute set UAttributeSet* GetAttributeSet() const { return AttributeSet; } protected: // Called when the game starts or when spawned virtual void BeginPlay() override; UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Abilities") TObjectPtr AbilitySystemComponent; UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Abilities") TObjectPtr AttributeSet; };