123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- using System.Collections.Generic;
- namespace GFGGame
- {
- public class InstanceZonesDataManager
- {
- //关卡配置表的id
- public static int currentLevelCfgId;
- //副本通关状态,key为(副本类型+副本id*1000),值为通到第几关
- private static Dictionary<int, int> _passLevel = new Dictionary<int, int>();
- /// <summary>
- /// 获取副本通关关卡
- /// </summary>
- /// <param name="type" value="副本类型"></param>
- /// <param name="subType" value="章节id"></param>
- /// <returns></returns>
- 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;
- }
- /// <summary>
- /// 检查某关卡是否通过,参数为关卡配置id
- /// </summary>
- /// <param name="levelCfgId"></param>
- /// <returns></returns>
- 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;
- }
- }
- }
|