public void Save() { SaveState levelState = new SaveState(); LevelStatusSaveState levelStatusState = new LevelStatusSaveState(); SaveManager sm = new SaveManager(); levelStatusState.LevelName = LevelName.text; levelState = sm.Load(LevelName.text); levelState.MaxTime = int.Parse(MaxTime.text); levelState.MaxTries = int.Parse(MaxTries.text); levelState.Coins = int.Parse(Coins.text); levelState.Diamonds = int.Parse(Diamonds.text); levelStatusState.Stars = int.Parse(Stars.text); levelStatusState.BestTime = int.Parse(BestTime.text); levelStatusState.BestTries = int.Parse(BestTries.text); if (Locked.text == "T" || Locked.text == "t") { levelStatusState.IsLocked = true; } else { levelStatusState.IsLocked = false; } levelStatusState.Save(); sm.Save(levelState, LevelName.text); Load(); }
public static void GameWon() { Debug.Log("won the game"); SaveManager sm = new SaveManager(); LevelStatusSaveState state = new LevelStatusSaveState(); state.LevelName = string.Format("level_{0}_{1}_" + "s", CurrentLevel.Split('_')[1], (int.Parse(CurrentLevel.Split('_')[2])).ToString()); state.Load(); Player.NoOfMoves = IndexOfCoinsCollected.Count; state.IndexOfCoinsCollected = state.IndexOfCoinsCollected.Union(IndexOfCoinsCollected).ToList(); state.IndexOfDiamondsCollected = state.IndexOfDiamondsCollected.Union(IndexOfDiamondsCollected).ToList(); state.Save(); if (LevelManager.NextLevelPresent) { state.LevelName = string.Format("level_{0}_{1}_" + "s", CurrentLevel.Split('_')[1], (int.Parse(CurrentLevel.Split('_')[2]) + 1).ToString()); state.Load(); state.IsLocked = false; state.Save(); } IsGameWon = true; IsPlaying = false; }
public void Save() //saving each node to the file { nodes = new List <Node>(); int numberOfCoins = 0; int numberOfDiamonds = 0; for (int i = 0; i < noOfParts; i++) { Node tempNode = new Node(); switch (PartsTypes[i]) { case (PrefabType.Part01): tempNode.Type = PrefabType.Part01; tempNode.transform = Parts[i].transform; break; case (PrefabType.Part02): tempNode.Type = PrefabType.Part02; tempNode.transform = Parts[i].transform; break; case (PrefabType.Part03): tempNode.Type = PrefabType.Part03; tempNode.transform = Parts[i].transform; break; case (PrefabType.Part04): tempNode.Type = PrefabType.Part04; tempNode.transform = Parts[i].transform; break; case (PrefabType.Part05): tempNode.Type = PrefabType.Part05; tempNode.transform = Parts[i].transform; break; case PrefabType.Start: tempNode.Type = PrefabType.Start; tempNode.transform = Parts[i].transform; break; case PrefabType.End: tempNode.Type = PrefabType.End; tempNode.transform = Parts[i].transform; break; case PrefabType.KeyWall: tempNode.Type = PrefabType.KeyWall; tempNode.transform = Parts[i].transform; break; case PrefabType.Coins: numberOfCoins++; tempNode.Type = PrefabType.Coins; tempNode.transform = Parts[i].transform; break; case PrefabType.Spike: tempNode.Type = PrefabType.Spike; tempNode.transform = Parts[i].transform; break; case PrefabType.KeyPortal: break; case PrefabType.CheckPoint: tempNode.Type = PrefabType.CheckPoint; tempNode.transform = Parts[i].transform; break; case PrefabType.Guardian: tempNode.Type = PrefabType.Guardian; tempNode.transform = Parts[i].transform; break; case PrefabType.Hammer: tempNode.Type = PrefabType.Hammer; tempNode.transform = Parts[i].transform; break; case PrefabType.Goliath: tempNode.Type = PrefabType.Goliath; tempNode.transform = Parts[i].transform; break; case PrefabType.GoliathWalk: tempNode.Type = PrefabType.GoliathWalk; tempNode.transform = Parts[i].transform; break; case PrefabType.GoliathAttackSwitch: tempNode.Type = PrefabType.GoliathAttackSwitch; tempNode.transform = Parts[i].transform; break; case PrefabType.Chest: tempNode.Type = PrefabType.Chest; tempNode.transform = Parts[i].transform; var flag = false; TreasureManager.Load(); if (TreasureManager.TreasureListAll.Treasures.Count > 0) { foreach (var chest in TreasureManager.TreasureListAll.Treasures) { if (chest.LevelName == SaveManager.levelName) { flag = true; break; } } } if (!flag) { TreasureManager.Chest chest = new TreasureManager.Chest(); chest.LevelName = SaveManager.levelName; //TODO get the chest index from somewhere chest.ChestIndex = PlayerPrefs.GetInt("NumberOfChests") + 1; PlayerPrefs.SetInt("NumberOfChests", PlayerPrefs.GetInt("NumberOfChests") + 1); TreasureManager.AddChestToAllTreasures(chest); } break; case PrefabType.Diamonds: numberOfDiamonds++; tempNode.Type = PrefabType.Diamonds; tempNode.transform = Parts[i].transform; break; default: throw new ArgumentOutOfRangeException(); } nodes.Add(tempNode); } for (int i = 0; i < noOfParts; i++) { Destroy(Parts[i]); } state.Node = new List <SaveavleNode>(); for (int i = 0; i < noOfParts; i++) { state.Node.Add(new SaveavleNode()); state.Node[i].ConvertToSaveable(nodes[i].Type, nodes[i].transform); } state.LevelSize = SaveManager.levelSize; state.MaxTime = 0; state.MaxTries = 0; state.Coins = numberOfCoins; state.Diamonds = numberOfDiamonds; sm.Save(state); Load(); var ls = new LevelStatusSaveState { LevelName = string.Format("level_{0}_{1}_s", SaveManager.levelName.Split('_')[1], SaveManager.levelName.Split('_')[2]), BestTime = 0, BestTries = 0, IndexOfCoinsCollected = new List <int>(), IndexOfDiamondsCollected = new List <int>(), IsLocked = false, Stars = 0 }; ls.Save(); isSaving = false; }