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