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

---
 System/HazyRegion/HazyRegionIncidentPanel.cs |    5 +++++
 System/HazyRegion/HazyRegionModel.cs         |   25 ++++++++++++++++++++++++-
 Fight/Stage/Dungeon/AdventureStage.cs        |   12 +++++++++---
 System/Activity/ActivityModel.cs             |    4 ++--
 4 files changed, 40 insertions(+), 6 deletions(-)

diff --git a/Fight/Stage/Dungeon/AdventureStage.cs b/Fight/Stage/Dungeon/AdventureStage.cs
index 8ee2943..af11858 100644
--- a/Fight/Stage/Dungeon/AdventureStage.cs
+++ b/Fight/Stage/Dungeon/AdventureStage.cs
@@ -11,7 +11,8 @@
     private Vector3 m_CacheHeroPos;
     private GA_NpcClientFunc m_Npc;
 
-    public event Action onLoadAdventureStageFinish;
+    public event Action onLoadAdventureStage;
+    public event Action onExitAdventureStage;
 
     HazyRegionModel hazyRegionModel { get { return ModelCenter.Instance.GetModel<HazyRegionModel>(); } }
 
@@ -50,9 +51,9 @@
         NPCInteractProcessor.s_NpcInteractEvent -= OnNpcTalkEvent;
         NPCInteractProcessor.s_NpcInteractEvent += OnNpcTalkEvent;
 
-        if (onLoadAdventureStageFinish != null)
+        if (onLoadAdventureStage != null)
         {
-            onLoadAdventureStageFinish();
+            onLoadAdventureStage();
         }
     }
 
@@ -77,6 +78,11 @@
         CameraController.Instance.Apply();
         yield return null;
         WindowCenter.Instance.Close<LoadingWin>();
+
+        if (onExitAdventureStage != null)
+        {
+            onExitAdventureStage();
+        }
     }
 
     private void OnNpcTalkEvent(E_NpcType type, int npcid, uint sid)
diff --git a/System/Activity/ActivityModel.cs b/System/Activity/ActivityModel.cs
index bfef83a..fac1b47 100644
--- a/System/Activity/ActivityModel.cs
+++ b/System/Activity/ActivityModel.cs
@@ -37,7 +37,7 @@
             PlayerDatas.Instance.fairyData.OnRefreshFairyBoss += CheckActivity;
             StageLoad.Instance.onStageLoadFinish += OnStageLoadFinish;
             NewBieCenter.Instance.guideCompletedEvent += GuideCompletedEvent;
-            AdventureStage.Instance.onLoadAdventureStageFinish += OnLoadAdventureStageFinish;
+            AdventureStage.Instance.onLoadAdventureStage += OnLoadAdventureStageFinish;
 
             var _funcCfg = FuncConfigConfig.Get("SpecialActivitys");
             var _json = LitJson.JsonMapper.ToObject(_funcCfg.Numerical1);
@@ -60,7 +60,7 @@
             fairyLeagueModel.onFairyLeagueBattleEvent -= CheckActivity;
             fairyLeagueModel.OnRefreshFairyLeagueEvent -= CheckActivity;
             PlayerDatas.Instance.fairyData.OnRefreshFairyBoss -= CheckActivity;
-            AdventureStage.Instance.onLoadAdventureStageFinish -= OnLoadAdventureStageFinish;
+            AdventureStage.Instance.onLoadAdventureStage -= OnLoadAdventureStageFinish;
         }
 
         IEnumerator Co_GuideComplete()
diff --git a/System/HazyRegion/HazyRegionIncidentPanel.cs b/System/HazyRegion/HazyRegionIncidentPanel.cs
index 6a4d618..d12f58d 100644
--- a/System/HazyRegion/HazyRegionIncidentPanel.cs
+++ b/System/HazyRegion/HazyRegionIncidentPanel.cs
@@ -60,6 +60,11 @@
 
         private void OnBack()
         {
+            if (model.IsIncidentDungeon())
+            {
+
+                return;
+            }
             ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get(""), (bool isOk) =>
                {
                    if (isOk)
diff --git a/System/HazyRegion/HazyRegionModel.cs b/System/HazyRegion/HazyRegionModel.cs
index a002b63..1be68d4 100644
--- a/System/HazyRegion/HazyRegionModel.cs
+++ b/System/HazyRegion/HazyRegionModel.cs
@@ -48,6 +48,7 @@
             ParseConfig();
 
             StageLoad.Instance.onStageLoadFinish += OnStageLoadFinish;
+            AdventureStage.Instance.onExitAdventureStage += OnExitAdventureStage;
         }
 
         public void OnBeforePlayerDataInitialize()
@@ -67,6 +68,12 @@
         public override void UnInit()
         {
             StageLoad.Instance.onStageLoadFinish -= OnStageLoadFinish;
+            AdventureStage.Instance.onExitAdventureStage -= OnExitAdventureStage;
+        }
+
+        private void OnExitAdventureStage()
+        {
+            SnxxzGame.Instance.StartCoroutine(Co_TryOpenHazyRegionWin());
         }
 
         private void OnStageLoadFinish()
@@ -97,7 +104,10 @@
             {
                 yield break;
             }
-            WindowCenter.Instance.Open<CrossServerWin>(false, 2);
+            if (WindowCenter.Instance.IsOpen<MainInterfaceWin>())
+            {
+                WindowCenter.Instance.Open<CrossServerWin>(false, 2);
+            }
         }
 
         void ParseConfig()
@@ -236,6 +246,19 @@
             return false;
         }
 
+        public bool IsIncidentDungeon()
+        {
+            if (AdventureStage.Instance.IsInAdventureStage)
+            {
+                return true;
+            }
+            if (IsIncidentDungeon(PlayerDatas.Instance.baseData.MapID))
+            {
+                return true;
+            }
+            return false;
+        }
+
         public void DisplayErrorRemind(int error)
         {
             switch (error)

--
Gitblit v1.8.0