using System.Collections; using System.Collections.Generic; using cfg.LevelCfg; using UnityEngine; public class ChapterInfo : IEnumerable { private DataChapter _config; private List _levelList = new(); public int ID => _config.Id; public int GroupID => _config.GroupID; public LevelType LevelType => _config.Type; public int[] StarList => _config.StarList; public int[] Rewards => _config.Rewards; public int StarCount { get { var count = 0; foreach (var levelInfo in _levelList) { count += levelInfo.StarCount; } return count; } } public int StarMax => _levelList.Count * 3; public bool IsLock { get { foreach (var levelInfo in _levelList) { if (!levelInfo.Lock) return false; } return true; } } public ChapterInfo(DataChapter config) { _config = config; } public void AddLevel(LevelInfo levelInfo) { if (!_levelList.Contains(levelInfo)) { _levelList.Add(levelInfo); } else { DebugUtil.LogError($"cant add level,level id:{levelInfo.ID}"); } } public IEnumerator GetEnumerator() { return _levelList.GetEnumerator(); } }