hch
68 分钟以前 8a2d52c24c60af2bf6e3968e8dde9ddcb5ccffba
Main/System/BoneField/BoneFieldManager.cs
@@ -1,18 +1,18 @@
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;
    }
@@ -21,16 +21,28 @@
        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();
    }
@@ -50,28 +62,31 @@
    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;
                }
@@ -117,14 +132,6 @@
        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();
@@ -133,8 +140,6 @@
        pack.Cnt = 1;
        GameNetSystem.Instance.SendInfo(pack);
    }
    public void SendBuyEnterCount(int FBID)
    {
@@ -145,7 +150,7 @@
    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())