Files
Aura/Source/Aura/Private/AbilitySystem/Abilities/AuraGameplayAbility.cpp
2024-03-20 16:21:19 +01:00

28 lines
850 B
C++

// Fill out your copyright notice in the Description page of Project Settings.
#include "AbilitySystem/Abilities/AuraGameplayAbility.h"
#include "Interaction/CombatInterface.h"
FTransform UAuraGameplayAbility::MakeProjectileSpawnTransform(FGameplayTag SocketTagName, const FVector& TargetLocation, float Pitch) const
{
FTransform SpawnTransform;
AActor* Avatar = GetAvatarActorFromActorInfo();
if (!IsValid(Avatar))
return SpawnTransform;
if (Avatar->Implements<UCombatInterface>())
SpawnTransform.SetLocation(ICombatInterface::Execute_GetCombatSocketLocation(Avatar, SocketTagName));
else
SpawnTransform.SetLocation(Avatar->GetActorLocation());
FRotator Rotation = (TargetLocation - SpawnTransform.GetLocation()).Rotation();
Rotation.Pitch = Pitch;
SpawnTransform.SetRotation(Rotation.Quaternion());
return SpawnTransform;
}