/// <summary> /// Gets the previous session data. /// </summary> /// <returns>The previous session data.</returns> public PreviousSessionData GetPreviousSessionData() { string oldProgrss = PlayerPrefs.GetString("GameProgress" + GameController.gameMode.ToString(), string.Empty); if (oldProgrss != string.Empty) { PreviousSessionData data = new PreviousSessionData(); XDocument xDoc = XDocument.Parse(oldProgrss.ToString()); if (xDoc != null) { #region game mode data.currentMode = (GameMode)Enum.Parse(typeof(GameMode), xDoc.Root.Element("ModeName").Value); #endregion #region block grid XElement blockDataElement = xDoc.Root.Element("BlockData"); if (blockDataElement != null) { var allRows = blockDataElement.Elements("Row"); foreach (XElement ele in allRows) { data.blockGridInfo.Add(ele.Value); } } #endregion #region placing blocks data.shapeInfo = xDoc.Root.Element("ShapeInfo").Value; #endregion #region score data.score = xDoc.Root.Element("Score").Value.TryParseInt(); #endregion #region total rescue done data.totalRescueDone = xDoc.Root.Element("TotalRescueDone").Value.TryParseInt(); #endregion #region total free rescue done data.totalFreeRescueDone = xDoc.Root.Element("TotalFreeRescueDone").Value.TryParseInt(); #endregion #region placed bombs if (GameController.gameMode == GameMode.BLAST || GameController.gameMode == GameMode.CHALLENGE) { XElement placedBombElement = xDoc.Root.Element("PlacedBombs"); if (placedBombElement != null) { var allPlacedBombs = placedBombElement.Elements("Bomb"); foreach (XElement ele in allPlacedBombs) { data.placedBombInfo.Add(ConverToPlacedBombInfo(ele)); } } } #endregion #region remaining time if (GameController.gameMode == GameMode.TIMED || GameController.gameMode == GameMode.CHALLENGE) { data.remainingTime = xDoc.Root.Element("RemainingTime").Value.TryParseInt(60); } #endregion #region total rescue done data.movesCount = xDoc.Root.Element("MovesCount").Value.TryParseInt(); #endregion return(data); } } return(null); }
void Start() { ///checks if level needs to start from previos session or start new session. previousSessionData = GetComponent <GameProgressManager> ().GetPreviousSessionData(); }