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,17 +65,10 @@ void AGarlicWeapon::GarlicFireWeaponAction(FOverlappedEnemy EnemyCharacter)
{
UHealthComponent* EnemyHealthComponent = EnemyCharacter.OverlappedEnemyCharacter->GetHealthComponent();
if (!EnemyHealthComponent->GetIsDead())
if (EnemyHealthComponent == nullptr)
{
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);
return;
}
AController* ownerController = nullptr;
if (AVampireCharacter* character = Cast<AVampireCharacter>(GetOwner()))
@ -85,7 +78,15 @@ void AGarlicWeapon::GarlicFireWeaponAction(FOverlappedEnemy EnemyCharacter)
EnemyHealthComponent->TakeDamage(EnemyCharacter.OverlappedEnemyCharacter, Damage, nullptr,
ownerController, this);
}
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);
}
}