From 1d680a05ea4162933a7a26c0ffa10c78d630d730 Mon Sep 17 00:00:00 2001
From: fernaldyl <90769501+fernaldy112@users.noreply.github.com>
Date: Sat, 15 Apr 2023 15:51:13 +0700
Subject: [PATCH] fix: player death and save weapon

---
 Assets/Scenes/Level_01.unity                  |  4 +++
 Assets/Scripts/Player/PlayerHealth.cs         | 34 +++++++++++++++----
 Assets/Scripts/Quest/QuestManager.cs          |  4 ---
 Assets/Scripts/Save/SaveData.cs               |  2 ++
 Assets/Scripts/Save/SaveHandler.cs            |  1 +
 Assets/Scripts/{Player => Weapons}/Rifle.cs   |  0
 .../Scripts/{Player => Weapons}/Rifle.cs.meta |  0
 Assets/Scripts/{Player => Weapons}/Shotgun.cs |  1 -
 .../{Player => Weapons}/Shotgun.cs.meta       |  0
 Assets/Scripts/{Player => Weapons}/Sword.cs   |  0
 .../Scripts/{Player => Weapons}/Sword.cs.meta |  0
 11 files changed, 35 insertions(+), 11 deletions(-)
 rename Assets/Scripts/{Player => Weapons}/Rifle.cs (100%)
 rename Assets/Scripts/{Player => Weapons}/Rifle.cs.meta (100%)
 rename Assets/Scripts/{Player => Weapons}/Shotgun.cs (98%)
 rename Assets/Scripts/{Player => Weapons}/Shotgun.cs.meta (100%)
 rename Assets/Scripts/{Player => Weapons}/Sword.cs (100%)
 rename Assets/Scripts/{Player => Weapons}/Sword.cs.meta (100%)

diff --git a/Assets/Scenes/Level_01.unity b/Assets/Scenes/Level_01.unity
index 3ef265c..5d9fcfe 100644
--- a/Assets/Scenes/Level_01.unity
+++ b/Assets/Scenes/Level_01.unity
@@ -8753,7 +8753,11 @@ MonoBehaviour:
   hurtClip: {fileID: 8300000, guid: 9922a12f34d0a084aab32de985459723, type: 3}
   flashSpeed: 5
   flashColour: {r: 1, g: 0, b: 0, a: 0.1}
+  weaponHandling: {fileID: 624092178}
+  rifle: {fileID: 1003343663}
+  shotgun: {fileID: 450320213}
   saveHandler: {fileID: 1939156179}
+  time: {fileID: 1987641286}
 --- !u!114 &624092173
 MonoBehaviour:
   m_ObjectHideFlags: 0
diff --git a/Assets/Scripts/Player/PlayerHealth.cs b/Assets/Scripts/Player/PlayerHealth.cs
index 44e33db..01cb56b 100644
--- a/Assets/Scripts/Player/PlayerHealth.cs
+++ b/Assets/Scripts/Player/PlayerHealth.cs
@@ -18,11 +18,17 @@ public class PlayerHealth : MonoBehaviour, Attackable
     Animator anim;
     AudioSource playerAudio;
     PlayerMovement playerMovement;
-    Rifle playerShooting;
+
+    public WeaponHandling weaponHandling;
+    public Rifle rifle;
+    public Shotgun shotgun;
+
     bool isDead;
     bool damaged;
     public SaveHandler saveHandler;
 
+    public GameObject time;
+
     void Awake()
     {
         //Mendapatkan refernce komponen
@@ -30,7 +36,6 @@ public class PlayerHealth : MonoBehaviour, Attackable
         playerAudio = GetComponent<AudioSource>();
         playerMovement = GetComponent<PlayerMovement>();
 
-        playerShooting = GetComponentInChildren<Rifle> ();
         currentHealth = startingHealth;
 
         if (PlayerPrefs.HasKey("fileName"))
@@ -111,7 +116,15 @@ public class PlayerHealth : MonoBehaviour, Attackable
     {
         isDead = true;
 
-        playerShooting.DisableEffects();
+        if (weaponHandling.weaponIdx == 0)
+        {
+            rifle.DisableEffects();
+            rifle.enabled = false;
+        } else if (weaponHandling.weaponIdx == 1)
+        {
+            shotgun.DisableEffects();
+            shotgun.enabled = false;
+        }
 
         //mentrigger animasi Die
         anim.SetBool("Die", true);
@@ -123,14 +136,22 @@ public class PlayerHealth : MonoBehaviour, Attackable
         //mematikan script player movement
         playerMovement.enabled = false;
 
-        playerShooting.enabled = false;
     }
 
     public void Revive()
     {
         isDead = false;
 
-        playerShooting.EnableEffects();
+        if (weaponHandling.weaponIdx == 0)
+        {
+            rifle.EnableEffects();
+            rifle.enabled = true;
+        }
+        else if (weaponHandling.weaponIdx == 1)
+        {
+            shotgun.EnableEffects();
+            shotgun.enabled = true;
+        }
 
         anim.SetTrigger("Revive");
         anim.SetBool("Die", false);
@@ -139,7 +160,8 @@ public class PlayerHealth : MonoBehaviour, Attackable
 
         playerMovement.enabled = true;
 
-        playerShooting.enabled = true;
+        time.SetActive(true);
+
     }
     
 }
\ No newline at end of file
diff --git a/Assets/Scripts/Quest/QuestManager.cs b/Assets/Scripts/Quest/QuestManager.cs
index 642d6e3..98be183 100644
--- a/Assets/Scripts/Quest/QuestManager.cs
+++ b/Assets/Scripts/Quest/QuestManager.cs
@@ -47,10 +47,6 @@ public class QuestManager : MonoBehaviour
 
         anim = GetComponent<Animator>();
         timeProgress.text = "00:00:00";
-        if (time == null)
-        {
-            time = 0f;
-        }
         
         questItems.Add(new QuestItem(
             "Kill 5 Zombunnies and 4 Zombears",
diff --git a/Assets/Scripts/Save/SaveData.cs b/Assets/Scripts/Save/SaveData.cs
index c68aa66..1b7faf8 100644
--- a/Assets/Scripts/Save/SaveData.cs
+++ b/Assets/Scripts/Save/SaveData.cs
@@ -18,6 +18,7 @@ public class SaveData
     public int shotgun;
     public int sword;
     public int bow;
+    public int weaponIdx;
 
     public static SaveData getSaveData()
     {
@@ -35,6 +36,7 @@ public class SaveData
         data.bow = player.GetComponent<PlayerMovement>().bow;
         data.score = ScoreManager.score;
         data.time = canvas.GetComponent<QuestManager>().getTime();
+        data.weaponIdx = player.GetComponent<WeaponHandling>().weaponIdx;
         return data;
     }
 
diff --git a/Assets/Scripts/Save/SaveHandler.cs b/Assets/Scripts/Save/SaveHandler.cs
index 5dfa76a..8a2ccc8 100644
--- a/Assets/Scripts/Save/SaveHandler.cs
+++ b/Assets/Scripts/Save/SaveHandler.cs
@@ -87,6 +87,7 @@ public class SaveHandler : MonoBehaviour
         player.GetComponent<PlayerMovement>().bow = data.bow;
         ScoreManager.score = data.score;
         questManager.setTime(data.time);
+        player.GetComponent<WeaponHandling>().weaponIdx = data.weaponIdx;
     }
 
     public Dictionary<int, Tuple<string, DateTime>> preprocessFileName(string[] files_str)
diff --git a/Assets/Scripts/Player/Rifle.cs b/Assets/Scripts/Weapons/Rifle.cs
similarity index 100%
rename from Assets/Scripts/Player/Rifle.cs
rename to Assets/Scripts/Weapons/Rifle.cs
diff --git a/Assets/Scripts/Player/Rifle.cs.meta b/Assets/Scripts/Weapons/Rifle.cs.meta
similarity index 100%
rename from Assets/Scripts/Player/Rifle.cs.meta
rename to Assets/Scripts/Weapons/Rifle.cs.meta
diff --git a/Assets/Scripts/Player/Shotgun.cs b/Assets/Scripts/Weapons/Shotgun.cs
similarity index 98%
rename from Assets/Scripts/Player/Shotgun.cs
rename to Assets/Scripts/Weapons/Shotgun.cs
index 00fd1eb..32a8e6c 100644
--- a/Assets/Scripts/Player/Shotgun.cs
+++ b/Assets/Scripts/Weapons/Shotgun.cs
@@ -103,7 +103,6 @@ public class Shotgun : MonoBehaviour
                 {
                     enemyHealth.TakeDamage(damagePerShot, shootHit.point);
                 }
-                Debug.Log(shootHit.point);
                 gunLine.SetPosition(idx*2+1, shootHit.point);
             }
             else {
diff --git a/Assets/Scripts/Player/Shotgun.cs.meta b/Assets/Scripts/Weapons/Shotgun.cs.meta
similarity index 100%
rename from Assets/Scripts/Player/Shotgun.cs.meta
rename to Assets/Scripts/Weapons/Shotgun.cs.meta
diff --git a/Assets/Scripts/Player/Sword.cs b/Assets/Scripts/Weapons/Sword.cs
similarity index 100%
rename from Assets/Scripts/Player/Sword.cs
rename to Assets/Scripts/Weapons/Sword.cs
diff --git a/Assets/Scripts/Player/Sword.cs.meta b/Assets/Scripts/Weapons/Sword.cs.meta
similarity index 100%
rename from Assets/Scripts/Player/Sword.cs.meta
rename to Assets/Scripts/Weapons/Sword.cs.meta
-- 
GitLab