Clean up GarlicFireWeaponAction

Closes #15
This commit is contained in:
baz 2025-02-08 15:21:08 +00:00
parent 78355d6bf4
commit bac9f7c5e7

View File

@ -65,27 +65,28 @@ void AGarlicWeapon::GarlicFireWeaponAction(FOverlappedEnemy EnemyCharacter)
{ {
UHealthComponent* EnemyHealthComponent = EnemyCharacter.OverlappedEnemyCharacter->GetHealthComponent(); UHealthComponent* EnemyHealthComponent = EnemyCharacter.OverlappedEnemyCharacter->GetHealthComponent();
if (EnemyHealthComponent == nullptr)
{
return;
}
AController* ownerController = nullptr;
if (AVampireCharacter* character = Cast<AVampireCharacter>(GetOwner()))
{
ownerController = character->GetController();
}
EnemyHealthComponent->TakeDamage(EnemyCharacter.OverlappedEnemyCharacter, Damage, nullptr,
ownerController, this);
if (!EnemyHealthComponent->GetIsDead()) if (!EnemyHealthComponent->GetIsDead())
{ {
if (!EnemyHealthComponent->GetIsDead()) FVector Direction = EnemyCharacter.OverlappedEnemyCharacter->GetActorLocation() - this->GetActorLocation();
{ Direction.Normalize();
FVector Direction = EnemyCharacter.OverlappedEnemyCharacter->GetActorLocation() - this-> float distance = SphereComponent->GetScaledSphereRadius();
GetActorLocation(); Direction *= distance;
Direction.Normalize(); EnemyCharacter.OverlappedEnemyCharacter->SetActorLocation(
float distance = SphereComponent->GetScaledSphereRadius(); EnemyCharacter.OverlappedEnemyCharacter->GetActorLocation() + Direction);
Direction *= distance;
EnemyCharacter.OverlappedEnemyCharacter->SetActorLocation(
EnemyCharacter.OverlappedEnemyCharacter->GetActorLocation() + Direction);
AController* ownerController = nullptr;
if (AVampireCharacter* character = Cast<AVampireCharacter>(GetOwner()))
{
ownerController = character->GetController();
}
EnemyHealthComponent->TakeDamage(EnemyCharacter.OverlappedEnemyCharacter, Damage, nullptr,
ownerController, this);
}
} }
} }