From b82d1347f6b6e44b9824f0b4d456a9245d07af5a Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期一, 12 十一月 2018 21:07:10 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/Dungeon/DungeonModel.cs |   90 ++++++++++++++++++++++++---------------------
 1 files changed, 48 insertions(+), 42 deletions(-)

diff --git a/System/Dungeon/DungeonModel.cs b/System/Dungeon/DungeonModel.cs
index 7df7e0a..32ed825 100644
--- a/System/Dungeon/DungeonModel.cs
+++ b/System/Dungeon/DungeonModel.cs
@@ -17,7 +17,7 @@
         Dictionary<int, DungeonRecord> dungeonRecords = new Dictionary<int, DungeonRecord>();
         Dictionary<int, DailyQuestOpenTime> dungeonOpenTimes = new Dictionary<int, DailyQuestOpenTime>();
         Dictionary<int, int[]> dungeonGradeRewardRate = new Dictionary<int, int[]>();
-        Dictionary<int, DungeonEnterCD> dungeonEnterDic = new Dictionary<int, DungeonEnterCD>();
+        Dictionary<int, DungeonEnterCoolDown> dungeonEnterDict = new Dictionary<int, DungeonEnterCoolDown>();
         Dictionary<int, string> dungeonBuyCntFormulaDic = new Dictionary<int, string>();
         Dictionary<int, int> mapIdToDataMapId = new Dictionary<int, int>();
         Dictionary<int, DateTime> dungeonCountRemainTimes = new Dictionary<int, DateTime>();
@@ -29,7 +29,7 @@
         public event Action updateMissionEvent;
         public event Action<int> dungeonStageChangeEvent;
         public event Action getDungeonResultEvent;
-        public event Action updateDungeonEnterCD;
+        public event Action dungeonEnterCoolDownUpdate;
         public event Action updateDungeonBuyCnt;
         public event Action dungeonFairyLandChangeEvent;
         public event Action dungeonInspireLvEvent;
@@ -319,7 +319,7 @@
             var dungeonId = GetDungeonId(_dungeon);
             var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
 
-            if (IsEnterCountDowning(_dungeon.mapId))
+            if (IsEnterCountDown(_dungeon.mapId))
             {
                 _error = 1;
                 return false;
@@ -654,50 +654,51 @@
             }
         }
 
-        public DungeonEnterCD GetEnterCD(int _mapID)
+        public DungeonEnterCoolDown GetEnterCoolDown(int _mapID)
         {
-            if (dungeonEnterDic.ContainsKey(_mapID))
+            if (dungeonEnterDict.ContainsKey(_mapID))
             {
-                return dungeonEnterDic[_mapID];
+                return dungeonEnterDict[_mapID];
             }
             return null;
         }
 
-        public bool HasEnterCD(int _mapID)
+        public bool ContainsDungeonEnter(int _mapID)
         {
-            return dungeonEnterDic.ContainsKey(_mapID);
+            return dungeonEnterDict.ContainsKey(_mapID);
         }
 
-        public bool IsEnterCountDowning(int _mapID)
+        public bool IsEnterCountDown(int _mapID)
         {
-            var cd = GetEnterCD(_mapID);
-            if (cd == null)
+            var dungeonEnterInfo = GetEnterCoolDown(_mapID);
+            if (dungeonEnterInfo == null)
             {
                 return false;
             }
 
-            if (cd.dungeonSurplusTime == 0)
+            if (dungeonEnterInfo.level != 0
+                && PlayerDatas.Instance.baseData.LV >= dungeonEnterInfo.level)
             {
                 return false;
             }
 
-            return (cd.overdueTime - DateTime.Now).TotalSeconds > 0;
+            return (dungeonEnterInfo.endCoolDownTime - TimeUtility.ServerNow).TotalSeconds > 0;
         }
 
-        public void UpdateEnterCD(HA703_tagMCFBEnterTickList.tagMCFBEnterTick[] vNetDatas)
+        public void UpdateEnterCoolDown(HA703_tagMCFBEnterTickList.tagMCFBEnterTick[] vNetDatas)
         {
             for (int i = 0; i < vNetDatas.Length; i++)
             {
                 var data = vNetDatas[i];
-                if (dungeonEnterDic.ContainsKey((int)data.MapID))
+                if (dungeonEnterDict.ContainsKey((int)data.MapID))
                 {
-                    dungeonEnterDic[(int)data.MapID].SetEnterTime(data.LastEnterTick);
+                    dungeonEnterDict[(int)data.MapID].SetEnterTime(data.LastEnterTick);
                 }
             }
 
-            if (updateDungeonEnterCD != null)
+            if (dungeonEnterCoolDownUpdate != null)
             {
-                updateDungeonEnterCD();
+                dungeonEnterCoolDownUpdate();
             }
         }
 
@@ -1350,45 +1351,50 @@
                 }
             }
 
-            FuncConfigConfig funcCfg = Config.Instance.Get<FuncConfigConfig>("FBEnterCD");
-            if (funcCfg != null)
+            var funcConfig = Config.Instance.Get<FuncConfigConfig>("FBEnterCD");
+            if (funcConfig != null)
             {
-                Dictionary<int, uint> dic = ConfigParse.GetDic<int, uint>(funcCfg.Numerical1);
-                foreach (var key in dic.Keys)
+                Dictionary<int, int> dict = ConfigParse.GetDic<int, int>(funcConfig.Numerical1);
+                foreach (var key in dict.Keys)
                 {
-                    DungeonEnterCD data = new DungeonEnterCD();
+                    DungeonEnterCoolDown data = new DungeonEnterCoolDown();
                     data.mapId = key;
-                    data.enterCd = dic[key];
-                    dungeonEnterDic.Add(key, data);
+                    data.duration = dict[key];
+                    dungeonEnterDict.Add(key, data);
                 }
-                dic = ConfigParse.GetDic<int, uint>(funcCfg.Numerical2);
-                foreach (var key in dic.Keys)
+                dict = ConfigParse.GetDic<int, int>(funcConfig.Numerical2);
+                foreach (var key in dict.Keys)
                 {
-                    dungeonEnterDic[key].SetCost(dic[key]);
+                    dungeonEnterDict[key].clearCoolDownCost = dict[key];
+                }
+                dict = ConfigParse.GetDic<int, int>(funcConfig.Numerical3);
+                foreach (var key in dict.Keys)
+                {
+                    dungeonEnterDict[key].level = dict[key];
                 }
             }
 
-            funcCfg = Config.Instance.Get<FuncConfigConfig>("BuyFBCntCost");
-            if (funcCfg != null)
+            funcConfig = Config.Instance.Get<FuncConfigConfig>("BuyFBCntCost");
+            if (funcConfig != null)
             {
-                JsonData jsonData = JsonMapper.ToObject(funcCfg.Numerical1);
+                JsonData jsonData = JsonMapper.ToObject(funcConfig.Numerical1);
                 foreach (var key in jsonData.Keys)
                 {
                     int _mapId = int.Parse(key);
                     dungeonBuyCntFormulaDic.Add(_mapId, jsonData[key].ToString());
                 }
             }
-            funcCfg = Config.Instance.Get<FuncConfigConfig>("MunekadoMapID");
-            if (funcCfg != null)
+            funcConfig = Config.Instance.Get<FuncConfigConfig>("MunekadoMapID");
+            if (funcConfig != null)
             {
-                trialDungeonMapList.AddRange(ConfigParse.GetMultipleStr<int>(funcCfg.Numerical1));
+                trialDungeonMapList.AddRange(ConfigParse.GetMultipleStr<int>(funcConfig.Numerical1));
             }
 
-            funcCfg = Config.Instance.Get<FuncConfigConfig>("FBEncourageBuff");
-            if (funcCfg != null)
+            funcConfig = Config.Instance.Get<FuncConfigConfig>("FBEncourageBuff");
+            if (funcConfig != null)
             {
-                dungeonMaxInspireCountDict = ConfigParse.GetDic<int, int>(funcCfg.Numerical2);
-                dungeonInspireUpperDict = ConfigParse.GetDic<int, int>(funcCfg.Numerical3);
+                dungeonMaxInspireCountDict = ConfigParse.GetDic<int, int>(funcConfig.Numerical2);
+                dungeonInspireUpperDict = ConfigParse.GetDic<int, int>(funcConfig.Numerical3);
             }
 
             foreach (var _cfg in Config.Instance.GetAllValues<DungeonInspireConfig>())
@@ -1402,11 +1408,11 @@
                 _list.Add(_cfg);
             }
 
-            funcCfg = Config.Instance.Get<FuncConfigConfig>("FamilyInvadeCfg");
-            if (funcCfg != null)
+            funcConfig = Config.Instance.Get<FuncConfigConfig>("FamilyInvadeCfg");
+            if (funcConfig != null)
             {
-                guardSkyBuffIds = JsonMapper.ToObject<int[]>(funcCfg.Numerical4);
-                guardSkyGuardNpcs = JsonMapper.ToObject<int[]>(funcCfg.Numerical5);
+                guardSkyBuffIds = JsonMapper.ToObject<int[]>(funcConfig.Numerical4);
+                guardSkyGuardNpcs = JsonMapper.ToObject<int[]>(funcConfig.Numerical5);
             }
         }
 

--
Gitblit v1.8.0