From b42b47d281f9e89e2909c3eba0e2733bef9b2830 Mon Sep 17 00:00:00 2001 From: Ahmad Romy Zahran <ahmadromyzahran@gmail.com> Date: Sun, 16 Apr 2023 09:01:27 +0700 Subject: [PATCH] fix: reset static, slider health kl >100, sesuain save, ubah quest goal --- Assets/Scripts/Managers/GameManager.cs | 1 + Assets/Scripts/Managers/GameOverManager.cs | 4 ++-- Assets/Scripts/Pet/Chicken/ChickenHealth.cs | 8 +++++++- Assets/Scripts/Pet/Fox/FoxHealth.cs | 8 +++++++- Assets/Scripts/Player/PlayerHealth.cs | 4 ++-- Assets/Scripts/Quest/QuestGiver.cs | 6 +++--- Assets/Scripts/SaveLoad/SaveLoadFacade.cs | 2 +- Assets/ShopPetManager.cs | 12 ++++++------ Assets/TurtleHealth.cs | 8 +++++++- 9 files changed, 36 insertions(+), 17 deletions(-) diff --git a/Assets/Scripts/Managers/GameManager.cs b/Assets/Scripts/Managers/GameManager.cs index 666bc85..ad69db9 100644 --- a/Assets/Scripts/Managers/GameManager.cs +++ b/Assets/Scripts/Managers/GameManager.cs @@ -78,6 +78,7 @@ public class GameManager : MonoBehaviour public void BackToMainMenu() { + GameOverManager.ResetSession(); UnityEngine.SceneManagement.SceneManager.LoadScene("Main Menu"); } diff --git a/Assets/Scripts/Managers/GameOverManager.cs b/Assets/Scripts/Managers/GameOverManager.cs index 5863b7c..a671dd6 100644 --- a/Assets/Scripts/Managers/GameOverManager.cs +++ b/Assets/Scripts/Managers/GameOverManager.cs @@ -66,7 +66,7 @@ public class GameOverManager : MonoBehaviour } } - public void ResetSession() + public static void ResetSession() { // time ScoreManager.reset(); @@ -78,7 +78,7 @@ public class GameOverManager : MonoBehaviour //CheatManager.isTheFlast = false; //player - PlayerMoney.money = 0; + PlayerMoney.money = 300; QuestGiver.QuestData = null; // pet, weapon ShopPetManager.currentPetName = null; diff --git a/Assets/Scripts/Pet/Chicken/ChickenHealth.cs b/Assets/Scripts/Pet/Chicken/ChickenHealth.cs index 8a9e5d5..b6e298c 100644 --- a/Assets/Scripts/Pet/Chicken/ChickenHealth.cs +++ b/Assets/Scripts/Pet/Chicken/ChickenHealth.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using UnityEngine; @@ -88,7 +89,7 @@ public class ChickenHealth : MonoBehaviour currentHealth -= CheatManager.isImmortalPet ? 0 : amount; - HealthSliderPet.value = currentHealth; + HealthSliderPet.value = 100f*currentHealth/startingHealth; chickenAudio.Play(); @@ -139,4 +140,9 @@ public class ChickenHealth : MonoBehaviour navMeshAgent.enabled = true; EnemyAttack.petAlive = true; } + + internal void UpdateSlider() + { + HealthSliderPet.value = 100f * currentHealth / startingHealth; + } } diff --git a/Assets/Scripts/Pet/Fox/FoxHealth.cs b/Assets/Scripts/Pet/Fox/FoxHealth.cs index 86e2007..c881ee6 100644 --- a/Assets/Scripts/Pet/Fox/FoxHealth.cs +++ b/Assets/Scripts/Pet/Fox/FoxHealth.cs @@ -1,4 +1,5 @@ using Assets.Scripts.Player; +using System; using System.Collections; using UnityEngine; using UnityEngine.AI; @@ -69,7 +70,7 @@ namespace Assets.Scripts.Pet.Fox damaged = true; currentHealth -= CheatManager.isImmortalPet ? 0 : amount; - healthSlider.value = currentHealth; + healthSlider.value = 100f*currentHealth/startingHealth; foxAudio.Play(); if (currentHealth <= 0 && !isDead) @@ -126,5 +127,10 @@ namespace Assets.Scripts.Pet.Fox playerBowing.attackMultiplier = 1f; swordAttack.attackMultiplier = 1f; } + + internal void UpdateSlider() + { + healthSlider.value = 100f*currentHealth/startingHealth; + } } } \ No newline at end of file diff --git a/Assets/Scripts/Player/PlayerHealth.cs b/Assets/Scripts/Player/PlayerHealth.cs index b271aab..2099297 100644 --- a/Assets/Scripts/Player/PlayerHealth.cs +++ b/Assets/Scripts/Player/PlayerHealth.cs @@ -64,7 +64,7 @@ public class PlayerHealth : MonoBehaviour, ISaveAble currentHealth -= CheatManager.isCheatNoDamage ? 0 : amount; // Set the health bar's value to the current health. - healthSlider.value = currentHealth; + healthSlider.value = 100f * currentHealth / startingHealth; // Play the hurt sound effect. playerAudio.Play (); @@ -117,6 +117,6 @@ public class PlayerHealth : MonoBehaviour, ISaveAble public void LoadFromSaveFile(SaveFile saveFile) { currentHealth = saveFile.Health; - healthSlider.value = currentHealth; + healthSlider.value = 100f * currentHealth / startingHealth; } } \ No newline at end of file diff --git a/Assets/Scripts/Quest/QuestGiver.cs b/Assets/Scripts/Quest/QuestGiver.cs index 5ee47a0..9606b38 100644 --- a/Assets/Scripts/Quest/QuestGiver.cs +++ b/Assets/Scripts/Quest/QuestGiver.cs @@ -24,11 +24,11 @@ public class QuestGiver : MonoBehaviour QuestData = new Dictionary<string, Quest[]>(); // QuestData.Clear(); QuestData.Add("Scene 1 Opening", new Quest[] { - new Quest("title 1", "description 1", 100, new QuestGoal(1,0,0,0)), - new Quest("title 2", "description 2", 200, new QuestGoal(0,1,0,0)) + new Quest("title 1", "description 1", 100, new QuestGoal(3,0,0,0)), + new Quest("title 2", "description 2", 200, new QuestGoal(0,3,0,0)) }); QuestData.Add("Scene 2 Middle", new Quest[] { - new Quest("title 3 middle", "description 3", 100, new QuestGoal(0,0,1,0)), + new Quest("title 3 middle", "description 3", 100, new QuestGoal(0,0,3,0)), new Quest("title 4 middle", "description 4", 200, new QuestGoal(0,0,0,1)) }); finalQuestSceneName = "Scene 2 Middle"; diff --git a/Assets/Scripts/SaveLoad/SaveLoadFacade.cs b/Assets/Scripts/SaveLoad/SaveLoadFacade.cs index 47fac81..d553c13 100644 --- a/Assets/Scripts/SaveLoad/SaveLoadFacade.cs +++ b/Assets/Scripts/SaveLoad/SaveLoadFacade.cs @@ -93,7 +93,7 @@ public class SaveLoadFacade : MonoBehaviour player.GetComponent<Command>().LoadFromSaveFile(LoadedSaveFile); - var shop = GameObject.Find("Shopkeeper").GetComponent<Shop>().shopUI; + var shop = GameObject.Find("Environment").transform.Find("Shopkeeper").GetComponent<Shop>().shopUI; shop.transform.Find("ScrollRect").Find("PetContents").GetComponent<ShopPetManager>().LoadFromSaveFile(LoadedSaveFile); } FirstLoad = false; diff --git a/Assets/ShopPetManager.cs b/Assets/ShopPetManager.cs index 5e6afd3..3d0b391 100644 --- a/Assets/ShopPetManager.cs +++ b/Assets/ShopPetManager.cs @@ -35,17 +35,17 @@ public class ShopPetManager : MonoBehaviour, ISaveAble if (currentPetName == petList[0]) { pet.GetComponent<TurtleHealth>().currentHealth = petHealth; - pet.GetComponent<TurtleHealth>().healthSlider.value = petHealth; + pet.GetComponent<TurtleHealth>().UpdateSlider(); } else if (currentPetName == petList[1]) { pet.GetComponent<ChickenHealth>().currentHealth = petHealth; - pet.GetComponent<ChickenHealth>().HealthSliderPet.value = petHealth; + pet.GetComponent<ChickenHealth>().UpdateSlider(); } else if (currentPetName == petList[2]) { pet.GetComponent<FoxHealth>().currentHealth = petHealth; - pet.GetComponent<FoxHealth>().healthSlider.value = petHealth; + pet.GetComponent<FoxHealth>().UpdateSlider(); } } } @@ -87,17 +87,17 @@ public class ShopPetManager : MonoBehaviour, ISaveAble if (currentPetName == petList[0]) { pet.GetComponent<TurtleHealth>().currentHealth = petHealth; - pet.GetComponent<TurtleHealth>().healthSlider.value = petHealth; + pet.GetComponent<TurtleHealth>().UpdateSlider(); } else if (currentPetName == petList[1]) { pet.GetComponent<ChickenHealth>().currentHealth = petHealth; - pet.GetComponent<ChickenHealth>().HealthSliderPet.value = petHealth; + pet.GetComponent<ChickenHealth>().UpdateSlider(); } else if (currentPetName == petList[2]) { pet.GetComponent<FoxHealth>().currentHealth = petHealth; - pet.GetComponent<FoxHealth>().healthSlider.value = petHealth; + pet.GetComponent<FoxHealth>().UpdateSlider(); } } diff --git a/Assets/TurtleHealth.cs b/Assets/TurtleHealth.cs index 562b91c..3e8d713 100644 --- a/Assets/TurtleHealth.cs +++ b/Assets/TurtleHealth.cs @@ -2,6 +2,7 @@ using UnityEngine; using UnityEngine.UI; using System.Collections; using System.Collections.Generic; +using System; public class TurtleHealth : MonoBehaviour { @@ -69,7 +70,7 @@ public class TurtleHealth : MonoBehaviour damaged = true; currentHealth -= amount; - healthSlider.value = currentHealth; + healthSlider.value = 100f * currentHealth / startingHealth; if(currentHealth <= 0 && !isDead) { @@ -103,4 +104,9 @@ public class TurtleHealth : MonoBehaviour turtleMovement.enabled = true; EnemyAttack.petAlive = true; } + + internal void UpdateSlider() + { + healthSlider.value = 100f * currentHealth / startingHealth; + } } -- GitLab