少年修仙传客户端代码仓库
hch
2019-10-18 442186a9a8563e821811b003001081e6554596c1
8286 封魔坛优化
4个文件已修改
62 ■■■■■ 已修改文件
Core/NetworkPackage/ServerPack/HB2_DemonJar/HB209_tagMCFBCntRegainRemainTime.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonModel.cs 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/DemonJarModel.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/DemonJarWin.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HB2_DemonJar/HB209_tagMCFBCntRegainRemainTime.cs
@@ -22,6 +22,7 @@
            InfoList[i] = new tagMCFBCntRegain();
            TransBytes(out InfoList[i].DataMapID, vBytes, NetDataType.DWORD);
            TransBytes(out InfoList[i].RemainTime, vBytes, NetDataType.DWORD);
            TransBytes(out InfoList[i].RegainCnt, vBytes, NetDataType.BYTE);
        }
    }
@@ -29,6 +30,7 @@
    {
        public uint DataMapID;        // 地图ID
        public uint RemainTime;        // 剩余时间秒
        public byte RegainCnt;         // 今日已恢复次数
    }
}
System/Dungeon/DungeonModel.cs
@@ -24,7 +24,10 @@
        Dictionary<int, List<DungeonInspireConfig>> dungeonInspireDict = new Dictionary<int, List<DungeonInspireConfig>>();
        Dictionary<int, int> dungeonCollectNpcInfos = new Dictionary<int, int>();
        Dictionary<int, int> dungeonNpcAttackInfos = new Dictionary<int, int>();
        Dictionary<int, int> dungeonCoverCount = new Dictionary<int, int>();
        List<int> trialDungeonMapList = new List<int>();
        Dictionary<int, int[]> FBCoverCountDict = new Dictionary<int, int[]>();
        public event Action<DungeonCoolDownType> dungeonCoolDownEvent;
        public event Action dungeonBeginCoolDownEndEvent;
@@ -160,6 +163,26 @@
            return dungeonCountRemainTimes.TryGetValue(_dataMapId, out _remainTime) && _remainTime > DateTime.Now;
        }
        public int GetCoverCount(int _dataMapId)
        {
            int count;
            if (!dungeonCoverCount.TryGetValue(_dataMapId, out count)) count = 0;
            int[] allCount;
            if (!FBCoverCountDict.TryGetValue(_dataMapId, out allCount))
                return 0 ;
            return allCount[0] - count;
        }
        public int GetCoverCountYet(int _dataMapId)
        {
            int count;
            if (!dungeonCoverCount.TryGetValue(_dataMapId, out count)) count = 0;
            return count;
        }
        public int GetGrade(Dungeon _dungeon)
        {
            if (dungeonRecords.ContainsKey(_dungeon.mapId))
@@ -227,7 +250,7 @@
                    break;
            }
            return totalTimes;
            return totalTimes + GetCoverCountYet(_dataMapId);
        }
        public int GetBoughtTimes(int _dataMapId)
@@ -759,11 +782,17 @@
        public void UpdateCountRemaintime(HB209_tagMCFBCntRegainRemainTime _serverTimes)
        {
            for (int i = 0; i < _serverTimes.InfoList.Length; i++)
            {
                var info = _serverTimes.InfoList[i];
                dungeonCountRemainTimes[(int)info.DataMapID] = TimeUtility.ServerNow
                int mapID = (int)info.DataMapID;
                dungeonCountRemainTimes[mapID] = TimeUtility.ServerNow
                    + new TimeSpan(TimeSpan.TicksPerSecond * info.RemainTime);
                // 获取FB已恢复次数
                dungeonCoverCount[mapID] = (int)info.RegainCnt;
                if (countRemainTimeChangeEvent != null)
                {
@@ -1550,6 +1579,18 @@
                guardSkyBuffIds = JsonMapper.ToObject<int[]>(funcConfig.Numerical4);
                guardSkyGuardNpcs = JsonMapper.ToObject<int[]>(funcConfig.Numerical5);
            }
            funcConfig = FuncConfigConfig.Get("FBCntRegainInterval");
            var json = LitJson.JsonMapper.ToObject(funcConfig.Numerical1);
            foreach (var key in json.Keys)
            {
                var mapID = int.Parse(key);
                var array = LitJson.JsonMapper.ToObject<int[]>(json[key].ToJson());
                FBCoverCountDict[mapID] = array;
            }
        }
    }
System/FindPrecious/DemonJarModel.cs
@@ -97,12 +97,14 @@
            dungeonModel.dungeonRecordChangeEvent += OnDungeonRecordUpdate;
            dungeonModel.updateDungeonBuyCnt += OnDungeonBuyCount;
            dungeonModel.countRemainTimeChangeEvent += OnDungeonUpdateRedPoint;
        }
        public override void UnInit()
        {
            dungeonModel.dungeonRecordChangeEvent -= OnDungeonRecordUpdate;
            dungeonModel.updateDungeonBuyCnt -= OnDungeonBuyCount;
            dungeonModel.countRemainTimeChangeEvent -= OnDungeonUpdateRedPoint;
        }
        public void OnBeforePlayerDataInitialize()
@@ -491,6 +493,15 @@
            }
        }
        private void OnDungeonUpdateRedPoint(int mapid)
        {
            if (PlayerDatas.Instance.baseData.LV >= GeneralDefine.demonJarRedPoint)
            {
                UpdateRedpoint();
            }
        }
        private void OnDungeonBuyCount()
        {
            if (PlayerDatas.Instance.baseData.LV >= GeneralDefine.demonJarRedPoint)
System/FindPrecious/DemonJarWin.cs
@@ -30,6 +30,8 @@
        [SerializeField] RectTransform m_ContainerDouble;
        [SerializeField] Button m_BtnAutoAndDouble;
        [SerializeField] Text m_Count;
        [SerializeField] Text m_CountOver;
        DemonJarModel model { get { return ModelCenter.Instance.GetModel<DemonJarModel>(); } }
        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
@@ -264,6 +266,7 @@
                {
                    m_CountRemainTime.gameObject.SetActive(true);
                    m_CountRemainTime.Begin((int)(endTime - TimeUtility.ServerNow).TotalSeconds);
                    m_Count.text = Language.Get("FindPrecious_7", dungeonModel.GetCoverCount(DemonJarModel.DATA_MAPID));
                }
                else
                {
@@ -274,6 +277,7 @@
            {
                m_CountRemainTime.gameObject.SetActive(false);
            }
            m_CountOver.gameObject.SetActive(dungeonModel.GetCoverCount(DemonJarModel.DATA_MAPID) == 0);
        }