From 0a08d799f9e86384dc64adc573cdbdce8ae5cf53 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期日, 30 九月 2018 17:36:20 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/WindowJump/WindowJumpMgr.cs |  585 +++++++++++++++++++++++++++++----------------------------
 1 files changed, 298 insertions(+), 287 deletions(-)

diff --git a/System/WindowJump/WindowJumpMgr.cs b/System/WindowJump/WindowJumpMgr.cs
index 4f1f76e..031cc2e 100644
--- a/System/WindowJump/WindowJumpMgr.cs
+++ b/System/WindowJump/WindowJumpMgr.cs
@@ -87,279 +87,8 @@
 
     public void WindowJumpTo(JumpUIType jumpType)
     {
-        _tagWinSearchModel = Config.Instance.Get<WindowSearchConfig>((int)jumpType);
-
-        if (_tagWinSearchModel == null)
-        {
-            return;
-        }
-
-        if (!FuncOpen.Instance.IsFuncOpen(_tagWinSearchModel.Lv) && _tagWinSearchModel.Lv != 0)
-        {
-            FuncOpen.Instance.ProcessorFuncErrorTip(_tagWinSearchModel.Lv);
-            return;
-        }
-
-        switch (jumpType)
-        {
-            case JumpUIType.UnionFunc1:
-            case JumpUIType.UnionFunc2:
-            case JumpUIType.UnionWarehouse:
-            case JumpUIType.UnionHall:
-            case JumpUIType.UnionTask:
-            case JumpUIType.UnionTask2:
-            case JumpUIType.UnionActive1:
-            case JumpUIType.UnionActive2:
-            case JumpUIType.UnionBoss:
-                if (!PlayerDatas.Instance.fairyData.HasFairy)
-                {
-                    SysNotifyMgr.Instance.ShowTip("DailyQuestwinUnionLimit");
-                    return;
-                }
-                break;
-            case JumpUIType.UnionMethod:
-                if (!fairyModel.fairyMethodToOpen)
-                {
-                    fairyModel.ProcessMethodToErrorTip();
-                    return;
-                }
-                break;
-            case JumpUIType.UnionStore:
-                if (!fairyModel.fairyStoreOpen)
-                {
-                    fairyModel.ProcessErrorTip();
-                    return;
-                }
-                break;
-            case JumpUIType.BigMap:
-                if(!mapModel.CanOpenLocalMapWin(PlayerDatas.Instance.baseData.MapID))
-                {
-                    return;
-                }
-                break;
-            case JumpUIType.TreasureFindHostFunc1:
-            case JumpUIType.TreasureFindHostFunc2:
-            case JumpUIType.TreasureFindHostFunc3:
-            case JumpUIType.TreasureFindHostFunc1Type2:
-            case JumpUIType.TreasureFindHostFunc2Type2:
-            case JumpUIType.TreasureFindHostFunc3Type2:
-                bool isUnlock = hostModel.IsUnlockTreasure(int.Parse(_tagWinSearchModel.SelectActive));
-                if (!isUnlock)
-                {
-                    hostModel.jumpTreasureId = 0;
-                    return;
-                }
-                break;
-            case JumpUIType.FirstRecharge:
-                var model = ModelCenter.Instance.GetModel<VipModel>();
-                if (model.firstChargeRewardGet)
-                {
-                    model.AreadyGetFirstRecharge();
-                    return;
-                }
-                break;
-            case JumpUIType.XMZZBattle:
-            case JumpUIType.AncientBattle:
-            case JumpUIType.IceCrystal:
-            case JumpUIType.FairyLand:
-                DailyQuestConfig dailyConfig = Config.Instance.Get<DailyQuestConfig>(_tagWinSearchModel.SelectActive);
-                if (dailyQuestModel.GetQuestState(dailyConfig.ID) != DailyQuestModel.DailyQuestState.Normal)
-                {
-                    SysNotifyMgr.Instance.ShowTip("FBIsNotOpen");
-                    return;
-                }
-                break;
-            case JumpUIType.PlotTaskFunc3:
-                var taskmodel = ModelCenter.Instance.GetModel<PlayerTaskDatas>();
-                if (taskmodel.SideQuestsDic.Count < 1)
-                {
-                    SysNotifyMgr.Instance.ShowTip("SideQuest_None");
-                    return;
-                }
-                break;
-            case JumpUIType.PrayforDrug:
-                var prayModel = ModelCenter.Instance.GetModel<PrayForDurgModel>();
-                if(!prayModel.CheckPrayDrugIsOpen())
-                {
-                    return;
-                }
-                break;
-            case JumpUIType.FaBaoSoul_BenYuan:
-            case JumpUIType.FaBaoSoul_FengMo:
-            case JumpUIType.FaBaoSoul_Strength:
-            case JumpUIType.FaBaoSoul_Rune:
-            case JumpUIType.FaBaoSoul_Mount:
-            case JumpUIType.FaBaoSoul_Pet:
-            case JumpUIType.FaBaoSoul_Boss:
-            case JumpUIType.FaBaoSoul_Wings:
-            case JumpUIType.FaBaoSoul_Suit:
-            case JumpUIType.FaBaoSoul_Wash:
-                var soulId = 0;
-                if (int.TryParse(_tagWinSearchModel.SelectActive, out soulId))
-                {
-                    var soulModel = ModelCenter.Instance.GetModel<TreasureSoulModel>();
-                    if (!soulModel.IsOpenTreasureSoul(soulId))
-                    {
-                        return;
-                    }
-                }
-                else
-                {
-                    return;
-                }
-                break;
-            case JumpUIType.TrialExchange:
-                if (!trialDungeonModel.CompleteTrialFloor(0))
-                {
-                    trialDungeonModel.ProcessOpenTrialExchangeError();
-                    return;
-                }
-                break;
-            case JumpUIType.Kylin:
-            case JumpUIType.Kylin1:
-            case JumpUIType.Kylin2:
-            case JumpUIType.Kylin3:
-            case JumpUIType.Kylin4:
-            case JumpUIType.Kylin5:
-            case JumpUIType.Kylin6:
-                if (!FuncOpen.Instance.IsFuncOpen(85))
-                {
-                    FuncOpen.Instance.ProcessorFuncErrorTip((int)FuncOpenEnum.Kylin);
-                    return;
-                }
-                break;
-            case JumpUIType.OpenServerMountRank:
-                var type = int.Parse(_tagWinSearchModel.SelectActive);
-                if (rankModel.IsLock(type))
-                {
-                    SysNotifyMgr.Instance.ShowTip("InOperationTimeError");
-                    return;
-                }
-                if (TimeUtility.OpenDay >= rankModel.openServerActivityDays)
-                {
-                    SysNotifyMgr.Instance.ShowTip("ActiveOutTime");
-                    return;
-                }
-                break;
-            case JumpUIType.FlashSale:
-                {
-                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
-                    {
-                        OperationTimeHepler.Instance.ProcessConditionError(Operation.FlashSale);
-                        return;
-                    }
-                }
-                break;
-            case JumpUIType.ConsumreRebate:
-                {
-                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
-                    {
-                        OperationTimeHepler.Instance.ProcessConditionError(Operation.ConsumeRebate);
-                        return;
-                    }
-                }
-                break;
-            case JumpUIType.LimitedTimePackage:
-                {
-                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
-                    {
-                        OperationTimeHepler.Instance.ProcessConditionError(Operation.GiftPackage);
-                        return;
-                    }
-                }
-                break;
-            case JumpUIType.BossReborn:
-                {
-                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
-                    {
-                        OperationTimeHepler.Instance.ProcessConditionError(Operation.BossReborn);
-                        return;
-                    }
-                }
-                break;
-            case JumpUIType.VipRechargeFunc3:
-                {
-                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
-                    {
-                        ModelCenter.Instance.GetModel<FairyJadeInvestmentModel>().MessageNotification();
-                        return;
-                    }
-                }
-                break;
-            case JumpUIType.VipRechargeFunc5:
-                if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
-                {
-                    return;
-                }
-                break;
-            case JumpUIType.OpenServerRank:
-            case JumpUIType.OSTimeLimitGift:
-            case JumpUIType.OpenServerActivityFunc2_1:
-            case JumpUIType.OpenServerActivityFunc2_2:
-                if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
-                {
-                    SysNotifyMgr.Instance.ShowTip("ActiveOutTime");
-                    return;
-                }
-                break;
-            case JumpUIType.OpenServerGift1:
-            case JumpUIType.OpenServerGift2:
-            case JumpUIType.OpenServerGift3:
-                var giftModel = ModelCenter.Instance.GetModel<OSGiftModel>();
-                int giftId = 0;
-                int.TryParse(_tagWinSearchModel.SelectActive, out giftId);
-                if (!giftModel.CheckActivate())
-                {
-                    if (PlayerDatas.Instance.baseData.coinPointTotal <= 0
-                        || !ModelCenter.Instance.GetModel<VipModel>().firstChargeRewardGet)
-                    {
-                        SysNotifyMgr.Instance.ShowTip("GiftNoOpen");
-                    }
-                    else if (giftModel.IsGiftBuy(giftId))
-                    {
-                        SysNotifyMgr.Instance.ShowTip("GiftAlreadyBuy");
-                    }
-                    else if (giftModel.IsGiftOverdue(giftId))
-                    {
-                        SysNotifyMgr.Instance.ShowTip("MissSell");
-                    }
-                    return;
-                }
-                break;
-            case JumpUIType.OpenServerGift:
-                return;
-            case JumpUIType.EquipCompose1:
-            case JumpUIType.EquipCompose2:
-            case JumpUIType.EquipCompose3:
-            case JumpUIType.EquipCompose4:
-            case JumpUIType.ComposeTicketFairy:
-            case JumpUIType.ComposeTicketGod:
-            case JumpUIType.ComposeTicketIce:
-                int[] types = ConfigParse.GetMultipleStr<int>(_tagWinSearchModel.SelectActive);
-                if (types.Length > 0)
-                {
-                    if (!composeModel.CheckIsComposeByType(_tagWinSearchModel.TABID+1,types[0],types[1]))
-                    {
-                        return;
-                    }
-                }
-                break;
-            case JumpUIType.CeremonyRecharge:
-            case JumpUIType.CeremonyFire:
-            case JumpUIType.CeremonyPeopleToHi:
-            case JumpUIType.CeremonyOutof:
-                if (!OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.FairyCeremony))
-                {
-                    SysNotifyMgr.Instance.ShowTip("InOperationTimeError");
-                    return;
-                }
-                break;
-        }
-
+        if (!CheckIsJump(jumpType)) return;
         DebugEx.Log("WindowJumpTo" + jumpType);
-
-        GetPreAllOpenWin();
-
         #region 鏉′欢鍒ゆ
         switch (jumpType)
         {
@@ -867,6 +596,286 @@
 
     }
 
+    private bool CheckIsJump(JumpUIType jumpType)
+    {
+        _tagWinSearchModel = Config.Instance.Get<WindowSearchConfig>((int)jumpType);
+
+        if (_tagWinSearchModel == null)
+        {
+            return false;
+        }
+
+        if (!FuncOpen.Instance.IsFuncOpen(_tagWinSearchModel.Lv) && _tagWinSearchModel.Lv != 0)
+        {
+            FuncOpen.Instance.ProcessorFuncErrorTip(_tagWinSearchModel.Lv);
+            return false;
+        }
+
+        switch (jumpType)
+        {
+            case JumpUIType.UnionFunc1:
+            case JumpUIType.UnionFunc2:
+            case JumpUIType.UnionWarehouse:
+            case JumpUIType.UnionHall:
+            case JumpUIType.UnionTask:
+            case JumpUIType.UnionTask2:
+            case JumpUIType.UnionActive1:
+            case JumpUIType.UnionActive2:
+            case JumpUIType.UnionBoss:
+                if (!PlayerDatas.Instance.fairyData.HasFairy)
+                {
+                    SysNotifyMgr.Instance.ShowTip("DailyQuestwinUnionLimit");
+                    return false;
+                }
+                break;
+            case JumpUIType.UnionMethod:
+                if (!fairyModel.fairyMethodToOpen)
+                {
+                    fairyModel.ProcessMethodToErrorTip();
+                    return false;
+                }
+                break;
+            case JumpUIType.UnionStore:
+                if (!fairyModel.fairyStoreOpen)
+                {
+                    fairyModel.ProcessErrorTip();
+                    return false;
+                }
+                break;
+            case JumpUIType.BigMap:
+                if (!mapModel.CanOpenLocalMapWin(PlayerDatas.Instance.baseData.MapID))
+                {
+                    SysNotifyMgr.Instance.ShowTip("MapInfo1");
+                    return false;
+                }
+                break;
+            case JumpUIType.TreasureFindHostFunc1:
+            case JumpUIType.TreasureFindHostFunc2:
+            case JumpUIType.TreasureFindHostFunc3:
+            case JumpUIType.TreasureFindHostFunc1Type2:
+            case JumpUIType.TreasureFindHostFunc2Type2:
+            case JumpUIType.TreasureFindHostFunc3Type2:
+                bool isUnlock = hostModel.IsUnlockTreasure(int.Parse(_tagWinSearchModel.SelectActive));
+                if (!isUnlock)
+                {
+                    hostModel.jumpTreasureId = 0;
+                    return false;
+                }
+                break;
+            case JumpUIType.FirstRecharge:
+                var model = ModelCenter.Instance.GetModel<VipModel>();
+                if (model.firstChargeRewardGet)
+                {
+                    model.AreadyGetFirstRecharge();
+                    return false;
+                }
+                break;
+            case JumpUIType.XMZZBattle:
+            case JumpUIType.AncientBattle:
+            case JumpUIType.IceCrystal:
+            case JumpUIType.FairyLand:
+                DailyQuestConfig dailyConfig = Config.Instance.Get<DailyQuestConfig>(_tagWinSearchModel.SelectActive);
+                if (dailyQuestModel.GetQuestState(dailyConfig.ID) != DailyQuestModel.DailyQuestState.Normal)
+                {
+                    SysNotifyMgr.Instance.ShowTip("FBIsNotOpen");
+                    return false;
+                }
+                break;
+            case JumpUIType.PlotTaskFunc3:
+                var taskmodel = ModelCenter.Instance.GetModel<PlayerTaskDatas>();
+                if (taskmodel.SideQuestsDic.Count < 1)
+                {
+                    SysNotifyMgr.Instance.ShowTip("SideQuest_None");
+                    return false;
+                }
+                break;
+            case JumpUIType.PrayforDrug:
+                var prayModel = ModelCenter.Instance.GetModel<PrayForDurgModel>();
+                if (!prayModel.CheckPrayDrugIsOpen())
+                {
+                    return false;
+                }
+                break;
+            case JumpUIType.FaBaoSoul_BenYuan:
+            case JumpUIType.FaBaoSoul_FengMo:
+            case JumpUIType.FaBaoSoul_Strength:
+            case JumpUIType.FaBaoSoul_Rune:
+            case JumpUIType.FaBaoSoul_Mount:
+            case JumpUIType.FaBaoSoul_Pet:
+            case JumpUIType.FaBaoSoul_Boss:
+            case JumpUIType.FaBaoSoul_Wings:
+            case JumpUIType.FaBaoSoul_Suit:
+            case JumpUIType.FaBaoSoul_Wash:
+                var soulId = 0;
+                if (int.TryParse(_tagWinSearchModel.SelectActive, out soulId))
+                {
+                    var soulModel = ModelCenter.Instance.GetModel<TreasureSoulModel>();
+                    if (!soulModel.IsOpenTreasureSoul(soulId))
+                    {
+                        return false;
+                    }
+                }
+                else
+                {
+                    return false;
+                }
+                break;
+            case JumpUIType.TrialExchange:
+                if (!trialDungeonModel.CompleteTrialFloor(0))
+                {
+                    trialDungeonModel.ProcessOpenTrialExchangeError();
+                    return false;
+                }
+                break;
+            case JumpUIType.Kylin:
+            case JumpUIType.Kylin1:
+            case JumpUIType.Kylin2:
+            case JumpUIType.Kylin3:
+            case JumpUIType.Kylin4:
+            case JumpUIType.Kylin5:
+            case JumpUIType.Kylin6:
+                if (!FuncOpen.Instance.IsFuncOpen(85))
+                {
+                    FuncOpen.Instance.ProcessorFuncErrorTip((int)FuncOpenEnum.Kylin);
+                    return false;
+                }
+                break;
+            case JumpUIType.OpenServerMountRank:
+                var type = int.Parse(_tagWinSearchModel.SelectActive);
+                if (rankModel.IsLock(type))
+                {
+                    SysNotifyMgr.Instance.ShowTip("InOperationTimeError");
+                    return false;
+                }
+                if (TimeUtility.OpenDay >= rankModel.openServerActivityDays)
+                {
+                    SysNotifyMgr.Instance.ShowTip("ActiveOutTime");
+                    return false;
+                }
+                break;
+            case JumpUIType.FlashSale:
+                {
+                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
+                    {
+                        OperationTimeHepler.Instance.ProcessConditionError(Operation.FlashSale);
+                        return false;
+                    }
+                }
+                break;
+            case JumpUIType.ConsumreRebate:
+                {
+                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
+                    {
+                        OperationTimeHepler.Instance.ProcessConditionError(Operation.ConsumeRebate);
+                        return false;
+                    }
+                }
+                break;
+            case JumpUIType.LimitedTimePackage:
+                {
+                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
+                    {
+                        OperationTimeHepler.Instance.ProcessConditionError(Operation.GiftPackage);
+                        return false;
+                    }
+                }
+                break;
+            case JumpUIType.BossReborn:
+                {
+                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
+                    {
+                        OperationTimeHepler.Instance.ProcessConditionError(Operation.BossReborn);
+                        return false;
+                    }
+                }
+                break;
+            case JumpUIType.VipRechargeFunc3:
+                {
+                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
+                    {
+                        ModelCenter.Instance.GetModel<FairyJadeInvestmentModel>().MessageNotification();
+                        return false;
+                    }
+                }
+                break;
+            case JumpUIType.VipRechargeFunc5:
+                if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
+                {
+                    return false;
+                }
+                break;
+            case JumpUIType.OpenServerRank:
+            case JumpUIType.OSTimeLimitGift:
+            case JumpUIType.OpenServerActivityFunc2_1:
+            case JumpUIType.OpenServerActivityFunc2_2:
+                if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
+                {
+                    SysNotifyMgr.Instance.ShowTip("ActiveOutTime");
+                    return false;
+                }
+                break;
+            case JumpUIType.OpenServerGift1:
+            case JumpUIType.OpenServerGift2:
+            case JumpUIType.OpenServerGift3:
+                var giftModel = ModelCenter.Instance.GetModel<OSGiftModel>();
+                int giftId = 0;
+                int.TryParse(_tagWinSearchModel.SelectActive, out giftId);
+                if (!giftModel.CheckActivate())
+                {
+                    if (PlayerDatas.Instance.baseData.coinPointTotal <= 0
+                        || !ModelCenter.Instance.GetModel<VipModel>().firstChargeRewardGet)
+                    {
+                        SysNotifyMgr.Instance.ShowTip("GiftNoOpen");
+                    }
+                    else if (giftModel.IsGiftBuy(giftId))
+                    {
+                        SysNotifyMgr.Instance.ShowTip("GiftAlreadyBuy");
+                    }
+                    else if (giftModel.IsGiftOverdue(giftId))
+                    {
+                        SysNotifyMgr.Instance.ShowTip("MissSell");
+                    }
+                    return false;
+                }
+                break;
+            case JumpUIType.OpenServerGift:
+                return false;
+            case JumpUIType.EquipCompose1:
+            case JumpUIType.EquipCompose2:
+            case JumpUIType.EquipCompose3:
+            case JumpUIType.EquipCompose4:
+            case JumpUIType.ComposeTicketFairy:
+            case JumpUIType.ComposeTicketGod:
+            case JumpUIType.ComposeTicketIce:
+                int[] types = ConfigParse.GetMultipleStr<int>(_tagWinSearchModel.SelectActive);
+                if (types.Length > 0)
+                {
+                    if (!composeModel.CheckIsComposeByType(_tagWinSearchModel.TABID + 1, types[0], types[1]))
+                    {
+                        return false;
+                    }
+                }
+                break;
+            case JumpUIType.CeremonyRecharge:
+            case JumpUIType.CeremonyFire:
+            case JumpUIType.CeremonyPeopleToHi:
+            case JumpUIType.CeremonyOutof:
+                if (!OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.FairyCeremony))
+                {
+                    SysNotifyMgr.Instance.ShowTip("InOperationTimeError");
+                    return false;
+                }
+                break;
+        }
+        return true;
+    }
+
+    private void CheckJumpWin<T>(int _functionalOrder = 0, bool _forceSync = true) where T : Window
+    {
+        string curOpenWin = typeof(T).Name;
+      
+    }
+
     private void GotoNormalDungeon(int _dailyQuestId, int _lineId = 0)
     {
         var config = Config.Instance.Get<DailyQuestConfig>(_dailyQuestId);
@@ -901,26 +910,20 @@
         SetJumpLogic<MultipleDifficultyDungeonWin>(0);
     }
 
+   
+
     private void SetJumpLogic<T>(int _functionalOrder = 0, bool _forceSync = true) where T : Window
     {
         string curOpenWin = typeof(T).Name;
-        if(jumpWinNameDict.ContainsKey(jumpPhase - 1))
+        if (WindowCenter.Instance.IsOpen(curOpenWin))
         {
-            if(jumpWinNameDict[jumpPhase - 1] != curOpenWin)
-            {
-                jumpWinNameDict.Add(jumpPhase, curOpenWin);
-            }
-            else
-            {
-                openWindows[jumpPhase].Clear();
-                jumpPhase -= 1;
-            }
+            Window window = WindowCenter.Instance.Get(curOpenWin);
+            window.functionOrder = _functionalOrder;
+            window.ChildActive();
+            return;
         }
-        else
-        {
-            jumpWinNameDict.Add(jumpPhase, curOpenWin);
-        }
-       
+        GetPreAllOpenWin();
+        jumpWinNameDict.Add(jumpPhase, curOpenWin);
         jumpType = _tagWinSearchModel.Type;
         switch (_tagWinSearchModel.Type)
         {
@@ -972,6 +975,10 @@
             case 1:
             case 4:
                 openWinlist = openWindows[jumpPhase];
+                if(openWinlist.Contains(obj.name))
+                {
+                    openWinlist.Remove(obj.name);
+                }
                 WindowCenter.Instance.CloseAll(WindowCenter.CloseAllIgnoreType.SystemAndCustom);
                 for (i = 0; i < openWinlist.Count; i++)
                 {
@@ -1019,6 +1026,10 @@
                 break;
             case 2:
                 openWinlist = openWindows[1];
+                if (openWinlist.Contains(obj.name))
+                {
+                    openWinlist.Remove(obj.name);
+                }
                 WindowCenter.Instance.CloseAll(WindowCenter.CloseAllIgnoreType.SystemAndCustom);
                 if (!WindowCenter.Instance.IsOpen<MainInterfaceWin>())
                 {

--
Gitblit v1.8.0