From d1298292a22aa655a88bd2867c1f416da6cc0696 Mon Sep 17 00:00:00 2001 From: Malik Rafsanjani <pro.malikakbar2357@gmail.com> Date: Fri, 14 Apr 2023 02:30:34 +0700 Subject: [PATCH] feat: init load enabler --- Assets/Scripts/Enemy/EnemyAttack.cs | 4 +-- Assets/Scripts/Enemy/EnemyMovement.cs | 2 +- Assets/Scripts/Managers/EnemyManager.cs | 2 +- Assets/Scripts/Managers/GameOverManager.cs | 2 +- Assets/Scripts/Managers/GlobalManager.cs | 9 ++++++ Assets/Scripts/Pet/DogHeal.cs | 4 +-- Assets/Scripts/Pet/PetMovement.cs | 2 +- Assets/Scripts/Player/PlayerHealth.cs | 20 +++++++++++-- .../Player/Weapons/PlayerSwordAnimation.cs | 11 +++++-- Assets/Scripts/SaveLoad/SaveLoadManager.cs | 2 +- Assets/Scripts/States/GlobalStateManager.cs | 11 +++++-- Assets/Scripts/States/StateSave.cs | 30 ++++++++++++++++++- 12 files changed, 82 insertions(+), 17 deletions(-) diff --git a/Assets/Scripts/Enemy/EnemyAttack.cs b/Assets/Scripts/Enemy/EnemyAttack.cs index 1b26b61..dff28f0 100644 --- a/Assets/Scripts/Enemy/EnemyAttack.cs +++ b/Assets/Scripts/Enemy/EnemyAttack.cs @@ -67,7 +67,7 @@ public class EnemyAttack : MonoBehaviour AttackPet (); } - if (playerHealth.currentHealth <= 0) + if (playerHealth.CurrentHealth <= 0) { anim.SetBool("PlayerDeath", true); } @@ -78,7 +78,7 @@ public class EnemyAttack : MonoBehaviour { timer = 0f; - if (playerHealth.currentHealth > 0) + if (playerHealth.CurrentHealth > 0) { playerHealth.TakeDamage (attackDamage); } diff --git a/Assets/Scripts/Enemy/EnemyMovement.cs b/Assets/Scripts/Enemy/EnemyMovement.cs index 34d301c..ecda7ac 100644 --- a/Assets/Scripts/Enemy/EnemyMovement.cs +++ b/Assets/Scripts/Enemy/EnemyMovement.cs @@ -27,7 +27,7 @@ public class EnemyMovement : MonoBehaviour void Update () { - if(enemyHealth.currentHealth > 0 && playerHealth.currentHealth > 0) + if(enemyHealth.currentHealth > 0 && playerHealth.CurrentHealth > 0) { nav.SetDestination(playerPosition.position); diff --git a/Assets/Scripts/Managers/EnemyManager.cs b/Assets/Scripts/Managers/EnemyManager.cs index e428e79..652e261 100644 --- a/Assets/Scripts/Managers/EnemyManager.cs +++ b/Assets/Scripts/Managers/EnemyManager.cs @@ -23,7 +23,7 @@ public class EnemyManager : MonoBehaviour void Spawn () { - if (playerHealth.currentHealth <= 0f) + if (playerHealth.CurrentHealth <= 0f) { return; } diff --git a/Assets/Scripts/Managers/GameOverManager.cs b/Assets/Scripts/Managers/GameOverManager.cs index 8229a8d..b4262f5 100644 --- a/Assets/Scripts/Managers/GameOverManager.cs +++ b/Assets/Scripts/Managers/GameOverManager.cs @@ -19,7 +19,7 @@ public class GameOverManager : MonoBehaviour void Update() { - if (playerHealth.currentHealth <= 0) + if (playerHealth.CurrentHealth <= 0) { anim.SetTrigger("GameOver"); diff --git a/Assets/Scripts/Managers/GlobalManager.cs b/Assets/Scripts/Managers/GlobalManager.cs index fba287d..224d446 100644 --- a/Assets/Scripts/Managers/GlobalManager.cs +++ b/Assets/Scripts/Managers/GlobalManager.cs @@ -7,6 +7,15 @@ public class GlobalManager : MonoBehaviour { public static GlobalManager Instance; private GlobalStateManager globalState; + private string playerName; + public string PlayerName + { + get => playerName; + set + { + playerName = value; + } + } private void Awake() { diff --git a/Assets/Scripts/Pet/DogHeal.cs b/Assets/Scripts/Pet/DogHeal.cs index d0e2369..d4c6671 100644 --- a/Assets/Scripts/Pet/DogHeal.cs +++ b/Assets/Scripts/Pet/DogHeal.cs @@ -21,7 +21,7 @@ public class DogHeal : MonoBehaviour void Update() { timer += Time.deltaTime; - if (timer >= timeBetweenHeals && playerHealth.currentHealth < 100) + if (timer >= timeBetweenHeals && playerHealth.CurrentHealth < 100) { print("berhasil masuk mau heal"); Heal (); @@ -35,7 +35,7 @@ public class DogHeal : MonoBehaviour void Heal () { timer = 0f; - int playerHealthLost = 100 - playerHealth.currentHealth; + int playerHealthLost = 100 - playerHealth.CurrentHealth; if (playerHealthLost < healAmount){ healAmount = playerHealthLost; print(healAmount); diff --git a/Assets/Scripts/Pet/PetMovement.cs b/Assets/Scripts/Pet/PetMovement.cs index 070f4dd..25c77fe 100644 --- a/Assets/Scripts/Pet/PetMovement.cs +++ b/Assets/Scripts/Pet/PetMovement.cs @@ -23,7 +23,7 @@ public class PetMovement : MonoBehaviour // Update is called once per frame void Update() { - if (petHealth.currentHealth > 0 && playerHealth.currentHealth > 0) + if (petHealth.currentHealth > 0 && playerHealth.CurrentHealth > 0) { nav.SetDestination (playerPosition.position); } diff --git a/Assets/Scripts/Player/PlayerHealth.cs b/Assets/Scripts/Player/PlayerHealth.cs index dd4fc3b..10ec415 100644 --- a/Assets/Scripts/Player/PlayerHealth.cs +++ b/Assets/Scripts/Player/PlayerHealth.cs @@ -5,13 +5,23 @@ using System.Collections; public class PlayerHealth : MonoBehaviour { public readonly int startingHealth = 100; - public int currentHealth; + private int currentHealth = -1; public Slider healthSlider; public Image damageImage; public AudioClip deathClip; public float flashSpeed = 5f; public Color flashColour = new Color(1f, 0f, 0f, 0.1f); + public int CurrentHealth + { + get => currentHealth; + set + { + currentHealth = value; + healthSlider.value = currentHealth; + } + } + Animator anim; AudioSource playerAudio; @@ -29,7 +39,13 @@ public class PlayerHealth : MonoBehaviour playerMovement = GetComponent<PlayerMovement>(); playerShooting = GetComponentInChildren<PlayerShooting>(); - currentHealth = startingHealth; + if (currentHealth == -1) + { + currentHealth = startingHealth; + } + + Debug.Log("currentHealt: "+ currentHealth); + healthSlider.value = currentHealth; } diff --git a/Assets/Scripts/Player/Weapons/PlayerSwordAnimation.cs b/Assets/Scripts/Player/Weapons/PlayerSwordAnimation.cs index cc5ed92..63e21c4 100644 --- a/Assets/Scripts/Player/Weapons/PlayerSwordAnimation.cs +++ b/Assets/Scripts/Player/Weapons/PlayerSwordAnimation.cs @@ -7,6 +7,13 @@ public class PlayerSwordAnimation : MonoBehaviour [SerializeField] private GameObject sword; + private Animator animator; + + private void Awake() + { + this.animator = sword.GetComponent<Animator>(); + } + // Start is called before the first frame update void Start() { @@ -24,8 +31,8 @@ public class PlayerSwordAnimation : MonoBehaviour IEnumerator SwordSwinging() { - sword.GetComponent<Animator>().Play("SwordSwing"); + this.animator.Play("SwordSwing"); yield return new WaitForSeconds(1.0f); - sword.GetComponent<Animator>().Play("Idle"); + this.animator.Play("Idle"); } } diff --git a/Assets/Scripts/SaveLoad/SaveLoadManager.cs b/Assets/Scripts/SaveLoad/SaveLoadManager.cs index ea37197..0814fb6 100644 --- a/Assets/Scripts/SaveLoad/SaveLoadManager.cs +++ b/Assets/Scripts/SaveLoad/SaveLoadManager.cs @@ -49,8 +49,8 @@ public class SaveLoadManager : MonoBehaviour { var state = GlobalStateManager.Instance.GetState(); state.metaStateSave.name = name; - var json = JsonUtility.ToJson(state); + var json = JsonUtility.ToJson(state); var file = SaveLoadConfig.files[Id]; var path = Application.persistentDataPath + "/" + file + ".json"; File.WriteAllText(path, json); diff --git a/Assets/Scripts/States/GlobalStateManager.cs b/Assets/Scripts/States/GlobalStateManager.cs index 278ee8a..d8b5a4b 100644 --- a/Assets/Scripts/States/GlobalStateManager.cs +++ b/Assets/Scripts/States/GlobalStateManager.cs @@ -46,7 +46,7 @@ public class GlobalStateManager : MonoBehaviour { get { - return playerHealth.currentHealth; + return playerHealth.CurrentHealth; } } @@ -108,8 +108,13 @@ public class GlobalStateManager : MonoBehaviour public void SetState(StateSave state) { - Debug.Log("STATE: " + state); - playerHealth.currentHealth = state.playerStateSave.health; + // TODO: SET STATES + Debug.Log("STATE: " + state.ToString()); + + // TODO: set meta state save + + + playerHealth.CurrentHealth = state.playerStateSave.health; GameControl.control.currency = state.playerStateSave.money; } } diff --git a/Assets/Scripts/States/StateSave.cs b/Assets/Scripts/States/StateSave.cs index f9f3488..a3335a3 100644 --- a/Assets/Scripts/States/StateSave.cs +++ b/Assets/Scripts/States/StateSave.cs @@ -1,8 +1,11 @@ -using System; +using Newtonsoft.Json; +using System; using System.Collections.Generic; using System.Linq; +using System.Reflection; using System.Text; using System.Threading.Tasks; +using UnityEngine; [Serializable] public class MetaStateSave @@ -22,6 +25,11 @@ public class MetaStateSave { this.updatedAt = DateTime.Now.ToString(SaveLoadConfig.dateTimeFormat); } + + public override string ToString() + { + return JsonConvert.SerializeObject(this); + } } [Serializable] @@ -37,6 +45,11 @@ public class PlayerStateSave this.health = health; this.idxQuest = idxQuest; } + + public override string ToString() + { + return JsonConvert.SerializeObject(this); + } } [Serializable] @@ -50,6 +63,11 @@ public class PetStateSave this.health = health; this.idxCurrentPet = idxCurrentPet; } + + public override string ToString() + { + return JsonConvert.SerializeObject(this); + } } [Serializable] @@ -61,6 +79,11 @@ public class GlobalStateSave { this.timePlayed = timePlayed; } + + public override string ToString() + { + return JsonConvert.SerializeObject(this); + } } [Serializable] @@ -78,4 +101,9 @@ public class StateSave this.petStateSave = petStateSave; this.globalStateSave = globalStateSave; } + + public override string ToString() + { + return JsonConvert.SerializeObject(this); + } } -- GitLab