diff --git a/Source/Nakatomi/EnemyCharacter.cpp b/Source/Nakatomi/EnemyCharacter.cpp index 2fc41ef..62cc18d 100644 --- a/Source/Nakatomi/EnemyCharacter.cpp +++ b/Source/Nakatomi/EnemyCharacter.cpp @@ -144,6 +144,18 @@ void AEnemyCharacter::ProcessHits(TArray hits, FVector dir) healthComponent->TakeDamage(Hit.GetActor(), CurrentWeapon->GetWeaponProperties()->WeaponDamage, nullptr, GetController(), this); } + + auto character = Cast(Hit.GetActor()); + + if (character && character->GetOnDamagedHitNiagaraSystem()) + { + UNiagaraFunctionLibrary::SpawnSystemAtLocation(this, + character->GetOnDamagedHitNiagaraSystem(), + Hit.ImpactPoint, + dir.MirrorByVector(Hit.ImpactNormal).Rotation(), + FVector(1), + true); + } } auto staticMeshComponent = Hit.GetActor()->GetComponentByClass(); diff --git a/Source/Nakatomi/PlayerCharacter.cpp b/Source/Nakatomi/PlayerCharacter.cpp index 47e389c..5f8d084 100644 --- a/Source/Nakatomi/PlayerCharacter.cpp +++ b/Source/Nakatomi/PlayerCharacter.cpp @@ -406,6 +406,18 @@ void APlayerCharacter::ProcessHits(TArray hits, FVector dir) { healthComponent->TakeDamage(Hit.GetActor(), CurrentWeapon->GetWeaponProperties()->WeaponDamage, nullptr, GetController(), this); + + auto character = Cast(Hit.GetActor()); + + if (character && character->GetOnDamagedHitNiagaraSystem()) + { + UNiagaraFunctionLibrary::SpawnSystemAtLocation(this, + character->GetOnDamagedHitNiagaraSystem(), + Hit.ImpactPoint, + dir.MirrorByVector(Hit.ImpactNormal).Rotation(), + FVector(1), + true); + } if (!healthComponent->GetIsDead()) {