From d29efe9bfbfe8b89a9f7206d2f510de4af2f8e95 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期二, 09 四月 2019 10:29:23 +0800
Subject: [PATCH] 3335 缥缈仙域

---
 System/HazyRegion/HazyRegionIncidentPanel.cs     |    2 
 System/HazyRegion/HazyRegionModel.cs             |   37 ++++++++++++++++++
 System/HazyRegion/HazyRegionWin.cs               |    2 +
 System/HazyRegion/HazyRegionBuyTimesWin.cs       |   14 ++++++
 System/HazyRegion/HazyRegionIncidentBehaviour.cs |   14 +++---
 Utility/ConfigInitiator.cs                       |    3 +
 System/HazyRegion/HazyRegionEntrancePanel.cs     |   17 +++++++-
 System/DailyQuest/DailyQuestWin.cs               |    4 ++
 8 files changed, 80 insertions(+), 13 deletions(-)

diff --git a/System/DailyQuest/DailyQuestWin.cs b/System/DailyQuest/DailyQuestWin.cs
index 14c6b7b..893f3b9 100644
--- a/System/DailyQuest/DailyQuestWin.cs
+++ b/System/DailyQuest/DailyQuestWin.cs
@@ -317,6 +317,10 @@
                 case DailyQuestType.AllianceBoss2:
                     GotoAllianceBoss(_id, 1);
                     break;
+                case DailyQuestType.HazyRegion:
+                    WindowCenter.Instance.Close<DailyQuestWin>();
+                    WindowCenter.Instance.Open<CrossServerWin>(false, 2);
+                    break;
                 //case DailyQuestType.JadeDynastyBoss:
                 //    WindowCenter.Instance.Close<DailyQuestWin>();
                 //    WindowCenter.Instance.Open<LootPreciousFrameWin>(false, 3);
diff --git a/System/HazyRegion/HazyRegionBuyTimesWin.cs b/System/HazyRegion/HazyRegionBuyTimesWin.cs
index 0572b0a..f6b6540 100644
--- a/System/HazyRegion/HazyRegionBuyTimesWin.cs
+++ b/System/HazyRegion/HazyRegionBuyTimesWin.cs
@@ -24,6 +24,7 @@
 
         [SerializeField] Button m_Close;
 
+        HazyRegionModel model { get { return ModelCenter.Instance.GetModel<HazyRegionModel>(); } }
         PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
         DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
         #region Built-in
@@ -110,7 +111,8 @@
 
         private void DailyQuestProgressUpdateEvent(int id)
         {
-            if (id == (int)DailyQuestType.HazyRegion)
+            var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
+            if (config != null && id == config.RelatedID)
             {
                 DisplayTimes();
             }
@@ -150,6 +152,11 @@
                 return;
             }
 
+            if (!model.TryAddTimes())
+            {
+                return;
+            }
+
             var itemCount = packModel.GetItemCountByID(PackType.Item, dailyQuestOpenTime.DayItemID);
             if (itemCount <= 0)
             {
@@ -181,6 +188,11 @@
                 return;
             }
 
+            if (!model.TryAddTimes())
+            {
+                return;
+            }
+
             if (PlayerDatas.Instance.baseData.diamond < dailyQuestOpenTime.BuyNeedMoney)
             {
                 WindowCenter.Instance.Open<RechargeTipWin>();
diff --git a/System/HazyRegion/HazyRegionEntrancePanel.cs b/System/HazyRegion/HazyRegionEntrancePanel.cs
index 551ad55..edac010 100644
--- a/System/HazyRegion/HazyRegionEntrancePanel.cs
+++ b/System/HazyRegion/HazyRegionEntrancePanel.cs
@@ -32,10 +32,14 @@
 
         void DisplayTimes()
         {
+            var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
+            var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
+            var limitTimes = dailyQuestOpenTime.DayTimes;
+
             var totalTimes = dailyQuestModel.GetDailyQuestTotalTimes((int)DailyQuestType.HazyRegion);
             var completedTimes = dailyQuestModel.GetDailyQuestCompletedTimes((int)DailyQuestType.HazyRegion);
-            var times = Mathf.Clamp(totalTimes - completedTimes, 0, totalTimes);
-            m_Times.text = StringUtility.Contact(times, "/", totalTimes);
+            var times = Mathf.Clamp(totalTimes - completedTimes, 0, limitTimes);
+            m_Times.text = StringUtility.Contact(times, "/", limitTimes);
         }
 
         void DisplayOpenTime()
@@ -73,6 +77,12 @@
             {
                 return;
             }
+
+            if (!model.TryAddTimes())
+            {
+                return;
+            }
+
             WindowCenter.Instance.Open<HazyRegionBuyTimesWin>();
         }
 
@@ -119,7 +129,8 @@
 
         private void DailyQuestProgressUpdateEvent(int id)
         {
-            if (id == (int)DailyQuestType.HazyRegion)
+            var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
+            if (config != null && id == config.RelatedID)
             {
                 DisplayTimes();
             }
diff --git a/System/HazyRegion/HazyRegionIncidentBehaviour.cs b/System/HazyRegion/HazyRegionIncidentBehaviour.cs
index bee0116..44722ea 100644
--- a/System/HazyRegion/HazyRegionIncidentBehaviour.cs
+++ b/System/HazyRegion/HazyRegionIncidentBehaviour.cs
@@ -56,11 +56,11 @@
             var config = HazyRegionConfig.Get(incidentId);
             incidentType = (HazyRegionIncidentType)config.incidentType;
 
-            DisplayBase();
-            DisplayItems();
-            DisplayState();
-            DisplaySelect();
-            DisplayBoss();
+            //DisplayBase();
+            //DisplayItems();
+            //DisplayState();
+            //DisplaySelect();
+            //DisplayBoss();
 
             model.selectIncidentRefresh -= SelectIncidentRefresh;
             model.selectIncidentRefresh += SelectIncidentRefresh;
@@ -127,12 +127,12 @@
 
         private void SelectIncidentRefresh()
         {
-            DisplaySelect();
+            //DisplaySelect();
         }
 
         private void OnHazyRegionIncidentRefresh()
         {
-            DisplayState();
+            //DisplayState();
         }
 
         private void OnSelect()
diff --git a/System/HazyRegion/HazyRegionIncidentPanel.cs b/System/HazyRegion/HazyRegionIncidentPanel.cs
index 8cf3acd..ed24bb2 100644
--- a/System/HazyRegion/HazyRegionIncidentPanel.cs
+++ b/System/HazyRegion/HazyRegionIncidentPanel.cs
@@ -26,7 +26,7 @@
 
         public void Display()
         {
-            DisplayPoint();
+            //DisplayPoint();
             DisplayIncidents();
         }
 
diff --git a/System/HazyRegion/HazyRegionModel.cs b/System/HazyRegion/HazyRegionModel.cs
index 208e2a6..0084604 100644
--- a/System/HazyRegion/HazyRegionModel.cs
+++ b/System/HazyRegion/HazyRegionModel.cs
@@ -34,6 +34,9 @@
         public event Action<int> onHazyRegionStateRefresh;  //0-缁撴潫鎷滆 1-寮�濮嬫嫓璁� 2-寮哄埗鍒锋柊
         public event Action onHazyRegionIncidentRefresh;
 
+        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
+        DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
+
         public override void Init()
         {
             ParseConfig();
@@ -59,6 +62,8 @@
 
         void ParseConfig()
         {
+            var funcConfig = FuncConfigConfig.Get("ImmortalDomainStrength");
+            limitPoint = int.Parse(funcConfig.Numerical1);
         }
 
         public bool TryGetIncident(int id, out Incident incident)
@@ -118,9 +123,40 @@
             return true;
         }
 
+        public bool TryAddTimes()
+        {
+            var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
+            var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
+            var limitTimes = dailyQuestOpenTime.DayTimes;
+
+            var totalTimes = dailyQuestModel.GetDailyQuestTotalTimes((int)DailyQuestType.HazyRegion);
+            var completedTimes = dailyQuestModel.GetDailyQuestCompletedTimes((int)DailyQuestType.HazyRegion);
+            var times = Mathf.Clamp(totalTimes - completedTimes, 0, limitTimes);
+
+            if (times >= limitTimes)
+            {
+                return false;
+            }
+
+            return true;
+        }
+
         public ICollection<int> GetAllIncidents()
         {
             return m_Incidents.Keys;
+        }
+
+        public int GetIncidentId(int mapId, int lineId)
+        {
+            var configs = HazyRegionConfig.GetValues();
+            foreach (var config in configs)
+            {
+                if (config.dungeonId == mapId && config.lineId == lineId)
+                {
+                    return config.id;
+                }
+            }
+            return 0;
         }
 
         public void DisplayErrorRemind(int error)
@@ -143,6 +179,7 @@
                 case HazyRegionIncidentType.FairyGrass:
                 case HazyRegionIncidentType.ReikiGrass:
                 case HazyRegionIncidentType.Precious:
+                    dungeonModel.SingleChallenge(config.dungeonId, config.lineId);
                     break;
             }
         }
diff --git a/System/HazyRegion/HazyRegionWin.cs b/System/HazyRegion/HazyRegionWin.cs
index dc6d881..cf4842f 100644
--- a/System/HazyRegion/HazyRegionWin.cs
+++ b/System/HazyRegion/HazyRegionWin.cs
@@ -126,11 +126,13 @@
         void CloseHazyRegionIncident()
         {
             m_IncidentPanel.Dispose();
+            m_IncidentPanel.gameObject.SetActive(false);
         }
 
         void CloseHazyRegionEntrance()
         {
             m_EntrancePanel.Dispose();
+            m_EntrancePanel.gameObject.SetActive(false);
         }
 
         private void OnHazyRegionStateRefresh(int state)
diff --git a/Utility/ConfigInitiator.cs b/Utility/ConfigInitiator.cs
index f52ff63..4c5adc6 100644
--- a/Utility/ConfigInitiator.cs
+++ b/Utility/ConfigInitiator.cs
@@ -288,7 +288,8 @@
         normalTasks.Add(new ConfigInitTask("LegendPropertyValueConfig", () => { LegendPropertyValueConfig.Init(); }, () => { return LegendPropertyValueConfig.inited; }));
         normalTasks.Add(new ConfigInitTask("LegendPropertyConfig", () => { LegendPropertyConfig.Init(); }, () => { return LegendPropertyConfig.inited; }));
         normalTasks.Add(new ConfigInitTask("EquipSuitNameConfig", () => { EquipSuitNameConfig.Init(); }, () => { return EquipSuitNameConfig.inited; }));
-        normalTasks.Add(new ConfigInitTask("ReikiRootConfig", () => { ReikiRootConfig.Init(); }, () => { return ReikiRootConfig.inited; }));
+        normalTasks.Add(new ConfigInitTask("ReikiRootConfig", () => { ReikiRootConfig.Init(); }, () => { return ReikiRootConfig.inited; }));
+        normalTasks.Add(new ConfigInitTask("HazyRegionConfig", () => { HazyRegionConfig.Init(); }, () => { return HazyRegionConfig.inited; }));
     }
 
     static List<ConfigInitTask> doingTasks = new List<ConfigInitTask>();

--
Gitblit v1.8.0