// REALMS IN RUIN. Copyright (c) 2025 Trevor Edwards. All rights reserved. #pragma once #include "CoreMinimal.h" #include "GameFramework/PlayerState.h" #include "AbilitySystemInterface.h" #include "RIRPlayerState.generated.h" class UAbilitySystemComponent; class UAttributeSet; class UGameplayEffect; class UGameplayAbility; UCLASS() class REALMSINRUIN_API ARIRPlayerState : public APlayerState, public IAbilitySystemInterface { GENERATED_BODY() public: ARIRPlayerState(); // Implementation of IAbilitySystemInterface virtual UAbilitySystemComponent* GetAbilitySystemComponent() const override; // Custom getter for the attribute set UAttributeSet* GetAttributeSet() const { return AttributeSet; } // Default attribute effect to apply on spawn UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Attributes") TSubclassOf DefaultAttributesGameplayEffect; protected: UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Abilities") TObjectPtr AbilitySystemComponent; UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Attributes") TObjectPtr AttributeSet; };