From af034bdba935e0ff027cbcc113d4a9abe2c1f1cc Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期五, 12 四月 2019 11:38:08 +0800
Subject: [PATCH] 3335 缥缈仙域

---
 System/HazyRegion/HazyRegionModel.cs               |    8 +
 System/Dungeon/DungeonReturnBloodBehaviour.cs      |   24 ++++++
 System/HazyRegion/HazyDemonKingModel.cs            |   14 +-
 System/Dungeon/DungeonReturnBloodBehaviour.cs.meta |   12 +++
 System/Dungeon/DungeonFightWin.cs                  |   12 +++
 System/HazyRegion/ClientHazyDemonKingStage.cs      |    2 
 System/HazyRegion/ClientHazyGrassStage.cs          |   37 +++++++++
 System/HazyRegion/ClientHazyGrassStage.cs.meta     |   12 +++
 Fight/Stage/StageLoadProcessor.cs                  |    2 
 System/HazyRegion/HazyGrassModel.cs                |   69 +++++++++++++++++
 System/HazyRegion/HazyGrassModel.cs.meta           |   12 +++
 11 files changed, 194 insertions(+), 10 deletions(-)

diff --git a/Fight/Stage/StageLoadProcessor.cs b/Fight/Stage/StageLoadProcessor.cs
index b60987d..d32566e 100644
--- a/Fight/Stage/StageLoadProcessor.cs
+++ b/Fight/Stage/StageLoadProcessor.cs
@@ -402,7 +402,7 @@
                 case DemonJarModel.DEMONJAR_SINGLEMAPID:
                     stage = stageGameObject.AddComponent<FakeDemonJarDungeonStage>();
                     break;
-                case HazyDemonKingModel.ClientMAPID:
+                case HazyDemonKingModel.Client_MapID:
                     stage = stageGameObject.AddComponent<ClientHazyDemonKingStage>();
                     break;
                 default:
diff --git a/System/Dungeon/DungeonFightWin.cs b/System/Dungeon/DungeonFightWin.cs
index 16c2c38..7abac47 100644
--- a/System/Dungeon/DungeonFightWin.cs
+++ b/System/Dungeon/DungeonFightWin.cs
@@ -213,6 +213,18 @@
 
         private void ExitDungeon()
         {
+            if (StageLoad.Instance.currentStage is ClientHazyDemonKingStage)
+            {
+                ModelCenter.Instance.GetModel<HazyDemonKingModel>().RequestExitClientDungeon();
+                return;
+            }
+
+            if (StageLoad.Instance.currentStage is ClientHazyGrassStage)
+            {
+                ModelCenter.Instance.GetModel<HazyGrassModel>().RequestExitClientDungeon();
+                return;
+            }
+
             var dataMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
             var config = DungeonOpenTimeConfig.Get(dataMapId);
             string language = string.Empty;
diff --git a/System/Dungeon/DungeonReturnBloodBehaviour.cs b/System/Dungeon/DungeonReturnBloodBehaviour.cs
new file mode 100644
index 0000000..6c742f7
--- /dev/null
+++ b/System/Dungeon/DungeonReturnBloodBehaviour.cs
@@ -0,0 +1,24 @@
+锘縰sing System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Snxxz.UI
+{
+    public class DungeonReturnBloodBehaviour : MonoBehaviour
+    {
+        [SerializeField] Button m_ReturnBlood;
+
+        private void Awake()
+        {
+            m_ReturnBlood.AddListener(OnReturnBlood);
+        }
+
+        private void OnReturnBlood()
+        {
+
+        }
+    }
+}
+
diff --git a/System/Dungeon/DungeonReturnBloodBehaviour.cs.meta b/System/Dungeon/DungeonReturnBloodBehaviour.cs.meta
new file mode 100644
index 0000000..7d89e64
--- /dev/null
+++ b/System/Dungeon/DungeonReturnBloodBehaviour.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 26e87c51a6c12d44ba94735d7e5bf5a1
+timeCreated: 1555038168
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/System/HazyRegion/ClientHazyDemonKingStage.cs b/System/HazyRegion/ClientHazyDemonKingStage.cs
index 4786146..bd0f263 100644
--- a/System/HazyRegion/ClientHazyDemonKingStage.cs
+++ b/System/HazyRegion/ClientHazyDemonKingStage.cs
@@ -137,7 +137,7 @@
     {
         if (GUILayout.Button("Exit"))
         {
-            model.RequestExistClientDungeon();
+            model.RequestExitClientDungeon();
         }
     }
 #endif
diff --git a/System/HazyRegion/ClientHazyGrassStage.cs b/System/HazyRegion/ClientHazyGrassStage.cs
new file mode 100644
index 0000000..de16e38
--- /dev/null
+++ b/System/HazyRegion/ClientHazyGrassStage.cs
@@ -0,0 +1,37 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+namespace Snxxz.UI
+{
+    public class ClientHazyGrassStage : DungeonStage
+    {
+
+        HazyGrassModel model { get { return ModelCenter.Instance.GetModel<HazyGrassModel>(); } }
+
+        public override void Initialize()
+        {
+            base.Initialize();
+        }
+
+        protected override void OnStageLoadFinish()
+        {
+            base.OnStageLoadFinish();
+        }
+
+        public override void UnInitialize()
+        {
+            base.UnInitialize();
+        }
+
+#if UNITY_EDITOR
+        private void OnGUI()
+        {
+            if (GUILayout.Button("Exit"))
+            {
+                model.RequestExitClientDungeon();
+            }
+        }
+#endif
+    }
+}
+
diff --git a/System/HazyRegion/ClientHazyGrassStage.cs.meta b/System/HazyRegion/ClientHazyGrassStage.cs.meta
new file mode 100644
index 0000000..1dc3e6c
--- /dev/null
+++ b/System/HazyRegion/ClientHazyGrassStage.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 19b261054bba1d549bd299402cfb6d5a
+timeCreated: 1555038314
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/System/HazyRegion/HazyDemonKingModel.cs b/System/HazyRegion/HazyDemonKingModel.cs
index b52be07..3bfafc1 100644
--- a/System/HazyRegion/HazyDemonKingModel.cs
+++ b/System/HazyRegion/HazyDemonKingModel.cs
@@ -12,7 +12,7 @@
 
         public int invincibleBuffId { get; private set; }
 
-        public const int ClientMAPID = 2000;
+        public const int Client_MapID = 2000;
 
         public event Action onPlayerInfoRefresh;
 
@@ -149,7 +149,7 @@
 
         public bool IsInDemonKingDungeon(int mapId)
         {
-            if (mapId == ClientMAPID)
+            if (mapId == Client_MapID)
             {
                 return true;
             }
@@ -189,7 +189,7 @@
         public bool IsExistBelongTo(uint playerId)
         {
             if (playerId == PlayerDatas.Instance.PlayerId
-                && ClientDungeonStageUtility.clientMapId == ClientMAPID)
+                && ClientDungeonStageUtility.clientMapId == Client_MapID)
             {
                 return true;
             }
@@ -199,13 +199,13 @@
         public void RequestEnterClientDungeon()
         {
             MapTransferUtility.Instance.Clear();
-            ClientDungeonStageUtility.SetClientDungeon(true, ClientMAPID);
+            ClientDungeonStageUtility.SetClientDungeon(true, Client_MapID);
             var sendInfo = new CA231_tagCMClientStartCustomScene();
             GameNetSystem.Instance.SendInfo(sendInfo);
             CrossServerLogin.Instance.SetWaitForLoginCrossServerState(false);
             StageLoad.Instance.PushSceneLoadCommand(new StageLoad.StageLoadCommand()
             {
-                toMapId = ClientMAPID,
+                toMapId = Client_MapID,
                 toLineId = 0,
                 needEmpty = true,
                 needLoadResource = true,
@@ -214,13 +214,13 @@
             });
 
             PlayerDatas.Instance.baseData.mainServerMapIdRecord = PlayerDatas.Instance.baseData.MapID;
-            PlayerDatas.Instance.baseData.MapID = ClientMAPID;
+            PlayerDatas.Instance.baseData.MapID = Client_MapID;
             var attackMode = new C030A_tagCChangeAttackMode();
             attackMode.Mode = (byte)E_AttackMode.Peace;
             GameNetSystem.Instance.PushPackage(attackMode, ServerType.Main);
         }
 
-        public void RequestExistClientDungeon()
+        public void RequestExitClientDungeon()
         {
             ClientDungeonStageUtility.SetClientDungeon(false, 0);
             PlayerDatas.Instance.extersion.pkState = 0;
diff --git a/System/HazyRegion/HazyGrassModel.cs b/System/HazyRegion/HazyGrassModel.cs
new file mode 100644
index 0000000..e8388e6
--- /dev/null
+++ b/System/HazyRegion/HazyGrassModel.cs
@@ -0,0 +1,69 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+namespace Snxxz.UI
+{
+    public class HazyGrassModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
+    {
+        public const int Client_MapID = 3000;
+
+        public override void Init()
+        {
+        }
+
+        public void OnBeforePlayerDataInitialize()
+        {
+        }
+
+        public void OnPlayerLoginOk()
+        {
+        }
+
+        public override void UnInit()
+        {
+        }
+
+        public void RequestEnterClientDungeon()
+        {
+            MapTransferUtility.Instance.Clear();
+            ClientDungeonStageUtility.SetClientDungeon(true, Client_MapID);
+            var sendInfo = new CA231_tagCMClientStartCustomScene();
+            GameNetSystem.Instance.SendInfo(sendInfo);
+            CrossServerLogin.Instance.SetWaitForLoginCrossServerState(false);
+            StageLoad.Instance.PushSceneLoadCommand(new StageLoad.StageLoadCommand()
+            {
+                toMapId = Client_MapID,
+                toLineId = 0,
+                needEmpty = true,
+                needLoadResource = true,
+                serverType = ServerType.Main,
+                isClientLoadMap = true
+            });
+
+            PlayerDatas.Instance.baseData.mainServerMapIdRecord = PlayerDatas.Instance.baseData.MapID;
+            PlayerDatas.Instance.baseData.MapID = Client_MapID;
+            var attackMode = new C030A_tagCChangeAttackMode();
+            attackMode.Mode = (byte)E_AttackMode.Peace;
+            GameNetSystem.Instance.PushPackage(attackMode, ServerType.Main);
+        }
+
+        public void RequestExitClientDungeon()
+        {
+            ClientDungeonStageUtility.SetClientDungeon(false, 0);
+            PlayerDatas.Instance.extersion.pkState = 0;
+            ModelCenter.Instance.GetModel<DungeonModel>().ResetBufData();
+
+            PlayerDatas.Instance.baseData.MapID = PlayerDatas.Instance.baseData.mainServerMapIdRecord;
+            StageLoad.Instance.PushSceneLoadCommand(new StageLoad.StageLoadCommand()
+            {
+                toMapId = PlayerDatas.Instance.baseData.MapID,
+                toLineId = 0,
+                needEmpty = true,
+                needLoadResource = true,
+                serverType = ServerType.CrossSever,
+                isClientLoadMap = true
+            });
+        }
+    }
+}
+
diff --git a/System/HazyRegion/HazyGrassModel.cs.meta b/System/HazyRegion/HazyGrassModel.cs.meta
new file mode 100644
index 0000000..89d2d2c
--- /dev/null
+++ b/System/HazyRegion/HazyGrassModel.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c0449f2089c64ff4f9b5b0e23a535dd0
+timeCreated: 1555038542
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/System/HazyRegion/HazyRegionModel.cs b/System/HazyRegion/HazyRegionModel.cs
index 88d04e6..c252ea2 100644
--- a/System/HazyRegion/HazyRegionModel.cs
+++ b/System/HazyRegion/HazyRegionModel.cs
@@ -51,6 +51,7 @@
         DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
         DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
         HazyDemonKingModel hazyDemonKingModel { get { return ModelCenter.Instance.GetModel<HazyDemonKingModel>(); } }
+        HazyGrassModel hazyGrassModel { get { return ModelCenter.Instance.GetModel<HazyGrassModel>(); } }
 
         public override void Init()
         {
@@ -256,6 +257,11 @@
             {
                 return false;
             }
+            if (mapId == HazyDemonKingModel.Client_MapID
+                || mapId == HazyGrassModel.Client_MapID)
+            {
+                return true;
+            }
             var configs = HazyRegionConfig.GetValues();
             foreach (var config in configs)
             {
@@ -366,7 +372,7 @@
                 case HazyRegionIncidentType.ReikiGrass:
                     if (InFakeHazyRegion)
                     {
-
+                        hazyGrassModel.RequestEnterClientDungeon();
                     }
                     else
                     {

--
Gitblit v1.8.0