Ejemplo n.º 1
0
        private void NewGameThenStart()
        {
            // Create new progression.
            playerProgress = new PlayerProgress();

            // Create or replace old save.
            SaveLoadManager.SavePlayerProgress(playerProgress, saveSlotSelected);

            LoadWorldMap();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Store the current level progress and save it.
        /// </summary>
        /// <param name="feathersCollected"></param>
        /// <param name="itemsFound"></param>
        public void SaveLevelProgress(int feathersCollected, bool[] itemsFound, bool treasureFound)
        {
            // Debug.
            if (playerProgress == null)
            {
                return;
            }

            LevelProgress levelProgress = null;

            // Save found. Update for the best values.
            if (playerProgress.worldProgress[currentWorldIndex].finishedLevels.TryGetValue(currentLevelIndex, out levelProgress))
            {
                levelProgress.feathersCollected = Mathf.Max(feathersCollected, levelProgress.feathersCollected);
            }

            // level finished for the first time, create and add new entry with the corect amount of exits and feathers collected.
            else
            {
                levelProgress = new LevelProgress(levelMgr.data.exitCount, feathersCollected);

                playerProgress.worldProgress[currentWorldIndex].finishedLevels.Add(currentLevelIndex, levelProgress);
            }

            // Update items :
            for (int i = 0; i < levelProgress.specialItemsFound.Length; i++)
            {
                // Don't update item if already found.
                if (levelProgress.specialItemsFound[i])
                {
                    continue;
                }

                // Update if item has been found.
                if (itemsFound[i])
                {
                    levelProgress.specialItemsFound[i] = true;

                    // Sunflower seed obtained.
                    if (i == 3)
                    {
                        playerProgress.worldProgress[currentWorldIndex].sunFlowerSeedCollected++;
                    }
                }
            }

            // Update treasure if exist and hasn't already save.
            if (treasureFound && !levelProgress.treasureFound)
            {
                levelProgress.treasureFound = treasureFound;
                playerProgress.treasuresFound.Add(currentWorldIndex + "-" + currentLevelIndex, true);
            }

            // Update exit taken.
            levelProgress.exits[levelMgr.ExitTaken] = true;

            // Cumulate stats.
            playerProgress.deathCount += levelMgr.DeathCount;
            playerProgress.timePlayed += levelMgr.Timer;

            // TODO save best time on a specific level.

            // Save.
            SaveLoadManager.SavePlayerProgress(playerProgress, saveSlotSelected);
        }