53. Gameplay Effect Delegates
This commit is contained in:
		@@ -1 +1,20 @@
 | 
			
		||||
#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"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
UCLASS(BlueprintType)
 | 
			
		||||
class GASA_API UGasaAbilitySystemComp : public UAbilitySystemComponent
 | 
			
		||||
{
 | 
			
		||||
	GENERATED_BODY()
 | 
			
		||||
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
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -156,11 +156,10 @@ void AGasaCharacter::PossessedBy(AController* NewController)
 | 
			
		||||
			GetMesh()->bOnlyAllowAutonomousTickPose = true;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#if 0
 | 
			
		||||
	if (bAutoAbilitySystem)
 | 
			
		||||
	{
 | 
			
		||||
		// TODO(Ed): Do we need to do this for enemies?
 | 
			
		||||
		AbilitySystem->InitAbilityActorInfo(this, this);
 | 
			
		||||
	}
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void AGasaCharacter::SetPlayerDefaults()
 | 
			
		||||
@@ -179,11 +178,10 @@ void AGasaCharacter::BeginPlay()
 | 
			
		||||
{
 | 
			
		||||
	Super::BeginPlay();
 | 
			
		||||
 | 
			
		||||
	// TODO(Ed): Find out if this is the best spot todo this
 | 
			
		||||
	// There is also OnPossessed, PostInitializeComponents, etc...
 | 
			
		||||
	if (bAutoAbilitySystem)
 | 
			
		||||
	{
 | 
			
		||||
		// TODO(Ed): Do we need to do this for enemies?
 | 
			
		||||
		AbilitySystem->InitAbilityActorInfo(this, this);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void AGasaCharacter::Tick(float DeltaSeconds)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user