少年修仙传客户端代码仓库
Client_PangDeRong
2018-09-30 799e41ca8d036303ebe3d3e2b2b02a21056726b9
1778 仙界盛典跳转修改
1个文件已修改
586 ■■■■ 已修改文件
System/WindowJump/WindowJumpMgr.cs 586 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowJump/WindowJumpMgr.cs
@@ -87,280 +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))
                {
                    SysNotifyMgr.Instance.ShowTip("MapInfo1");
                    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)
        {
@@ -868,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);
@@ -902,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)
            {
            Window window = WindowCenter.Instance.Get(curOpenWin);
            window.functionOrder = _functionalOrder;
            window.ChildActive();
            return;
        }
        GetPreAllOpenWin();
                jumpWinNameDict.Add(jumpPhase, curOpenWin);
            }
            else
            {
                openWindows[jumpPhase].Clear();
                jumpPhase -= 1;
            }
        }
        else
        {
            jumpWinNameDict.Add(jumpPhase, curOpenWin);
        }
        jumpType = _tagWinSearchModel.Type;
        switch (_tagWinSearchModel.Type)
        {
@@ -973,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++)
                {
@@ -1020,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>())
                {