using System.Collections.Generic; namespace GFGGame { public class InstanceZonesDataManager { //关卡配置表的id public static int currentLevelCfgId; //副本通关状态,key为(副本类型+副本id*1000),值为通到第几关 private static Dictionary _passLevel = new Dictionary(); /// /// 获取副本通关关卡 /// /// /// /// public static int GetPassLevelCfgId(int type, int subType, int chapterId) { var key = CalculateHelper.GenerateInstanceZonesLevelStateKey(type, subType, chapterId); if(_passLevel.TryGetValue(key, out var value)) { return value; } return 0; } public static int GetPassLevelOrder(int type, int subType, int chapterId) { var levelCfgId = GetPassLevelCfgId(type, subType, chapterId); var levelCfg = StoryLevelCfgArray.Instance.GetCfg(levelCfgId); if(levelCfg != null) { return levelCfg.order; } return 0; } /// /// 检查某关卡是否通过,参数为关卡配置id /// /// /// public static bool CheckLevelPass(int levelCfgId) { var levelCfg = StoryLevelCfgArray.Instance.GetCfg(levelCfgId); if(levelCfg != null) { var passLevelOrder = InstanceZonesDataManager.GetPassLevelOrder(levelCfg.type, levelCfg.subType, levelCfg.chapterId); return levelCfg.order <= passLevelOrder; } return false; } } }