|  |  |  | 
|---|
|  |  |  | 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() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | base.Init(); | 
|---|
|  |  |  | DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public override void Release() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | base.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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|