NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/ChapterInfo.cs

73 lines
1.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using cfg.LevelCfg;
using UnityEngine;
public class ChapterInfo : IEnumerable
{
private DataChapter _config;
private List<LevelInfo> _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();
}
}