| using System.Collections.Generic; | 
| using UnityEngine; | 
| using LitJson; | 
| using System; | 
|   | 
|   | 
| public class MainLevelManager : GameSystemManager<MainLevelManager> | 
| { | 
|   | 
|     public Dictionary<int, int> m_DailyBootyDict = new Dictionary<int, int>(); | 
|     public event Action OnUpdateDayBooty; | 
|     public override void Init() | 
|     { | 
|         DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize; | 
|     } | 
|   | 
|     public override void Release() | 
|     { | 
|         DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize; | 
|     } | 
|   | 
|     private void OnBeforePlayerDataInitialize() | 
|     { | 
|         m_DailyBootyDict.Clear(); | 
|     } | 
|   | 
|     public void UpdateDayDropBooty(HB123_tagSCDropBootyInfo netPack) | 
|     { | 
|         for (int i = 0; i < netPack.Count; i++) | 
|         { | 
|             m_DailyBootyDict[(int)netPack.DropBootyList[i].ItemID] = (int)netPack.DropBootyList[i].TodayDropCnt; | 
|         } | 
|         OnUpdateDayBooty?.Invoke(); | 
|     } | 
|   | 
|     public bool CanChallengeBoss() | 
|     { | 
|         //最后一波通过,且当前波还是最后一波;倒退只倒退波不会倒退关卡 | 
|         if (PlayerDatas.Instance.baseData.ExAttr2 != PlayerDatas.Instance.baseData.ExAttr1) | 
|         { | 
|             return false; | 
|         } | 
|         var value = PlayerDatas.Instance.baseData.ExAttr2; | 
|         var chapterID = value / 10000; | 
|         var levelNum = value % 10000 / 100; | 
|         var waveID = value % 100; | 
|   | 
|         var config = MainLevelConfig.GetMainLevelConfig(chapterID, levelNum); | 
|         if (waveID < MainLevelConfig.GetwaveCount(config)) | 
|         { | 
|             return false; | 
|         } | 
|   | 
|         return true; | 
|     } | 
|   | 
|     //levelID 为客户端配置的ID | 
|     public bool IsPassedByMainLevelID(int levelID) | 
|     { | 
|         var value = PlayerDatas.Instance.baseData.ExAttr1; | 
|         var chapterID = value / 10000; | 
|         var levelNum = value % 10000 / 100; | 
|   | 
|         var config = MainLevelConfig.Get(levelID); | 
|         if (chapterID > config.ChapterID || (chapterID == config.ChapterID && levelNum > config.LevelNum)) | 
|         { | 
|             return true; | 
|         } | 
|   | 
|         return false; | 
|     } | 
| } |