From bac9f7c5e75ce852f9e2ebe21d2d40cab6f44e8c Mon Sep 17 00:00:00 2001 From: baz Date: Sat, 8 Feb 2025 15:21:08 +0000 Subject: [PATCH] Clean up GarlicFireWeaponAction Closes #15 --- Source/vampires/Weapons/GarlicWeapon.cpp | 39 ++++++++++++------------ 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/Source/vampires/Weapons/GarlicWeapon.cpp b/Source/vampires/Weapons/GarlicWeapon.cpp index 97c6c3f..137627c 100644 --- a/Source/vampires/Weapons/GarlicWeapon.cpp +++ b/Source/vampires/Weapons/GarlicWeapon.cpp @@ -65,27 +65,28 @@ void AGarlicWeapon::GarlicFireWeaponAction(FOverlappedEnemy EnemyCharacter) { UHealthComponent* EnemyHealthComponent = EnemyCharacter.OverlappedEnemyCharacter->GetHealthComponent(); + if (EnemyHealthComponent == nullptr) + { + return; + } + + AController* ownerController = nullptr; + if (AVampireCharacter* character = Cast(GetOwner())) + { + ownerController = character->GetController(); + } + + EnemyHealthComponent->TakeDamage(EnemyCharacter.OverlappedEnemyCharacter, Damage, nullptr, + ownerController, this); + if (!EnemyHealthComponent->GetIsDead()) { - if (!EnemyHealthComponent->GetIsDead()) - { - FVector Direction = EnemyCharacter.OverlappedEnemyCharacter->GetActorLocation() - this-> - GetActorLocation(); - Direction.Normalize(); - float distance = SphereComponent->GetScaledSphereRadius(); - Direction *= distance; - EnemyCharacter.OverlappedEnemyCharacter->SetActorLocation( - EnemyCharacter.OverlappedEnemyCharacter->GetActorLocation() + Direction); - - AController* ownerController = nullptr; - if (AVampireCharacter* character = Cast(GetOwner())) - { - ownerController = character->GetController(); - } - - EnemyHealthComponent->TakeDamage(EnemyCharacter.OverlappedEnemyCharacter, Damage, nullptr, - ownerController, this); - } + FVector Direction = EnemyCharacter.OverlappedEnemyCharacter->GetActorLocation() - this->GetActorLocation(); + Direction.Normalize(); + float distance = SphereComponent->GetScaledSphereRadius(); + Direction *= distance; + EnemyCharacter.OverlappedEnemyCharacter->SetActorLocation( + EnemyCharacter.OverlappedEnemyCharacter->GetActorLocation() + Direction); } }