using System.Collections; using System.Collections.Generic; using System.Linq; using cfg.LevelCfg; using UnityEngine; public class LevelGroupInfo { private DataLevelGroup _config; private List _chapterList = new(); public int ID => _config.Id; public LevelGroupType GroupType => _config.Type; public string MaterialIcon => _config.MaterialIcon; public string Name => StringManager.Instance.GetLocalizeTextByKey(_config.Name); public string Desc => StringManager.Instance.GetLocalizeTextByKey(_config.Desc); public int Index => _config.Index; public ChapterInfo PlotChapter { get { return _chapterList.First((chapter) => chapter.LevelType == LevelType.Plot); } } public ChapterInfo EasyChapter { get { return _chapterList.First((chapter) => chapter.LevelType == LevelType.Easy); } } public ChapterInfo HardChapter { get { return _chapterList.First((chapter) => chapter.LevelType == LevelType.Hard); } } public int StarCount { get { var count = 0; foreach (var chapterInfo in _chapterList) { count += chapterInfo.StarCount; } return count; } } public int StarMax { get { var count = 0; foreach (var chapterInfo in _chapterList) { count += chapterInfo.StarMax; } return count; } } public bool IsLock { get { foreach (var chapterInfo in _chapterList) { if (!chapterInfo.IsLock) return false; } return true; } } public LevelGroupInfo(DataLevelGroup config) { _config = config; } public void AddChapter(ChapterInfo chapterInfo) { if (!_chapterList.Contains(chapterInfo)) { _chapterList.Add(chapterInfo); } else { DebugUtil.LogError($"cant add chapter,chapterID:{chapterInfo.ID}"); } } }