73 lines
1.4 KiB
C#
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();
|
|
}
|
|
} |