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;
}
}
}