public void Show() { var result = string.Format( "WaitOnFountain: {0}\n" + "MoveTo: {1}\n" + "CheckPoint: {2}\n" + "Target: {3}\n" + "ShouldRecall: {4}\n" + "IsUnderAttack: {5}\n" + "DamageTaken: {6}\n" + "AttackedByTurret: {7}\n" + "NextItemPrice: {8}\n" + "CurrentMonster: {9}\n" + "GameState: {10}\n" + "MinionsAround: {11}\n" + "SmiteableMob: {12}\n" + "InDanger: {13}\n" + "Afk: {14}\n" + "DamageCount: {15}\n", WaitOnFountain, MoveTo.ToString(), LastCheckPoint.ToString(), Target == null ? "null" : Target.Name, ShouldRecall, IsUnderAttack(), DamageTaken, AttackedByTurret, NextItemPrice, CurrentMonster, GameState, MinionsAround, SmiteableMob == null ? "null" : SmiteableMob.Name, InDanger, afk, DamageCount); Console.WriteLine(result); }
private IEnumerator LoadGameStateHelper() { // Set our first checkpoint to the default start point if (_saveData == null) { LastCheckPoint = _currentLevel.DefaultStartpoint; } // Clear out player inventory Inventory.Clear(); // Get the saved data _saveData = GameSaveState.Load(GameSaveStatePath); // Do nothing if we failed to load a game save if (_saveData == null) { _saveData = new GameSaveState(); Checkpoint lastCheckpoint = LastCheckPoint.GetComponent <Checkpoint>(); if (lastCheckpoint != null) { _saveData.Checkpoint = lastCheckpoint.Location; } yield break; } // Load up the correct level if (!string.IsNullOrEmpty(SaveData.LevelName) && !SaveData.LevelName.Equals(SceneManager.GetActiveScene().name)) { Instantiate(Resources.Load("Prefabs/User Interface/Loading Screen")); // NOTE: WE DON'T USE THE OBJECT POOL, SINCE WE ONLY NEED THE 1 SceneManager.LoadScene(SaveData.LevelName); } // Move player to his last checkpoint. bool checkpointFound = false; GameObject[] spawnPoints = GameObject.FindGameObjectsWithTag("Respawn"); foreach (GameObject obj in spawnPoints) { Checkpoint checkpoint = obj.GetComponent <Checkpoint>(); if (checkpoint != null && checkpoint.Location == _saveData.Checkpoint) { Player.transform.position = checkpoint.transform.position; LastCheckPoint = checkpoint.transform; checkpointFound = true; break; } } if (!checkpointFound) { Debug.LogWarning("Saved checkpoint not found!"); LastCheckPoint = _currentLevel.DefaultStartpoint; } // Reload the player's items foreach (InventoryItem invItem in _saveData.InventoryState.ItemsHeld) { Inventory.AddItem(InventoryItemFactory.CreateFromType(invItem.Type, invItem.Quantity)); } // Reload the player's weapons foreach (WeaponSaveState weaponSave in _saveData.InventoryState.WeaponsHeld) { string weaponName = "Prefabs/Items/Weapons/InHand/" + weaponSave.WeaponType.ToString().Substring(7); // NOTE: WE MAY WANT TO POOL HERE, BUT I DON'T THINK IT HAPPENS ENOUGH TO BE WORTH IT/NOT SURE IT MAKES SENSE GameObject createdWeapon = (GameObject)Instantiate(Resources.Load(weaponName), _currentLevel.OffscreenPosition, Quaternion.identity); if (createdWeapon == null) { Debug.LogWarning("Failed to load weapon: " + weaponName); continue; } Weapon newWeapon = createdWeapon.GetComponent <Weapon>(); newWeapon.Quantity = weaponSave.Quantity; Inventory.Weapons.Add(newWeapon); } // Display the correct weapon for (int i = 0; i < Inventory.Items.Count; i++) { if (UI.CurrentWeapon == _saveData.InventoryState.CurrentWeapon) { break; } UI.CycleToNextWeapon(); } UI.RefreshWeaponWheel(); yield return(null); }