From d53bf1bef18c36231c7d4ae5bdc8b9e6c3406182 Mon Sep 17 00:00:00 2001
From: Ghazi Akmal Fauzan <13521058@std.stei.itb.ac.id>
Date: Sat, 11 May 2024 15:31:06 +0700
Subject: [PATCH] fix: projectile error log

---
 Assets/Scripts/Weapon/ProjectileController.cs | 32 ++++++++++++-------
 1 file changed, 20 insertions(+), 12 deletions(-)

diff --git a/Assets/Scripts/Weapon/ProjectileController.cs b/Assets/Scripts/Weapon/ProjectileController.cs
index 673f55c..f0836e3 100644
--- a/Assets/Scripts/Weapon/ProjectileController.cs
+++ b/Assets/Scripts/Weapon/ProjectileController.cs
@@ -35,8 +35,9 @@ public class ProjectileController : MonoBehaviour
 
     private void OnTriggerEnter(Collider other)
     {
-        if(ownerTag == "Player" && other.CompareTag("Enemy")) {
-            if(isShotgunBullet) damage = damage * (2 - 0.005f*(traveledDistance * traveledDistance)); // 2-0.005x^2
+        if (ownerTag == "Player" && other.CompareTag("Enemy"))
+        {
+            if (isShotgunBullet) damage = damage * (2 - 0.005f * (traveledDistance * traveledDistance)); // 2-0.005x^2
             if (damage < 0) damage = 0;
             Debug.Log("Damage dealt: " + damage);
 
@@ -44,19 +45,25 @@ public class ProjectileController : MonoBehaviour
             {
                 enemyHealth.TakeDamage((int)damage);
             }
-            else if (other.TryGetComponent<PetHealth>(out var petHealth)){
+            else if (other.TryGetComponent<PetHealth>(out var petHealth))
+            {
                 petHealth.TakeDamage((int)damage);
             }
 
-            rb.velocity = Vector3.zero;
-            rb.angularVelocity = Vector3.zero;
+            if (rb != null)
+            {
+                rb.velocity = Vector3.zero;
+                rb.angularVelocity = Vector3.zero;
+            }
             transform.localScale = Vector3.zero;
-            
+
             Destroy(this.gameObject, bulletHit.length);
             StatisticsManager.Instance.ShotHit();
         }
-        else if(ownerTag == "Enemy"){
-            if(other.CompareTag("Player")) { 
+        else if (ownerTag == "Enemy")
+        {
+            if (other.CompareTag("Player"))
+            {
 
                 other.GetComponent<PlayerHealth>().TakeDamage((int)damage);
                 // audioSource.Stop();
@@ -66,10 +73,11 @@ public class ProjectileController : MonoBehaviour
                 rb.velocity = Vector3.zero;
                 rb.angularVelocity = Vector3.zero;
                 transform.localScale = Vector3.zero;
-                
+
                 Destroy(this.gameObject, bulletHit.length);
             }
-            if(other.CompareTag("Pet")) {
+            if (other.CompareTag("Pet"))
+            {
                 other.GetComponent<PetHealth>().TakeDamage((int)damage);
                 // audioSource.Stop();
                 // audioSource.PlayOneShot(bulletHit);
@@ -78,10 +86,10 @@ public class ProjectileController : MonoBehaviour
                 rb.velocity = Vector3.zero;
                 rb.angularVelocity = Vector3.zero;
                 transform.localScale = Vector3.zero;
-                
+
                 Destroy(this.gameObject, bulletHit.length);
             }
         }
-        
+
     }
 }
-- 
GitLab