少年修仙传客户端代码仓库
Client_PangDeRong
2018-08-23 6ef98b867395290c9ef834ef3f99a708b374e7f0
System/Skill/SkillPassWin.cs
@@ -25,6 +25,7 @@
        [SerializeField] Button m_LeftBtn;
        [SerializeField] Button m_RightBtn;
        [SerializeField] List<SkillCell> equipPassSkills = new List<SkillCell>();
        [SerializeField] List<UIEffect> equipPassEffects = new List<UIEffect>();
        [SerializeField] Image m_DragImg;
        [SerializeField] Image m_DragSkillImg;
        [SerializeField] List<Button> m_PageBtns = new List<Button>();
@@ -36,6 +37,7 @@
        [SerializeField] ClickScreenOtherSpace clickOtherSpace;
        private List<SkillConfig> skillListPass = new List<SkillConfig>();
        private int presentSltEquipIndex = -1;
        Coroutine cacheCoroutine = null;
        SkillModel m_Model;
        SkillModel model
        {
@@ -44,6 +46,8 @@
                return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<SkillModel>());
            }
        }
        PlayerTaskDatas task { get { return ModelCenter.Instance.GetModel<PlayerTaskDatas>(); } }
        RolePromoteModel m_PromoteModel;
        RolePromoteModel promoteModel
@@ -119,6 +123,13 @@
            UpdateEquipPassSkill();
            SetEquipHoleSelect(GetEquipHoleIndex(model.presentSltSkillID));
            DayRemind.Instance.SetDayRemind(DayRemind.PASS_SKILL_REDPOINT, true);
            model.taskUnlockUpdate += TaskUnlockUpdate;
            if (cacheCoroutine != null)
            {
                StopCoroutine(cacheCoroutine);
                cacheCoroutine = null;
            }
        }
        protected override void OnActived()
@@ -129,6 +140,7 @@
        protected override void OnAfterOpen()
        {
            DisplayEffect();
        }
        protected override void OnPreClose()
@@ -138,12 +150,52 @@
            model.OnRefreshSltSkill -= OnRefreshSltSkill;
            model.UpdatePassEquipSkillEvent -= UpdatePassEquipSkillEvent;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= OnRefreshPlayerInfo;
            model.taskUnlockUpdate -= TaskUnlockUpdate;
            model.SetDayRemind();
            model.UnlockPassHole = 0;
        }
        protected override void OnAfterClose()
        {
            model.SendEquipPage();
        }
        private void TaskUnlockUpdate()
        {
            DisplayEffect();
        }
        void DisplayEffect()
        {
            if (model.UnlockPassHole != 0)
            {
                var index = 0;
                for (int i = 0; i < equipPassSkills.Count; i++)
                {
                    PassSkillLimit limit;
                    if (model.TryGetPassSkillLimit(i, out limit))
                    {
                        if (limit.OpenSkillSlots != 0 && limit.OpenSkillSlots == model.UnlockPassHole)
                        {
                            index = i;
                            break;
                        }
                    }
                }
                model.UnlockPassHole = 0;
                if (index >= 0 && index < equipPassEffects.Count)
                {
                    equipPassEffects[index].Play();
                    cacheCoroutine = StartCoroutine(Co_UnlockEffectComplete());
                }
            }
        }
        IEnumerator Co_UnlockEffectComplete()
        {
            yield return WaitingForSecondConst.WaitMS800;
            SysNotifyMgr.Instance.ShowTip("PassNewHole");
            UpdateEquipPassSkill();
        }
        protected override void LateUpdate()
@@ -201,6 +253,10 @@
                    return true;
                }
                else if (_limit.MountLv > 0 && promoteModel.GetMountTotallv() < _limit.MountLv)
                {
                    return true;
                }
                else if (_limit.OpenSkillSlots > 0 && !model.IsTaskHoleUnlock(_limit.OpenSkillSlots))
                {
                    return true;
                }
@@ -347,6 +403,26 @@
                            continue;
                        }
                    }
                    else if (limit.OpenSkillSlots > 0)
                    {
                        if (!model.IsTaskHoleUnlock(limit.OpenSkillSlots) || model.UnlockPassHole == limit.OpenSkillSlots)
                        {
                            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 taskInfoConfig = Config.Instance.Get<TASKINFOConfig>(taskConfig.name);
                                    taskName = taskInfoConfig == null ? string.Empty : taskInfoConfig.show_writing;
                                }
                            }
                            equipPassSkills[i].skillData.m_SkillNameTxt.text = Language.Get("PassSkillHoleLimitTask", taskName);
                            continue;
                        }
                    }
                }
                int _skillId = 0;
                equipPassSkills[i].skillData.m_SkillNameTxt.text = string.Empty;
@@ -441,6 +517,24 @@
                        m_GetWayBtn.gameObject.SetActive(true);
                    }
                }
                else if (limit.OpenSkillSlots > 0)
                {
                    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 taskInfoConfig = Config.Instance.Get<TASKINFOConfig>(taskConfig.name);
                                taskName = taskInfoConfig == null ? string.Empty : taskInfoConfig.show_writing;
                            }
                        }
                        SysNotifyMgr.Instance.ShowTip("PassEquipLimitTask", taskName);
                        m_GetWayBtn.gameObject.SetActive(true);
                    }
                }
            }
        }