using System.Collections.Generic; using Core.Data; using UnityEngine; namespace TowerDefense.Game { /// /// The data store for TD /// public sealed class GameDataStore : GameDataStoreBase { /// /// A list of level IDs for completed levels /// public List completedLevels = new List(); /// /// Outputs to debug /// public override void PreSave() { Debug.Log("[GAME] Saving Game"); } /// /// Outputs to debug /// public override void PostLoad() { Debug.Log("[GAME] Loaded Game"); } /// /// Marks a level complete /// /// The levelId to mark as complete /// Stars earned public void CompleteLevel(string levelId, int starsEarned) { foreach (LevelSaveData level in completedLevels) { if (level.id == levelId) { level.numberOfStars = Mathf.Max(level.numberOfStars, starsEarned); return; } } completedLevels.Add(new LevelSaveData(levelId, starsEarned)); } /// /// Determines if a specific level is completed /// /// The level ID to check /// true if the level is completed public bool IsLevelCompleted(string levelId) { foreach (LevelSaveData level in completedLevels) { if (level.id == levelId) { return true; } } return false; } /// /// Retrieves the star count for a given level /// public int GetNumberOfStarForLevel(string levelId) { foreach (LevelSaveData level in completedLevels) { if (level.id == levelId) { return level.numberOfStars; } } return 0; } } }