53. Gameplay Effect Delegates
This commit is contained in:
parent
901ef9460b
commit
72f8b9ca58
@ -1 +1,20 @@
|
|||||||
#include "GasaAbilitySystemComponent.h"
|
#include "GasaAbilitySystemComponent.h"
|
||||||
|
|
||||||
|
#include "Engine/Engine.h"
|
||||||
|
|
||||||
|
void UGasaAbilitySystemComp::OnAbilityActorInfoSet()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void UGasaAbilitySystemComp::EffectApplied(UAbilitySystemComponent* AbilitySystem, FGameplayEffectSpec const& Spec,
|
||||||
|
FActiveGameplayEffectHandle ActiveEffect)
|
||||||
|
{
|
||||||
|
GEngine->AddOnScreenDebugMessage(1, 8.f, FColor::Yellow, FString("Effect applied"));
|
||||||
|
}
|
||||||
|
|
||||||
|
void UGasaAbilitySystemComp::InitAbilityActorInfo(AActor* InOwnerActor, AActor* InAvatarActor)
|
||||||
|
{
|
||||||
|
Super::InitAbilityActorInfo(InOwnerActor, InAvatarActor);
|
||||||
|
|
||||||
|
OnGameplayEffectAppliedDelegateToSelf.AddUObject(this, & ThisClass::EffectApplied);
|
||||||
|
}
|
||||||
|
@ -6,10 +6,17 @@
|
|||||||
|
|
||||||
#include "GasaAbilitySystemComponent.generated.h"
|
#include "GasaAbilitySystemComponent.generated.h"
|
||||||
|
|
||||||
|
|
||||||
UCLASS(BlueprintType)
|
UCLASS(BlueprintType)
|
||||||
class GASA_API UGasaAbilitySystemComp : public UAbilitySystemComponent
|
class GASA_API UGasaAbilitySystemComp : public UAbilitySystemComponent
|
||||||
{
|
{
|
||||||
GENERATED_BODY()
|
GENERATED_BODY()
|
||||||
public:
|
public:
|
||||||
|
// TODO(Ed): If hes only using this to bind the EffectApplied to a delegate, then just use the init override instead.
|
||||||
|
void OnAbilityActorInfoSet();
|
||||||
|
|
||||||
|
void EffectApplied(UAbilitySystemComponent* AbilitySystem, FGameplayEffectSpec const& Spec, FActiveGameplayEffectHandle ActiveEffect);
|
||||||
|
|
||||||
|
#pragma region AbilitySystemComponent
|
||||||
|
void InitAbilityActorInfo(AActor* InOwnerActor, AActor* InAvatarActor) override;
|
||||||
|
#pragma endregion AbilitySystemComponent
|
||||||
};
|
};
|
||||||
|
@ -155,12 +155,11 @@ void AGasaCharacter::PossessedBy(AController* NewController)
|
|||||||
if (GetMesh() && IsReplicatingMovement() && (GetRemoteRole() == ROLE_AutonomousProxy && GetNetConnection() != nullptr))
|
if (GetMesh() && IsReplicatingMovement() && (GetRemoteRole() == ROLE_AutonomousProxy && GetNetConnection() != nullptr))
|
||||||
GetMesh()->bOnlyAllowAutonomousTickPose = true;
|
GetMesh()->bOnlyAllowAutonomousTickPose = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
if (bAutoAbilitySystem)
|
if (bAutoAbilitySystem)
|
||||||
{
|
|
||||||
// TODO(Ed): Do we need to do this for enemies?
|
|
||||||
AbilitySystem->InitAbilityActorInfo(this, this);
|
AbilitySystem->InitAbilityActorInfo(this, this);
|
||||||
}
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void AGasaCharacter::SetPlayerDefaults()
|
void AGasaCharacter::SetPlayerDefaults()
|
||||||
@ -179,11 +178,10 @@ void AGasaCharacter::BeginPlay()
|
|||||||
{
|
{
|
||||||
Super::BeginPlay();
|
Super::BeginPlay();
|
||||||
|
|
||||||
|
// TODO(Ed): Find out if this is the best spot todo this
|
||||||
|
// There is also OnPossessed, PostInitializeComponents, etc...
|
||||||
if (bAutoAbilitySystem)
|
if (bAutoAbilitySystem)
|
||||||
{
|
|
||||||
// TODO(Ed): Do we need to do this for enemies?
|
|
||||||
AbilitySystem->InitAbilityActorInfo(this, this);
|
AbilitySystem->InitAbilityActorInfo(this, this);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AGasaCharacter::Tick(float DeltaSeconds)
|
void AGasaCharacter::Tick(float DeltaSeconds)
|
||||||
|
Loading…
Reference in New Issue
Block a user