From 3ec76f0841edcf5bbb19860bdf6a43244545c227 Mon Sep 17 00:00:00 2001 From: Jonathan Rampersad Date: Tue, 19 Nov 2024 18:41:15 -0400 Subject: [PATCH] Init Ability Actor Info --- .../Aura/Private/Character/AuraCharacter.cpp | 27 +++++++++++++++++++ Source/Aura/Private/Character/AuraEnemy.cpp | 6 +++++ Source/Aura/Public/Character/AuraCharacter.h | 5 ++++ Source/Aura/Public/Character/AuraEnemy.h | 5 ++++ 4 files changed, 43 insertions(+) diff --git a/Source/Aura/Private/Character/AuraCharacter.cpp b/Source/Aura/Private/Character/AuraCharacter.cpp index f4f0933..407b737 100644 --- a/Source/Aura/Private/Character/AuraCharacter.cpp +++ b/Source/Aura/Private/Character/AuraCharacter.cpp @@ -3,9 +3,11 @@ #include "Character/AuraCharacter.h" +#include "AbilitySystemComponent.h" #include "Camera/CameraComponent.h" #include "GameFramework/CharacterMovementComponent.h" #include "GameFramework/SpringArmComponent.h" +#include "Player/AuraPlayerState.h" AAuraCharacter::AAuraCharacter() { @@ -28,3 +30,28 @@ AAuraCharacter::AAuraCharacter() Camera->SetupAttachment(CameraBoom); } +void AAuraCharacter::PossessedBy(AController* NewController) +{ + Super::PossessedBy(NewController); + + // Init ability actor info for the Server + InitAbilityActorInfo(); +} + +void AAuraCharacter::OnRep_PlayerState() +{ + Super::OnRep_PlayerState(); + + // Init ability actor info for the Client + InitAbilityActorInfo(); +} + +void AAuraCharacter::InitAbilityActorInfo() +{ + AAuraPlayerState* AuraPlayerState = GetPlayerState(); + check(AuraPlayerState); + AuraPlayerState->GetAbilitySystemComponent()->InitAbilityActorInfo(AuraPlayerState, this); + AbilitySystemComponent = AuraPlayerState->GetAbilitySystemComponent(); + AttributeSet = AuraPlayerState->GetAttributeSet(); +} + diff --git a/Source/Aura/Private/Character/AuraEnemy.cpp b/Source/Aura/Private/Character/AuraEnemy.cpp index 4f14413..91efde2 100644 --- a/Source/Aura/Private/Character/AuraEnemy.cpp +++ b/Source/Aura/Private/Character/AuraEnemy.cpp @@ -35,3 +35,9 @@ void AAuraEnemy::UnHighlightActor() GetMesh()->SetRenderCustomDepth(false); Weapon->SetRenderCustomDepth(false); } + +void AAuraEnemy::BeginPlay() +{ + Super::BeginPlay(); + AbilitySystemComponent->InitAbilityActorInfo(this, this); +} diff --git a/Source/Aura/Public/Character/AuraCharacter.h b/Source/Aura/Public/Character/AuraCharacter.h index 31d108c..47a21d1 100644 --- a/Source/Aura/Public/Character/AuraCharacter.h +++ b/Source/Aura/Public/Character/AuraCharacter.h @@ -26,4 +26,9 @@ private: public: AAuraCharacter(); + virtual void PossessedBy(AController* NewController) override; + virtual void OnRep_PlayerState() override; + +private: + void InitAbilityActorInfo(); }; diff --git a/Source/Aura/Public/Character/AuraEnemy.h b/Source/Aura/Public/Character/AuraEnemy.h index 15a987b..91dc452 100644 --- a/Source/Aura/Public/Character/AuraEnemy.h +++ b/Source/Aura/Public/Character/AuraEnemy.h @@ -17,6 +17,11 @@ class AURA_API AAuraEnemy : public AAuraCharacterBase, public IEnemyInterface public: AAuraEnemy(); + /** Enemy Interface */ virtual void HighlightActor() override; virtual void UnHighlightActor() override; + /** End Enemy Interface */ + +protected: + virtual void BeginPlay() override; };