| | |
| | | using System.Collections.Generic; |
| | | using DG.DemiEditor; |
| | | using LitJson; |
| | | public class BoneFieldManager : GameSystemManager<BoneFieldManager> |
| | | { |
| | | |
| | | public readonly int DataMapID = 30010; // 白骨盈野(战锤秘境) |
| | | public readonly int MinStartLineID = 1; // funcLineID从1开始 |
| | | public readonly int funcId = 237; // |
| | | public readonly int funcId = 9; //功能ID |
| | | public Redpoint parentRedpoint = new Redpoint(MainRedDot.MainChallengeRedpoint, MainRedDot.BoneFieldRepoint); |
| | | public override void Init() |
| | | { |
| | | DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitializeEvent; |
| | | DungeonManager.Instance.UpdateFBInfoChangeEvent += OnUpdateFBInfoChangeEvent; |
| | | AdsManager.Instance.OnAdsInfoListUpdateEvent += OnAdsInfoListUpdateEvent; |
| | | FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent; |
| | | TimeMgr.Instance.OnDayEvent += OnDayEvent; |
| | | } |
| | | |
| | |
| | | DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitializeEvent; |
| | | DungeonManager.Instance.UpdateFBInfoChangeEvent -= OnUpdateFBInfoChangeEvent; |
| | | AdsManager.Instance.OnAdsInfoListUpdateEvent -= OnAdsInfoListUpdateEvent; |
| | | FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent; |
| | | TimeMgr.Instance.OnDayEvent -= OnDayEvent; |
| | | } |
| | | |
| | | private void OnFuncStateChangeEvent(int obj) |
| | | { |
| | | if (obj != funcId) |
| | | return; |
| | | UpdateRedPoint(); |
| | | } |
| | | |
| | | private void OnDayEvent() |
| | | { |
| | | UpdateRedPoint(); |
| | | } |
| | | |
| | | private void OnUpdateFBInfoChangeEvent(int mapID, bool isADAddCntChange, bool isBuyAddCntChange, bool isItemAddCntChange) |
| | | { |
| | | int dataMapID = DataMapID; |
| | | if (mapID != dataMapID) |
| | | return; |
| | | if (isADAddCntChange) |
| | | return; |
| | | UpdateRedPoint(); |
| | | } |
| | |
| | | public void UpdateRedPoint() |
| | | { |
| | | parentRedpoint.state = RedPointState.None; |
| | | // 有扫荡次数:免费+金币 |
| | | if (TryGetShowSweepCount(out int showSweepMaxCount, out int showrealRemainSweepCount)) |
| | | if (!FuncOpen.Instance.IsFuncOpen(funcId)) |
| | | return; |
| | | if (!DungeonManager.Instance.TryGetFBInfoByMapID(DataMapID, out var fbInfo)) |
| | | return; |
| | | bool isHasNextLineID = IsHasNextLineID(fbInfo); |
| | | int nowPassLineID = GetNowPassLineID(fbInfo); |
| | | DungeonConfig.TryGetDungeonID(DataMapID, nowPassLineID, out int dungeonID); |
| | | if (!DungeonConfig.HasKey(dungeonID)) |
| | | return; |
| | | DungeonConfig dungeonConfig = DungeonConfig.Get(dungeonID); |
| | | bool isLvOk = PlayerDatas.Instance.baseData.LV >= dungeonConfig.LVLimitMin; |
| | | long myFightPower = PlayerDatas.Instance.baseData.FightPower; |
| | | if (myFightPower >= dungeonConfig.FightPower) |
| | | { |
| | | bool isSweepCountOk = showrealRemainSweepCount > 0; |
| | | if (isSweepCountOk) |
| | | if (isLvOk && isHasNextLineID) |
| | | { |
| | | parentRedpoint.state = RedPointState.Simple; |
| | | } |
| | | } |
| | | //可挑战 战力小于boss |
| | | if (DungeonManager.Instance.TryGetFBInfoByMapID(DataMapID, out var fbInfo)) |
| | | else |
| | | { |
| | | bool isHasNextLineID = IsHasNextLineID(fbInfo); |
| | | int nowPassLineID = GetNowPassLineID(fbInfo); |
| | | |
| | | DungeonConfig.TryGetDungeonID(DataMapID, nowPassLineID, out int dungeonID); |
| | | if (DungeonConfig.HasKey(dungeonID)) |
| | | if (TryGetShowSweepCount(out int showSweepMaxCount, out int showrealRemainSweepCount)) |
| | | { |
| | | DungeonConfig dungeonConfig = DungeonConfig.Get(dungeonID); |
| | | bool isLvOk = PlayerDatas.Instance.baseData.LV >= dungeonConfig.LVLimitMin; |
| | | long myFightPower = PlayerDatas.Instance.baseData.FightPower; |
| | | if (isLvOk && isHasNextLineID && myFightPower > dungeonConfig.FightPower) |
| | | bool isSweepCountOk = showrealRemainSweepCount > 0; |
| | | if (isSweepCountOk) |
| | | { |
| | | parentRedpoint.state = RedPointState.Simple; |
| | | } |
| | |
| | | return true; |
| | | } |
| | | |
| | | public void SendTurnFight(int mapID, int funcLineID) |
| | | { |
| | | CB410_tagCMTurnFight pack = new CB410_tagCMTurnFight(); |
| | | pack.MapID = (uint)mapID; |
| | | pack.FuncLineID = (uint)funcLineID; |
| | | GameNetSystem.Instance.SendInfo(pack); |
| | | } |
| | | |
| | | public void SendBBeginFBWipeOut(int mapID, int lineID) |
| | | { |
| | | CA505_tagCMBeginFBWipeOut pack = new CA505_tagCMBeginFBWipeOut(); |
| | |
| | | pack.Cnt = 1; |
| | | GameNetSystem.Instance.SendInfo(pack); |
| | | } |
| | | |
| | | |
| | | |
| | | public void SendBuyEnterCount(int FBID) |
| | | { |
| | |
| | | |
| | | public void UpdateFBEnd(H0320_tagFBEnd vNetData) |
| | | { |
| | | if (vNetData.Msg.IsNullOrEmpty()) |
| | | if (vNetData.Msg == null) |
| | | return; |
| | | ChallengeResultData result = ChallengeResultData.FromJson(vNetData.Msg); |
| | | if (result == null || result.itemInfo.IsNullOrEmpty()) |