少年修仙传客户端代码仓库
client_linchunjie
2018-10-31 8c8b1138d464267c76b09fc124cb2bab0ebb0f3b
【1.2】【前端】法宝入口添加条件限制
3个文件已修改
55 ■■■■■ 已修改文件
System/MainInterfacePanel/HighSettingTip.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureComponent.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureModel.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/HighSettingTip.cs
@@ -286,8 +286,13 @@
        }
        void OpenTreasure()
        {
            WindowCenter.Instance.Close<MainInterfaceWin>();
            var _model = ModelCenter.Instance.GetModel<TreasureModel>();
            if (!_model.SatisfyEntranceOpen())
            {
                _model.DisplayEntranceLimitHint();
                return;
            }
            WindowCenter.Instance.Close<MainInterfaceWin>();
            if (_model.GetTreasureUnlockShow(TreasureCategory.Human) != 0)
            {
                _model.currentCategory = TreasureCategory.Human;
System/Treasure/TreasureComponent.cs
@@ -719,7 +719,7 @@
            RecycleHighestEffect();
            Treasure _treasure;
            if (category == TreasureCategory.Human &&
                model.TryGetTreasure(treasureId, out _treasure) && _treasure.IsHighestStage
                model.TryGetTreasure(treasureId, out _treasure) && _treasure.IsHighestStage && _treasure.state == TreasureState.Collected
                && !model.GetTreasureFinishAnim(treasureId) && model.GetTreasureUnlockShow(TreasureCategory.Human) != treasureId)
            {
                highestSfx = SFXPlayUtility.Instance.Play(5197, root);
System/Treasure/TreasureModel.cs
@@ -213,6 +213,7 @@
        public float treasureBackPercent { get; private set; }
        public int treasureExitLvLimit { get; private set; }
        public int exitRecord { get; set; }
        public int entranceOpenCondition { get; private set; }
        public List<int> cacheGotAchievements {
            get { return m_CacheGotAchievements; }
@@ -1448,6 +1449,9 @@
            funcConfig = Config.Instance.Get<FuncConfigConfig>("TreasureNoOpen");
            treasureUnOpens.AddRange(ConfigParse.GetMultipleStr<int>(funcConfig.Numerical1));
            funcConfig = Config.Instance.Get<FuncConfigConfig>("OpenFabao");
            entranceOpenCondition = int.Parse(funcConfig.Numerical1);
        }
        const string pattern = "\\\"[0-9]+\\\":\\[[0-9|,]*\\]";
@@ -1573,6 +1577,48 @@
            }
            return 0;
        }
        public bool SatisfyEntranceOpen()
        {
            var list = GetTreasureCategory(TreasureCategory.Human);
            if (list != null && list.Count > 1)
            {
                if (treasures.ContainsKey(list[1]))
                {
                    if (treasures[list[1]].state != TreasureState.Locked)
                    {
                        return true;
                    }
                }
            }
            var taskModel = ModelCenter.Instance.GetModel<PlayerTaskDatas>();
            var missions = taskModel.MainTaskDic;
            if (missions != null)
            {
                foreach (var missionId in missions.Keys)
                {
                    if (missionId > entranceOpenCondition)
                    {
                        return true;
                    }
                    else if (missionId == entranceOpenCondition)
                    {
                        return missions[missionId].MissionState == 3;
                    }
                }
                return false;
            }
            return true;
        }
        public void DisplayEntranceLimitHint()
        {
            var taskConfig = Config.Instance.Get<PyTaskConfig>(entranceOpenCondition);
            if (taskConfig != null)
            {
                SysNotifyMgr.Instance.ShowTip("OpenFabaoHint", taskConfig.lv);
            }
        }
    }
}