From 2dedbe54f91f780a5344a53e2df7eebe4d295fde Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期一, 27 五月 2019 14:12:01 +0800
Subject: [PATCH] 6806 封魔坛副本前端化

---
 System/Achievement/AchievementGotoPart1.cs       |    4 
 System/FindPrecious/DemonJarVictoryWin.cs        |    9 ++
 Lua/Gen/SnxxzUIDemonJarModelWrap.cs              |    4 
 System/Dungeon/DungeonBuyTimesWin.cs             |    6 
 Fight/Stage/Dungeon/ClientDungeonStageUtility.cs |    3 
 System/FindPrecious/DemonJarModel.cs             |   20 ++--
 System/Dungeon/DungeonInspireWin.cs              |    6 
 System/Dungeon/DungeonModel.cs                   |   10 +-
 System/Dungeon/DungeonInspireBehaviour.cs        |    4 
 Fight/Stage/Dungeon/DungeonStage.cs              |    2 
 System/Dungeon/DungeonRankBehaviour.cs           |    2 
 Fight/Stage/StageLoadProcessor.cs                |    2 
 System/FindPrecious/FindPreciousModel.cs         |    6 
 System/FindPrecious/DemonJarWin.cs               |   59 +++++---------
 System/Dungeon/DungeonFightWin.cs                |   15 +++
 System/Dungeon/TargetBriefInfoWin.cs             |    8 +-
 System/MainInterfacePanel/InGamePushContainer.cs |    4 
 System/FakeDungeon/FakeDemonJarDungeonStage.cs   |   25 ++++-
 18 files changed, 103 insertions(+), 86 deletions(-)

diff --git a/Fight/Stage/Dungeon/ClientDungeonStageUtility.cs b/Fight/Stage/Dungeon/ClientDungeonStageUtility.cs
index 1d9d5ef..68976c4 100644
--- a/Fight/Stage/Dungeon/ClientDungeonStageUtility.cs
+++ b/Fight/Stage/Dungeon/ClientDungeonStageUtility.cs
@@ -136,8 +136,9 @@
             case HazyRegionModel.PRECIOUS_CLIENTDATAMAP:
             case TreasureModel.CLIENTDATAMAP:
                 return mapId;
+            default:
+                return mapId;
         }
-        return 0;
     }
 
     private static void OnPlayerLoginOk()
diff --git a/Fight/Stage/Dungeon/DungeonStage.cs b/Fight/Stage/Dungeon/DungeonStage.cs
index 7d9d192..e13f5fc 100644
--- a/Fight/Stage/Dungeon/DungeonStage.cs
+++ b/Fight/Stage/Dungeon/DungeonStage.cs
@@ -241,7 +241,7 @@
             case TreasureModel.TREASURE_MAPID:
                 WindowCenter.Instance.Open<TreasureDungeonMissionHintWin>();
                 break;
-            case DemonJarModel.DEMONJAR_MAPID:
+            case DemonJarModel.DATA_MAPID:
             case 31140:
             case JadeDynastyBossModel.JADEDYNASTY_MAP:
             case HazyDemonKingModel.CLIENTDATAMAP:
diff --git a/Fight/Stage/StageLoadProcessor.cs b/Fight/Stage/StageLoadProcessor.cs
index 466928e..3da82bc 100644
--- a/Fight/Stage/StageLoadProcessor.cs
+++ b/Fight/Stage/StageLoadProcessor.cs
@@ -404,7 +404,7 @@
                 case SkyTowerModel.DATA_MAPID:
                     stage = stageGameObject.AddComponent<SkyTowerDungeonStage>();
                     break;
-                case DemonJarModel.DEMONJAR_SINGLEMAPID:
+                case DemonJarModel.SINGLEMAPID:
                     stage = stageGameObject.AddComponent<FakeDemonJarDungeonStage>();
                     break;
                 case 31190:
diff --git a/Lua/Gen/SnxxzUIDemonJarModelWrap.cs b/Lua/Gen/SnxxzUIDemonJarModelWrap.cs
index f155edf..b46d65b 100644
--- a/Lua/Gen/SnxxzUIDemonJarModelWrap.cs
+++ b/Lua/Gen/SnxxzUIDemonJarModelWrap.cs
@@ -76,8 +76,8 @@
 			
 			
             Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TOTALTIME_LIMIT", Snxxz.UI.DemonJarModel.TOTALTIME_LIMIT);
-            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DEMONJAR_SINGLEMAPID", Snxxz.UI.DemonJarModel.DEMONJAR_SINGLEMAPID);
-            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DEMONJAR_MAPID", Snxxz.UI.DemonJarModel.DEMONJAR_MAPID);
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DEMONJAR_SINGLEMAPID", Snxxz.UI.DemonJarModel.SINGLEMAPID);
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DEMONJAR_MAPID", Snxxz.UI.DemonJarModel.DATA_MAPID);
             Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DEMONJAR_REDPOINTID", Snxxz.UI.DemonJarModel.DEMONJAR_REDPOINTID);
             
 			
diff --git a/System/Achievement/AchievementGotoPart1.cs b/System/Achievement/AchievementGotoPart1.cs
index 56d156b..28566e2 100644
--- a/System/Achievement/AchievementGotoPart1.cs
+++ b/System/Achievement/AchievementGotoPart1.cs
@@ -42,7 +42,7 @@
                 var dataMapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDataMapIdByMapId(location.mapId);
                 switch (dataMapId)
                 {
-                    case DemonJarModel.DEMONJAR_MAPID:
+                    case DemonJarModel.DATA_MAPID:
                         demonJarModel.selectedBoss = npcId;
                         demonJarModel.lockSelectedBoss = true;
 
@@ -172,7 +172,7 @@
 
             switch (dataMapId)
             {
-                case DemonJarModel.DEMONJAR_MAPID:
+                case DemonJarModel.DATA_MAPID:
                     var bossId = demonJarModel.GetLatestUnLockBoss();
                     if (bossId > 0)
                     {
diff --git a/System/Dungeon/DungeonBuyTimesWin.cs b/System/Dungeon/DungeonBuyTimesWin.cs
index 4c3d364..dec3197 100644
--- a/System/Dungeon/DungeonBuyTimesWin.cs
+++ b/System/Dungeon/DungeonBuyTimesWin.cs
@@ -163,10 +163,10 @@
 
         private bool CheckSpecialDungeon()
         {
-            if (DemonJarModel.DEMONJAR_MAPID == model.currentDungeon.mapId)
+            if (DemonJarModel.DATA_MAPID == model.currentDungeon.mapId)
             {
-                var _totalTimes = model.GetTotalTimes(DemonJarModel.DEMONJAR_MAPID);
-                var _enterTimes = model.GetEnterTimes(DemonJarModel.DEMONJAR_MAPID);
+                var _totalTimes = model.GetTotalTimes(DemonJarModel.DATA_MAPID);
+                var _enterTimes = model.GetEnterTimes(DemonJarModel.DATA_MAPID);
                 if ((_totalTimes - _enterTimes) >= DemonJarModel.TOTALTIME_LIMIT)
                 {
                     ServerTipDetails.DisplayNormalTip(Language.Get("DemonJar18"));
diff --git a/System/Dungeon/DungeonFightWin.cs b/System/Dungeon/DungeonFightWin.cs
index 9943675..2ff4919 100644
--- a/System/Dungeon/DungeonFightWin.cs
+++ b/System/Dungeon/DungeonFightWin.cs
@@ -79,7 +79,7 @@
             m_Inspire.gameObject.SetActive(false);
             m_Liquid.gameObject.SetActive(false);
             var dataMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
-            m_ExitDungeon.gameObject.SetActive(dataMapId != DemonJarModel.DEMONJAR_MAPID
+            m_ExitDungeon.gameObject.SetActive(dataMapId != DemonJarModel.DATA_MAPID
                 && !CrossServerUtility.IsCrossServerOneVsOne()
                 && !hazyDemonKingModel.IsInDungeon
                 && !hazyGrassModel.IsInDungeon);
@@ -105,7 +105,7 @@
                     m_Inspire.gameObject.SetActive(true);
                     m_Liquid.gameObject.SetActive(true);
                     break;
-                case DemonJarModel.DEMONJAR_MAPID:
+                case DemonJarModel.DATA_MAPID:
                     var _bossId = ModelCenter.Instance.GetModel<DemonJarModel>().GetBossIdByLine(model.currentDungeon.lineId);
                     var _cfg = DemonJarConfig.Get(_bossId);
                     m_Inspire.gameObject.SetActive(_cfg != null && _cfg.CanEnterTimes == 0);
@@ -289,6 +289,16 @@
                             case PersonalBossModel.PERSONALBOSS_MAPID:
                                 ClientDungeonStageUtility.ExitNormalClientDungeon();
                                 break;
+                            case DemonJarModel.DATA_MAPID:
+                                if (StageLoad.Instance.currentStage is FakeDemonJarDungeonStage)
+                                {
+                                    ClientDungeonStageUtility.ExitNormalClientDungeon();
+                                }
+                                else
+                                {
+                                    model.ExitCurrentDungeon();
+                                }
+                                break;
                             default:
                                 model.ExitCurrentDungeon();
                                 break;
@@ -372,6 +382,7 @@
                     case HazyGrassModel.REIKI_CLIENTDATAMAP:
                     case PersonalBossModel.PERSONALBOSS_MAPID:
                     case HazyDemonKingModel.CLIENTDATAMAP:
+                    case DemonJarModel.SINGLEMAPID:
                         ClientDungeonStageUtility.ExitNormalClientDungeon();
                         break;
                 }
diff --git a/System/Dungeon/DungeonInspireBehaviour.cs b/System/Dungeon/DungeonInspireBehaviour.cs
index 48af997..1a76a66 100644
--- a/System/Dungeon/DungeonInspireBehaviour.cs
+++ b/System/Dungeon/DungeonInspireBehaviour.cs
@@ -53,7 +53,7 @@
             }
             switch (mapId)
             {
-                case DemonJarModel.DEMONJAR_MAPID:
+                case DemonJarModel.DATA_MAPID:
                 case JadeDynastyBossModel.JADEDYNASTY_MAP:
                 case AllianceBossModel.DATAMAPID:
                     m_Icon.SetSprite("W_XYGuwu_a2");
@@ -107,7 +107,7 @@
 
         private bool IsRequireDisplayProgress()
         {
-            return PlayerDatas.Instance.baseData.MapID == DemonJarModel.DEMONJAR_MAPID
+            return PlayerDatas.Instance.baseData.MapID == DemonJarModel.DATA_MAPID
                 || PlayerDatas.Instance.baseData.MapID == JadeDynastyBossModel.JADEDYNASTY_MAP
                 || PlayerDatas.Instance.baseData.MapID == AllianceBossModel.DATAMAPID;
         }
diff --git a/System/Dungeon/DungeonInspireWin.cs b/System/Dungeon/DungeonInspireWin.cs
index 6575bd1..ebdff4d 100644
--- a/System/Dungeon/DungeonInspireWin.cs
+++ b/System/Dungeon/DungeonInspireWin.cs
@@ -174,7 +174,7 @@
                 else
                 {
                     var dataMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
-                    var isDouble = dataMapId == DemonJarModel.DEMONJAR_MAPID && demonJarModel.isDoubleAward;
+                    var isDouble = dataMapId == DemonJarModel.DATA_MAPID && demonJarModel.isDoubleAward;
 
                     bool mix = fairyInspireConfig.InspireType == 5 && PlayerDatas.Instance.baseData.diamond < cost
                         && PlayerDatas.Instance.baseData.diamond > 0;
@@ -238,7 +238,7 @@
         private void DisplayCost()
         {
             var dataMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
-            var isDouble = dataMapId == DemonJarModel.DEMONJAR_MAPID && demonJarModel.isDoubleAward;
+            var isDouble = dataMapId == DemonJarModel.DATA_MAPID && demonJarModel.isDoubleAward;
 
             if (coinInspireConfig != null)
             {
@@ -257,7 +257,7 @@
             if (demonJarModel.isDoubleAward)
             {
                 var dataMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
-                m_DemonJarDoubleRemind.gameObject.SetActive(dataMapId == DemonJarModel.DEMONJAR_MAPID);
+                m_DemonJarDoubleRemind.gameObject.SetActive(dataMapId == DemonJarModel.DATA_MAPID);
             }
             else
             {
diff --git a/System/Dungeon/DungeonModel.cs b/System/Dungeon/DungeonModel.cs
index 4f95bc2..d7a1b16 100644
--- a/System/Dungeon/DungeonModel.cs
+++ b/System/Dungeon/DungeonModel.cs
@@ -862,7 +862,7 @@
                         }
                     }
                     break;
-                case DemonJarModel.DEMONJAR_MAPID:
+                case DemonJarModel.DATA_MAPID:
                     if (!WindowCenter.Instance.IsOpen<DemonJarDamageRankWin>())
                     {
                         WindowCenter.Instance.Open<DemonJarDamageRankWin>();
@@ -949,7 +949,7 @@
             m_Mission = _missionData;
             switch (_dataMapId)
             {
-                case DemonJarModel.DEMONJAR_MAPID:
+                case DemonJarModel.DATA_MAPID:
                     if (!WindowCenter.Instance.IsOpen<DemonJarDamageRankWin>())
                     {
                         WindowCenter.Instance.Open<DemonJarDamageRankWin>();
@@ -1051,7 +1051,7 @@
                         case 31180:
                             WindowCenter.Instance.Open<DungeonChaosVictoryWin>();
                             break;
-                        case DemonJarModel.DEMONJAR_MAPID:
+                        case DemonJarModel.DATA_MAPID:
                             WindowCenter.Instance.Open<DemonJarVictoryWin>();
                             var demonJarModel = ModelCenter.Instance.GetModel<DemonJarModel>();
                             if (demonJarModel.autoChallengeBoss > 0 && demonJarModel.autoChallengeBoss == demonJarModel.GetBossIdByLine(m_DungeonResult.lineID))
@@ -1221,9 +1221,9 @@
 
         public int GetDataMapIdByMapId(int _mapId)
         {
-            if (_mapId == DemonJarModel.DEMONJAR_SINGLEMAPID)
+            if (_mapId == DemonJarModel.SINGLEMAPID)
             {
-                return DemonJarModel.DEMONJAR_MAPID;
+                return DemonJarModel.DATA_MAPID;
             }
             else
             {
diff --git a/System/Dungeon/DungeonRankBehaviour.cs b/System/Dungeon/DungeonRankBehaviour.cs
index b220214..a190911 100644
--- a/System/Dungeon/DungeonRankBehaviour.cs
+++ b/System/Dungeon/DungeonRankBehaviour.cs
@@ -43,7 +43,7 @@
             switch (currentDugeonId)
             {
                 case 31170:
-                case DemonJarModel.DEMONJAR_MAPID:
+                case DemonJarModel.DATA_MAPID:
                 case JadeDynastyBossModel.JADEDYNASTY_MAP:
                     {
                         int i = 0;
diff --git a/System/Dungeon/TargetBriefInfoWin.cs b/System/Dungeon/TargetBriefInfoWin.cs
index 871e974..83cbbf5 100644
--- a/System/Dungeon/TargetBriefInfoWin.cs
+++ b/System/Dungeon/TargetBriefInfoWin.cs
@@ -71,7 +71,7 @@
         }
 
         var mapId = PlayerDatas.Instance.baseData.MapID;
-        if (mapId == DemonJarModel.DEMONJAR_SINGLEMAPID)
+        if (mapId == DemonJarModel.SINGLEMAPID)
         {
             if (_show)
             {
@@ -111,7 +111,7 @@
         }
 
         var mapId = PlayerDatas.Instance.baseData.MapID;
-        if (mapId == DemonJarModel.DEMONJAR_SINGLEMAPID)
+        if (mapId == DemonJarModel.SINGLEMAPID)
         {
             if (!WindowCenter.Instance.IsOpen("DemonJarBossLifeBarWin"))
             {
@@ -336,7 +336,7 @@
 
                 if (bossInfo.instanceId != 0)
                 {
-                    if (PlayerDatas.Instance.baseData.MapID != DemonJarModel.DEMONJAR_SINGLEMAPID)
+                    if (PlayerDatas.Instance.baseData.MapID != DemonJarModel.SINGLEMAPID)
                     {
                         ShowBossLifeBar(bossInfo, true);
                     }
@@ -360,7 +360,7 @@
                 }
                 else
                 {
-                    if (PlayerDatas.Instance.baseData.MapID != DemonJarModel.DEMONJAR_SINGLEMAPID)
+                    if (PlayerDatas.Instance.baseData.MapID != DemonJarModel.SINGLEMAPID)
                     {
                         if (bossInfo.npcId != TargetBriefInfo.bossInfo.npcId)
                         {
diff --git a/System/FakeDungeon/FakeDemonJarDungeonStage.cs b/System/FakeDungeon/FakeDemonJarDungeonStage.cs
index 0a34ce3..4567223 100644
--- a/System/FakeDungeon/FakeDemonJarDungeonStage.cs
+++ b/System/FakeDungeon/FakeDemonJarDungeonStage.cs
@@ -31,11 +31,17 @@
     public override void Initialize()
     {
         base.Initialize();
-
+        dungeonModel.onDungeonResultEvent += OnDungeonResultEvent;
         BossShowModel.Instance.bossShowCompletedEvent += OnBossShowComplete;
         DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforeInitailesPlayerInfo;
         DTC0403_tagPlayerLoginLoadOK.mapInitOkEvent += OnMapInitOk;
         AttackHandler.OnAttackTarget += OnPlayerAttack;
+
+        if (PlayerDatas.Instance.hero != null)
+        {
+            PlayerDatas.Instance.hero.Pos = new Vector3(13f, 0f, 10f);
+            CameraController.Instance.Apply();
+        }
     }
 
     public override void UnInitialize()
@@ -48,6 +54,7 @@
             boss = null;
         }
 
+        dungeonModel.onDungeonResultEvent -= OnDungeonResultEvent;
         BossShowModel.Instance.bossShowCompletedEvent -= OnBossShowComplete;
         DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforeInitailesPlayerInfo;
         DTC0403_tagPlayerLoginLoadOK.mapInitOkEvent -= OnMapInitOk;
@@ -139,7 +146,7 @@
         foreach (var key in keys)
         {
             this.demonJarConfig = DemonJarConfig.Get(key);
-            if (demonJarConfig.LineID == PlayerDatas.Instance.baseData.dungeonLineId)
+            if (demonJarConfig.LineID == ClientDungeonStageUtility.dungeonInfo.lineId)
             {
                 bossNpcId = demonJarConfig.NPCID;
                 totalTime = demonJarConfig.Time;
@@ -160,8 +167,8 @@
         fighting = false;
 
         var send = new CB101_tagCMClientEndFB();
-        send.MapID = DemonJarModel.DEMONJAR_MAPID;
-        send.LineID = (ushort)PlayerDatas.Instance.baseData.dungeonLineId;
+        send.MapID = DemonJarModel.DATA_MAPID;
+        send.LineID = (ushort)this.demonJarConfig.LineID;
         send.Data1 = myRank == -1 ? (uint)(fakePlayerDatas.Count + 1) : (uint)myRank;
         send.Data2 = (uint)myHurtSum;
         GameNetSystem.Instance.SendInfo(send);
@@ -248,12 +255,12 @@
             }
         }
 
-        mission.lineID = PlayerDatas.Instance.baseData.dungeonLineId;
+        mission.lineID = ClientDungeonStageUtility.dungeonInfo.lineId;
         mission.hurtInfo = hurts;
         mission.remainHPPer = (int)(surplusTime / totalTime * 1000000f);
         mission.hpReduceSpeed = (int)(10000 / totalTime);
 
-        dungeonModel.UpdateFakeDungeonMission(DemonJarModel.DEMONJAR_MAPID, mission);
+        dungeonModel.UpdateFakeDungeonMission(DemonJarModel.DATA_MAPID, mission);
     }
 
     private void CreateBoss()
@@ -353,6 +360,7 @@
 
     IEnumerator Co_FightBegin()
     {
+
         yield return WaitingForSecondConst.WaitMS500;
         if (!BossShowModel.Instance.BossShowing)
         {
@@ -360,6 +368,11 @@
         }
     }
 
+    private void OnDungeonResultEvent()
+    {
+        dungeonModel.UpdateCoolDown(DungeonCoolDownType.LeaveMap, 10 * 1000);
+    }
+
     private int HurtCompare(DungeonHurt a, DungeonHurt b)
     {
         return a.hurt > b.hurt ? -1 : 1;
diff --git a/System/FindPrecious/DemonJarModel.cs b/System/FindPrecious/DemonJarModel.cs
index be23d8c..4f4f748 100644
--- a/System/FindPrecious/DemonJarModel.cs
+++ b/System/FindPrecious/DemonJarModel.cs
@@ -17,8 +17,8 @@
     {
         public const int TOTALTIME_LIMIT = 5;
 
-        public const int DEMONJAR_SINGLEMAPID = 52020;
-        public const int DEMONJAR_MAPID = 52010;
+        public const int SINGLEMAPID = 52020;
+        public const int DATA_MAPID = 52010;
         public const int DEMONJAR_REDPOINTID = 77001;
 
         public Redpoint redpoint = new Redpoint(FindPreciousModel.FINDPRECIOUS_REDPOINTID, DEMONJAR_REDPOINTID);
@@ -166,7 +166,7 @@
                 var bossId = sortedBossIds[i];
                 var config = DemonJarConfig.Get(bossId);
 
-                var grade = dungeonModel.GetGrade(new Dungeon(DEMONJAR_MAPID, config.LineID));
+                var grade = dungeonModel.GetGrade(new Dungeon(DATA_MAPID, config.LineID));
                 if (config.CanEnterTimes > 0 && grade > 0)
                 {
                     continue;
@@ -221,8 +221,8 @@
 
         public int GetSurplusTimes()
         {
-            var totalTimes = dungeonModel.GetTotalTimes(DEMONJAR_MAPID);
-            var enterTimes = dungeonModel.GetEnterTimes(DEMONJAR_MAPID);
+            var totalTimes = dungeonModel.GetTotalTimes(DATA_MAPID);
+            var enterTimes = dungeonModel.GetEnterTimes(DATA_MAPID);
 
             return totalTimes - enterTimes;
         }
@@ -357,7 +357,7 @@
         {
             if (FuncOpen.Instance.IsFuncOpen(76))
             {
-                var count = dungeonModel.GetTotalTimes(DEMONJAR_MAPID) - dungeonModel.GetEnterTimes(DEMONJAR_MAPID);
+                var count = dungeonModel.GetTotalTimes(DATA_MAPID) - dungeonModel.GetEnterTimes(DATA_MAPID);
                 redpoint.count = count;
             }
             else
@@ -370,7 +370,7 @@
 
         private void OnMapLineUpdateEvent(int _mapId)
         {
-            if (_mapId != DEMONJAR_MAPID)
+            if (_mapId != DATA_MAPID)
             {
                 return;
             }
@@ -392,7 +392,7 @@
             }
 
             var mapModel = ModelCenter.Instance.GetModel<MapModel>();
-            var lines = mapModel.GetMapLines(DEMONJAR_MAPID);
+            var lines = mapModel.GetMapLines(DATA_MAPID);
             for (int i = 0; i < sortedBossIds.Count; i++)
             {
                 var bossId = sortedBossIds[i];
@@ -420,7 +420,7 @@
 
         private void OnDungeonRecordUpdate(int _dataMapId)
         {
-            if (DEMONJAR_MAPID == _dataMapId && PlayerDatas.Instance.baseData.LV >= GeneralDefine.demonJarRedPoint)
+            if (DATA_MAPID == _dataMapId && PlayerDatas.Instance.baseData.LV >= GeneralDefine.demonJarRedPoint)
             {
                 UpdateRedpoint();
             }
@@ -459,7 +459,7 @@
                     {
                         this.findPreciousModel.RequestSubscribeBoss((int)_bossId, true);
                         var model = ModelCenter.Instance.GetModel<DungeonModel>();
-                        var grade = model.GetGrade(new Dungeon(DEMONJAR_MAPID, config.LineID));
+                        var grade = model.GetGrade(new Dungeon(DATA_MAPID, config.LineID));
                         if ((config.CanEnterTimes == 0 || grade == 0) && this.findPreciousModel.IsBossAlive((int)_bossId))
                         {
                             this.findPreciousModel.AddOneBossRebornNotify(_bossId);
diff --git a/System/FindPrecious/DemonJarVictoryWin.cs b/System/FindPrecious/DemonJarVictoryWin.cs
index 37d1cf3..350d36e 100644
--- a/System/FindPrecious/DemonJarVictoryWin.cs
+++ b/System/FindPrecious/DemonJarVictoryWin.cs
@@ -162,7 +162,14 @@
 
         private void ExitDungeon()
         {
-            model.ExitCurrentDungeon();
+            if (ClientDungeonStageUtility.isClientDungeon)
+            {
+                ClientDungeonStageUtility.ExitNormalClientDungeon();
+            }
+            else
+            {
+                model.ExitCurrentDungeon();
+            }
         }
 
         private int RewardSort(Item _lhs, Item _rhs)
diff --git a/System/FindPrecious/DemonJarWin.cs b/System/FindPrecious/DemonJarWin.cs
index dc93d1d..9aa1b8f 100644
--- a/System/FindPrecious/DemonJarWin.cs
+++ b/System/FindPrecious/DemonJarWin.cs
@@ -55,12 +55,12 @@
 
         protected override void OnPreOpen()
         {
-            totalTimes = dungeonModel.GetTotalTimes(DemonJarModel.DEMONJAR_MAPID);
-            enterTimes = dungeonModel.GetEnterTimes(DemonJarModel.DEMONJAR_MAPID);
+            totalTimes = dungeonModel.GetTotalTimes(DemonJarModel.DATA_MAPID);
+            enterTimes = dungeonModel.GetEnterTimes(DemonJarModel.DATA_MAPID);
             m_Times.text = StringUtility.Contact(totalTimes - enterTimes, "/", DemonJarModel.TOTALTIME_LIMIT);
 
-            OnRemaintimeUpdate(DemonJarModel.DEMONJAR_MAPID);
-            mapModel.RequestQueryMapLineState(DemonJarModel.DEMONJAR_MAPID);
+            OnRemaintimeUpdate(DemonJarModel.DATA_MAPID);
+            mapModel.RequestQueryMapLineState(DemonJarModel.DATA_MAPID);
         }
 
         protected override void OnAfterOpen()
@@ -158,7 +158,7 @@
             }
             else
             {
-                dungeonModel.currentDungeon = new Dungeon(DemonJarModel.DEMONJAR_MAPID, 0);
+                dungeonModel.currentDungeon = new Dungeon(DemonJarModel.DATA_MAPID, 0);
                 WindowCenter.Instance.Open<DungeonBuyTimesWin>();
             }
         }
@@ -183,7 +183,7 @@
         private void OpenAutoDuoubleSettingWin()
         {
             var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
-            if (dataMapId == DemonJarModel.DEMONJAR_MAPID)
+            if (dataMapId == DemonJarModel.DATA_MAPID)
             {
                 SysNotifyMgr.Instance.ShowTip("CantChangeInDemon");
             }
@@ -219,31 +219,16 @@
             if (TestEnterDungeon(out error))
             {
                 var config = DemonJarConfig.Get(model.selectedBoss);
-                if (config.LineID == GeneralDefine.demonJarHintLineId && PlayerDatas.Instance.baseData.LV < GeneralDefine.demonJarHintLevelLimit)
+                if (config.CanEnterTimes == 1)
                 {
-                    var grade = dungeonModel.GetGrade(new Dungeon(DemonJarModel.DEMONJAR_MAPID, config.LineID));
-                    if (grade <= 0)
-                    {
-                        ConfirmCancel.ShowPopConfirm(
-                            Language.Get("Mail101"),
-                            Language.Get("DemonJarFirstRemind"),
-                            (bool ok) =>
-                            {
-                                if (ok)
-                                {
-                                    dungeonModel.SingleChallenge(DemonJarModel.DEMONJAR_MAPID, config.LineID);
-                                }
-                            }
-                            );
-                    }
-                    else
-                    {
-                        dungeonModel.SingleChallenge(DemonJarModel.DEMONJAR_MAPID, config.LineID);
-                    }
+                    ClientDungeonStageUtility.GotoNormalClientDungeon(
+                        DemonJarModel.SINGLEMAPID,
+                        DemonJarModel.SINGLEMAPID,
+                        config.LineID);
                 }
                 else
                 {
-                    dungeonModel.SingleChallenge(DemonJarModel.DEMONJAR_MAPID, config.LineID);
+                    dungeonModel.SingleChallenge(DemonJarModel.DATA_MAPID, config.LineID);
                 }
             }
             else
@@ -259,14 +244,14 @@
                         }
                         break;
                     case 2:
-                        dungeonModel.currentDungeon = new Dungeon(DemonJarModel.DEMONJAR_MAPID, 0);
+                        dungeonModel.currentDungeon = new Dungeon(DemonJarModel.DATA_MAPID, 0);
                         WindowCenter.Instance.Open<DungeonBuyTimesWin>();
                         break;
                     case 3:
                         SysNotifyMgr.Instance.ShowTip("DemonJar_Text1");
                         break;
                     case 4:
-                        dungeonModel.currentDungeon = new Dungeon(DemonJarModel.DEMONJAR_MAPID, 0);
+                        dungeonModel.currentDungeon = new Dungeon(DemonJarModel.DATA_MAPID, 0);
                         WindowCenter.Instance.Open<DungeonBuyTimesWin>();
                         break;
                     case 5:
@@ -279,7 +264,7 @@
                                 if (_ok)
                                 {
                                     var config = DemonJarConfig.Get(model.selectedBoss);
-                                    dungeonModel.SingleChallenge(DemonJarModel.DEMONJAR_MAPID, config.LineID);
+                                    dungeonModel.SingleChallenge(DemonJarModel.DATA_MAPID, config.LineID);
                                 }
 
                                 if (_toggle)
@@ -295,20 +280,20 @@
 
         private void OnRemaintimeUpdate(int _mapId)
         {
-            if (DemonJarModel.DEMONJAR_MAPID != _mapId)
+            if (DemonJarModel.DATA_MAPID != _mapId)
             {
                 return;
             }
 
-            totalTimes = dungeonModel.GetTotalTimes(DemonJarModel.DEMONJAR_MAPID);
-            enterTimes = dungeonModel.GetEnterTimes(DemonJarModel.DEMONJAR_MAPID);
+            totalTimes = dungeonModel.GetTotalTimes(DemonJarModel.DATA_MAPID);
+            enterTimes = dungeonModel.GetEnterTimes(DemonJarModel.DATA_MAPID);
 
             m_Times.text = StringUtility.Contact(totalTimes - enterTimes, "/", DemonJarModel.TOTALTIME_LIMIT);
 
             if ((totalTimes - enterTimes) < DemonJarModel.TOTALTIME_LIMIT)
             {
                 DateTime endTime;
-                if (dungeonModel.TryGetCountRemainTime(DemonJarModel.DEMONJAR_MAPID, out endTime))
+                if (dungeonModel.TryGetCountRemainTime(DemonJarModel.DATA_MAPID, out endTime))
                 {
                     m_CountRemainTime.gameObject.SetActive(true);
                     m_CountRemainTime.Begin((int)(endTime - TimeUtility.ServerNow).TotalSeconds);
@@ -327,8 +312,8 @@
 
         private void OnBuyTimesOk()
         {
-            totalTimes = dungeonModel.GetTotalTimes(DemonJarModel.DEMONJAR_MAPID);
-            enterTimes = dungeonModel.GetEnterTimes(DemonJarModel.DEMONJAR_MAPID);
+            totalTimes = dungeonModel.GetTotalTimes(DemonJarModel.DATA_MAPID);
+            enterTimes = dungeonModel.GetEnterTimes(DemonJarModel.DATA_MAPID);
 
             m_Times.text = StringUtility.Contact(totalTimes - enterTimes, "/", DemonJarModel.TOTALTIME_LIMIT);
             if (totalTimes - enterTimes >= DemonJarModel.TOTALTIME_LIMIT)
@@ -399,7 +384,7 @@
             if (AchievementGoto.guideAchievementId != 0)
             {
                 var config = SuccessConfig.Get(AchievementGoto.guideAchievementId);
-                var condition = config.Type == 99 && config.Condition[0] == DemonJarModel.DEMONJAR_MAPID;
+                var condition = config.Type == 99 && config.Condition[0] == DemonJarModel.DATA_MAPID;
 
                 if (condition)
                 {
diff --git a/System/FindPrecious/FindPreciousModel.cs b/System/FindPrecious/FindPreciousModel.cs
index ee1330f..6f543ce 100644
--- a/System/FindPrecious/FindPreciousModel.cs
+++ b/System/FindPrecious/FindPreciousModel.cs
@@ -200,7 +200,7 @@
                         if (bossNewAliveState)
                         {
                             var config = DemonJarConfig.Get(bossId);
-                            var grade = dungeonModel.GetGrade(new Dungeon(DemonJarModel.DEMONJAR_MAPID, config.LineID));
+                            var grade = dungeonModel.GetGrade(new Dungeon(DemonJarModel.DATA_MAPID, config.LineID));
                             if ((config.CanEnterTimes == 0 || grade == 0))
                             {
                                 AddOneBossRebornNotify(bossId);
@@ -535,7 +535,7 @@
                     if (FuncOpen.Instance.IsFuncOpen(76) && IsBossAlive(bossId))
                     {
                         var config = DemonJarConfig.Get(bossId);
-                        var grade = dungeonModel.GetGrade(new Dungeon(DemonJarModel.DEMONJAR_MAPID, config.LineID));
+                        var grade = dungeonModel.GetGrade(new Dungeon(DemonJarModel.DATA_MAPID, config.LineID));
                         if ((config.CanEnterTimes == 0 || grade == 0))
                         {
                             AddOneBossRebornNotify(bossId);
@@ -665,7 +665,7 @@
 
             var bossId = notify.bossId;
             var config = DemonJarConfig.Get(bossId);
-            dungeonModel.SingleChallenge(DemonJarModel.DEMONJAR_MAPID, config.LineID);
+            dungeonModel.SingleChallenge(DemonJarModel.DATA_MAPID, config.LineID);
             demonJarModel.autoChallengeBoss = bossId;
             return true;
         }
diff --git a/System/MainInterfacePanel/InGamePushContainer.cs b/System/MainInterfacePanel/InGamePushContainer.cs
index 347c3ab..92dd89e 100644
--- a/System/MainInterfacePanel/InGamePushContainer.cs
+++ b/System/MainInterfacePanel/InGamePushContainer.cs
@@ -316,8 +316,8 @@
                         break;
                     case FindPreciousType.DemonJar:
                         {
-                            var totalTimes = dungeonModel.GetTotalTimes(DemonJarModel.DEMONJAR_MAPID);
-                            var enterTimes = dungeonModel.GetEnterTimes(DemonJarModel.DEMONJAR_MAPID);
+                            var totalTimes = dungeonModel.GetTotalTimes(DemonJarModel.DATA_MAPID);
+                            var enterTimes = dungeonModel.GetEnterTimes(DemonJarModel.DATA_MAPID);
                             killable = totalTimes > enterTimes;
                             show = !GeneralDefine.demonJarNoRebornRemindMaps.Contains(mapId);
                         }

--
Gitblit v1.8.0