少年修仙传客户端代码仓库
client_linchunjie
2018-09-04 5c2a9ad661e0e8068ce62bcf4368d6197f229c67
3236【前端】被动技能技能孔相应修改
3个文件已修改
182 ■■■■ 已修改文件
System/DailyQuest/DayRemind.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Skill/SkillModel.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Skill/SkillPassWin.cs 144 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DayRemind.cs
@@ -43,6 +43,7 @@
    public const string FLASHSALE_REDPOINT = "FlashSale_Redpoint";
    public const string OSTIMEGIFT_REDPOINT = "OSTimeGift_Redpoint";
    public const string OSGIFT_REDPOINT = "OSGitf_Redpoint";
    public const string TASK_SKILL_HOLE = "TaskSkillHole";
    public Dictionary<string, int[]> dayRemindDic = new Dictionary<string, int[]>();
    public bool GetDayRemind(string _remindKey)
@@ -94,6 +95,7 @@
        SetDayRemind(FLASHSALE_REDPOINT);
        SetDayRemind(OSTIMEGIFT_REDPOINT);
        SetDayRemind(OSGIFT_REDPOINT);
        SetDayRemind(TASK_SKILL_HOLE);
    }
    private void SetDayRemind(string _key)
System/Skill/SkillModel.cs
@@ -49,6 +49,7 @@
        public bool jumpToPass { get; set; }
        public int minTaskHole { get; private set; }
        public int maxTaskHole { get; private set; }
        public int immediatelyUnlockTask { get; private set; }
        void ParseConfig()
        {
            for (int i = 1; i <= 3; i++)
@@ -85,6 +86,8 @@
                passEquipCnt = int.Parse(funcCfg.Numerical2);
                taskHoleDict = ConfigParse.GetDic<int, int>(funcCfg.Numerical4);
            }
            funcCfg = Config.Instance.Get<FuncConfigConfig>("PassiveSkillTask");
            immediatelyUnlockTask = int.Parse(funcCfg.Numerical2);
            funcCfg = Config.Instance.Get<FuncConfigConfig>("PassSkillEquipGetWay");
            if (funcCfg != null)
            {
@@ -350,6 +353,7 @@
                    taskHoleCondition = result;
                }
            }
            UpdateTaskHoleRedpoint();
        }
        RolePromoteModel m_PromoteModel;
@@ -527,6 +531,7 @@
            }
            playerLoginOk = true;
            UpdateRedpoint();
            UpdateTaskHoleRedpoint();
        }
        public void CheckEquipPassSkill(PlayerSkillData _skill)
@@ -645,6 +650,36 @@
            DayRemind.Instance.SetDayRemind(DayRemind.PASS_SKILL_REDPOINT, true);
            UpdateRedpoint();
        }
        public Redpoint taskHoleRedpoint = new Redpoint(10302, 1030299);
        void UpdateTaskHoleRedpoint()
        {
            taskHoleRedpoint.state = RedPointState.None;
            if (DayRemind.Instance.GetDayRemind(DayRemind.TASK_SKILL_HOLE))
            {
                return;
            }
            foreach (var hole in taskHoleDict.Keys)
            {
                var taskId = taskHoleDict[hole];
                if (taskId == immediatelyUnlockTask)
                {
                    var config = Config.Instance.Get<PyTaskConfig>(taskId);
                    if (PlayerDatas.Instance.baseData.LV >= config.lv
                        && !IsTaskHoleUnlock(hole))
                    {
                        taskHoleRedpoint.state = RedPointState.Simple;
                    }
                    return;
                }
            }
        }
        public void SetTaskHoleRemind()
        {
            DayRemind.Instance.SetDayRemind(DayRemind.TASK_SKILL_HOLE, true);
            UpdateTaskHoleRedpoint();
        }
        #endregion
        private void OnFuncStateChangeEvent(int _id)
@@ -652,6 +687,7 @@
            if (_id == 109)
            {
                UpdateRedpoint();
                UpdateTaskHoleRedpoint();
            }
        }
    }
System/Skill/SkillPassWin.cs
@@ -32,6 +32,7 @@
        [Header("GetWay")]
        [SerializeField]
        Button m_GetWayBtn;
        [SerializeField] Button m_ImmediatelyUnlock;
        [SerializeField] ScrollerController scrollerController;
        [SerializeField] RectTransform m_ContainerGetWay;
        [SerializeField] ClickScreenOtherSpace clickOtherSpace;
@@ -68,6 +69,9 @@
            }
        }
        PlayerMainDate taskMain { get { return ModelCenter.Instance.GetModel<PlayerMainDate>(); } }
        PlayerPackModel pack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
        static readonly Color equipHoleLimitColor = new Color32(250, 3, 3, 255);
        static readonly Color equipHoleUnLimitColor = new Color32(51, 8, 0, 255);
        #region Built-in
@@ -100,6 +104,7 @@
            }
            scrollerController.OnRefreshCell += OnRefreshCell;
            m_GetWayBtn.onClick.AddListener(OnGetWayBtn);
            m_ImmediatelyUnlock.onClick.AddListener(ImmediatelyUnlock);
            clickOtherSpace.AddListener(() =>
            {
                m_ContainerGetWay.gameObject.SetActive(false);
@@ -111,6 +116,7 @@
            m_DragImg.gameObject.SetActive(false);
            m_ContainerGetWay.gameObject.SetActive(false);
            m_GetWayBtn.gameObject.SetActive(false);
            m_ImmediatelyUnlock.gameObject.SetActive(false);
            flipScroll.locked = false;
            PlayerSkillDatas.OnRefreshSkill += OnRefreshSkill;
            model.OnRefreshSltSkill += OnRefreshSltSkill;
@@ -136,6 +142,24 @@
        {
            base.OnActived();
            UpdatePageBtn();
            if (model.taskHoleRedpoint.state == RedPointState.Simple)
            {
                model.SetTaskHoleRemind();
                for (int i = 0; i < equipPassSkills.Count; i++)
                {
                    PassSkillLimit limit;
                    if (model.TryGetPassSkillLimit(i, out limit))
                    {
                        if (limit.OpenSkillSlots > 0
                            && model.taskHoleDict[limit.OpenSkillSlots] == model.immediatelyUnlockTask)
                        {
                            OnClickEquipHole(i, false);
                            return;
                        }
                    }
                }
            }
        }
        protected override void OnAfterOpen()
@@ -237,33 +261,44 @@
            flipScroll.RefreshActive();
            var _equipIndex = GetEquipHoleIndex(model.presentSltSkillID);
            SetEquipHoleSelect(_equipIndex);
            m_GetWayBtn.gameObject.SetActive(CheckOpenGetWays(_equipIndex));
            m_GetWayBtn.gameObject.SetActive(CheckOpenGetWays(_equipIndex) == 1);
            m_ImmediatelyUnlock.gameObject.SetActive(CheckOpenGetWays(_equipIndex) == 2);
            OnUpdateSltSkillInfo();
        }
        private bool CheckOpenGetWays(int _index)
        private int CheckOpenGetWays(int _index)
        {
            PassSkillLimit _limit;
            if (model.TryGetPassSkillLimit(_index, out _limit))
            {
                if (_limit.level > 0 && PlayerDatas.Instance.baseData.LV < _limit.level)
                {
                    return true;
                    return 1;
                }
                else if (_limit.vipLv > 0 && PlayerDatas.Instance.baseData.VIPLv < _limit.vipLv)
                {
                    return true;
                    return 1;
                }
                else if (_limit.MountLv > 0 && promoteModel.GetMountTotallv() < _limit.MountLv)
                {
                    return true;
                    return 1;
                }
                else if (_limit.OpenSkillSlots > 0 && !model.IsTaskHoleUnlock(_limit.OpenSkillSlots))
                {
                    return false;
                    if (model.taskHoleDict.ContainsKey(_limit.OpenSkillSlots))
                    {
                        var taskId = model.taskHoleDict[_limit.OpenSkillSlots];
                        var config = Config.Instance.Get<PyTaskConfig>(taskId);
                        if (PlayerDatas.Instance.baseData.LV >= config.lv
                            && taskId == model.immediatelyUnlockTask)
                        {
                            return 2;
                        }
                    }
                    return 3;
                }
            }
            return false;
            return 0;
        }
        private void OnRefreshPlayerInfo(PlayerDataRefresh type)
@@ -411,19 +446,29 @@
                        {
                            SetEquipSkillDeActive(i);
                            equipPassSkills[i].skillData.m_SkillNameTxt.color = equipHoleLimitColor;
                            var taskName = string.Empty;
                            if (model.taskHoleDict.ContainsKey(limit.OpenSkillSlots))
                            {
                                var taskConfig = Config.Instance.Get<PyTaskConfig>(model.taskHoleDict[limit.OpenSkillSlots]);
                                if (taskConfig != null)
                                var taskId = model.taskHoleDict[limit.OpenSkillSlots];
                                var config = Config.Instance.Get<PyTaskConfig>(taskId);
                                if (PlayerDatas.Instance.baseData.LV < config.lv)
                                {
                                    var taskInfoConfig = Config.Instance.Get<TASKINFOConfig>(taskConfig.name);
                                    taskName = taskInfoConfig == null ? string.Empty : taskInfoConfig.show_writing;
                                    equipPassSkills[i].skillData.m_SkillNameTxt.text =
                                        UIHelper.ReplaceNewLine(Language.Get("PassSkillHoleLimitTask_6", config.lv));
                                    continue;
                                }
                            }
                            equipPassSkills[i].skillData.m_SkillNameTxt.text =
                                UIHelper.ReplaceNewLine(Language.Get(StringUtility.Contact("PassSkillHoleLimitTask_", limit.OpenSkillSlots)));
                            continue;
                        }
                        else if (model.taskHoleDict[limit.OpenSkillSlots] == model.immediatelyUnlockTask
                            && model.IsTaskHoleUnlock(limit.OpenSkillSlots))
                        {
                            if (m_ImmediatelyUnlock.gameObject.activeSelf)
                            {
                                m_ImmediatelyUnlock.gameObject.SetActive(false);
                            }
                        }
                    }
                }
@@ -445,7 +490,7 @@
                var dis = Vector3.Distance(des.center, src.center);
                if (dis < rect.rect.width / 2)
                {
                    if (CheckOpenGetWays(i))
                    if (CheckOpenGetWays(i) != 0)
                    {
                        //SoundPlayer.Instance.PlayUIAudio(2);
                        return;
@@ -477,7 +522,8 @@
            UpdatePassEquipPageBtn();
            var _equipIndex = GetEquipHoleIndex(model.presentSltSkillID);
            SetEquipHoleSelect(_equipIndex);
            m_GetWayBtn.gameObject.SetActive(CheckOpenGetWays(_equipIndex));
            m_GetWayBtn.gameObject.SetActive(CheckOpenGetWays(_equipIndex) == 1);
            m_ImmediatelyUnlock.gameObject.SetActive(CheckOpenGetWays(_equipIndex) == 2);
        }
        private void UpdatePassEquipPageBtn()
@@ -488,10 +534,11 @@
            }
        }
        private void OnClickEquipHole(int index)
        private void OnClickEquipHole(int index, bool requireRemind = true)
        {
            PassSkillLimit limit;
            m_GetWayBtn.gameObject.SetActive(false);
            m_ImmediatelyUnlock.gameObject.SetActive(false);
            SetEquipHoleSelect(index);
            if (model.TryGetPassSkillLimit(index, out limit))
            {
@@ -499,7 +546,10 @@
                {
                    if (PlayerDatas.Instance.baseData.LV < limit.level)
                    {
                        SysNotifyMgr.Instance.ShowTip("PassEquipLimitLevel", limit.level);
                        if (requireRemind)
                        {
                            SysNotifyMgr.Instance.ShowTip("PassEquipLimitLevel", limit.level);
                        }
                        m_GetWayBtn.gameObject.SetActive(true);
                    }
                }
@@ -507,7 +557,10 @@
                {
                    if (PlayerDatas.Instance.baseData.VIPLv < limit.vipLv)
                    {
                        SysNotifyMgr.Instance.ShowTip("PassEquipLimitVip", limit.vipLv);
                        if (requireRemind)
                        {
                            SysNotifyMgr.Instance.ShowTip("PassEquipLimitVip", limit.vipLv);
                        }
                        m_GetWayBtn.gameObject.SetActive(true);
                        return;
                    }
@@ -516,7 +569,10 @@
                {
                    if (promoteModel.GetMountTotallv() < limit.MountLv)
                    {
                        SysNotifyMgr.Instance.ShowTip("PassEquipLimitMountLevel", limit.MountLv);
                        if (requireRemind)
                        {
                            SysNotifyMgr.Instance.ShowTip("PassEquipLimitMountLevel", limit.MountLv);
                        }
                        m_GetWayBtn.gameObject.SetActive(true);
                    }
                }
@@ -524,17 +580,24 @@
                {
                    if (!model.IsTaskHoleUnlock(limit.OpenSkillSlots))
                    {
                        var taskName = string.Empty;
                        if (model.taskHoleDict.ContainsKey(limit.OpenSkillSlots))
                        {
                            var taskConfig = Config.Instance.Get<PyTaskConfig>(model.taskHoleDict[limit.OpenSkillSlots]);
                            if (taskConfig != null)
                            var taskId = model.taskHoleDict[limit.OpenSkillSlots];
                            var config = Config.Instance.Get<PyTaskConfig>(taskId);
                            if (PlayerDatas.Instance.baseData.LV < config.lv)
                            {
                                var taskInfoConfig = Config.Instance.Get<TASKINFOConfig>(taskConfig.name);
                                taskName = taskInfoConfig == null ? string.Empty : taskInfoConfig.show_writing;
                                m_GetWayBtn.gameObject.SetActive(false);
                                return;
                            }
                            if (taskId == model.immediatelyUnlockTask)
                            {
                                m_ImmediatelyUnlock.gameObject.SetActive(true);
                            }
                        }
                        SysNotifyMgr.Instance.ShowTip(StringUtility.Contact("PassSkillHoleLimitTask_", limit.OpenSkillSlots));
                        if (requireRemind)
                        {
                            SysNotifyMgr.Instance.ShowTip(StringUtility.Contact("PassSkillHoleLimitTask_", limit.OpenSkillSlots));
                        }
                        m_GetWayBtn.gameObject.SetActive(false);
                    }
                }
@@ -562,6 +625,39 @@
            m_ContainerGetWay.gameObject.SetActive(true);
        }
        void ImmediatelyUnlock()
        {
            var count = pack.GetItemCountByID(PackType.rptItem, taskMain.ItemID);
            if (count >= taskMain.ItemNumber)
            {
                task.CompletionOfTask(model.immediatelyUnlockTask);
            }
            else
            {
                var requireJade = (ulong)((taskMain.ItemNumber - count) * taskMain.UnitPrice);
                ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("PassiveSkillTask3", requireJade),
                    (bool isOk) =>
                {
                    if (isOk)
                    {
                        if (UIHelper.GetMoneyCnt(1) >= requireJade)
                        {
                            task.CompletionOfTask(model.immediatelyUnlockTask);
                        }
                        else
                        {
                            if (VersionConfig.Get().isBanShu)
                            {
                                SysNotifyMgr.Instance.ShowTip("GoldErr");
                                return;
                            }
                            WindowCenter.Instance.Open<RechargeTipWin>();
                        }
                    }
                });
            }
        }
        private void OnClickFunc(CellView cell)
        {
            WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)cell.index);