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; 
 | 
    } 
 | 
} 
 |