diff --git a/Assets/Scripts/Managers/GlobalManager.cs b/Assets/Scripts/Managers/GlobalManager.cs index 1a4f72deb8e8d27477b917090b4f9559ad72230a..7d327ed34cc872f7260c1bee17c45138fa470577 100644 --- a/Assets/Scripts/Managers/GlobalManager.cs +++ b/Assets/Scripts/Managers/GlobalManager.cs @@ -8,10 +8,15 @@ public class GlobalManager : MonoBehaviour { public static GlobalManager Instance; private GlobalStateManager globalStateManager; + private string defaultName = "PLAYER"; private string playerName; public string PlayerName { - get => playerName; + get + { + playerName ??= defaultName; + return playerName; + } set { playerName = value; diff --git a/Assets/Scripts/Player/PlayerWeapons.cs b/Assets/Scripts/Player/PlayerWeapons.cs index 7f022d18e5928d213dfa61464e279342d86fc8d5..42dd00ff421878bda8689130fbd0a292706e3f38 100644 --- a/Assets/Scripts/Player/PlayerWeapons.cs +++ b/Assets/Scripts/Player/PlayerWeapons.cs @@ -12,7 +12,7 @@ public class PlayerWeapons : MonoBehaviour int idxWeapon = 0; // Start is called before the first frame update - void Start() + void Awake() { var gun = new GameObject[2]; gun[0] = GameObject.Find("GunBarrelEnd"); @@ -102,9 +102,13 @@ public class PlayerWeapons : MonoBehaviour int idx = GetIdxWeapon(weaponType); if (idx == -1) return false; - Debug.Log("Weapon: " + Weapons); - Debug.Log("Weapon len: " + Weapons.Length); - Debug.Log("Weapons[idx]: " + Weapons[idx]); + var ws = Weapons; + foreach (var w in ws) + { + Debug.Log("Weapon: " + w); + Debug.Log("Weapon len: " + Weapons.Length); + Debug.Log("Weapons[idx]: " + w); + } Weapons[idx].IsUnlocked = true; return true; diff --git a/Assets/Scripts/SaveLoad/LoadDialogHandler.cs b/Assets/Scripts/SaveLoad/LoadDialogHandler.cs index 7fa1c56cda3039d02412534912d64707beedf44f..8a30b912cdded59505d1ae5761d89ede445fe302 100644 --- a/Assets/Scripts/SaveLoad/LoadDialogHandler.cs +++ b/Assets/Scripts/SaveLoad/LoadDialogHandler.cs @@ -46,7 +46,7 @@ public class LoadSlotHandler } else { - this.Btn.name = "Save Slot " + (Id + 1); + this.txt.text = "[EMPTY] Save Slot " + (Id + 1); this.Btn.enabled = false; } } @@ -70,6 +70,14 @@ public class LoadDialogHandler : MonoBehaviour /*gameObject.SetActive(false);*/ } + private void Update() + { + if (Input.GetKeyDown(KeyCode.Escape)) + { + Close(); + } + } + public void Show() { gameObject.SetActive(true); diff --git a/Assets/Scripts/States/GlobalStateManager.cs b/Assets/Scripts/States/GlobalStateManager.cs index fdef0b57a0af8e23efb6b5e50162793954f539d4..e13fbf068627c535892b485d72f20a2e167f0e90 100644 --- a/Assets/Scripts/States/GlobalStateManager.cs +++ b/Assets/Scripts/States/GlobalStateManager.cs @@ -104,6 +104,7 @@ public class GlobalStateManager : MonoBehaviour { get { + if (petHealth == null) return 0; return petHealth.currentHealth; } } @@ -140,6 +141,21 @@ public class GlobalStateManager : MonoBehaviour // TODO: get states var metaStateSave = new MetaStateSave("name"); + var arg1 = PlayerName; + var arg2 = Money; + var arg3 = Health; + var arg4 = IdxQuest; + var arg5 = playerWeapons; + + Debug.Log("PlayerName: " + PlayerName); + Debug.Log("Money: " + Money); + Debug.Log("Health: " + Health); + Debug.Log("IdxQuest: " + IdxQuest); + foreach (var w in playerWeapons) + { + Debug.Log("playerWeapon[{{i}}]: " + w); + } + var playerStateSave = new PlayerStateSave(PlayerName, Money, Health, IdxQuest, playerWeapons); var petStateSave = new PetStateSave(PetHealth, -1); var globalStateSave = new GlobalStateSave(TimePlayed); @@ -162,8 +178,22 @@ public class GlobalStateManager : MonoBehaviour playerHealth.currentHealth = state.playerStateSave.health; GameControl.control.currency = state.playerStateSave.money; temple.IdxCurrentQuest = state.playerStateSave.idxQuest; - foreach (var weapon in state.playerStateSave.playerWeapons) + /* foreach (var weapon in state.playerStateSave.playerWeapons) + { + var type = weapon.weaponType; + var isUnlocked = weapon.isUnlocked; + var level = weapon.level; + + if (isUnlocked) + { + playerWeapons.UnlockWeapon(type); + playerWeapons.SetLevel(type, level); + } + }*/ + var len = state.playerStateSave.playerWeapons.Length; + for ( var i = 0; i<len; i++ ) { + var weapon = state.playerStateSave.playerWeapons[i]; var type = weapon.weaponType; var isUnlocked = weapon.isUnlocked; var level = weapon.level;