少年修仙传客户端代码仓库
client_Wu Xijin
2019-05-25 653839f93f5e3b7d76bbb9732868512f33ab67a2
6946 印记技能表现
4个文件已修改
81 ■■■■■ 已修改文件
System/GeneralConfig/GeneralDefine.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainWin/MainWinSkillController.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainWin/SkillButton.cs 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/YinJi/YinJiModel.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GeneralConfig/GeneralDefine.cs
@@ -194,6 +194,7 @@
    public static Dictionary<int, CameraController.LookAtData> NpcDieSetCamera = new Dictionary<int, CameraController.LookAtData>();
    public static int BlueEquipJumpLevel { get; private set; }
    public static int[] defenseGetWays { get; private set; }
    public static Dictionary<int, int> skillYinjis { get; private set; }
    public static void Init()
    {
@@ -792,6 +793,7 @@
            }
            defenseGetWays = GetIntArray("DefenseGetWays", 1);
            skillYinjis = ConfigParse.GetDic<int, int>(GetInputString("SkillYinji", 1));
        }
        catch (Exception ex)
        {
System/MainWin/MainWinSkillController.cs
@@ -37,7 +37,7 @@
        public MainWinSkillController()
        {
            PlayerSkillDatas.OnRefreshSkill -= OnSkillRefresh;
            PlayerSkillDatas.OnRefreshSkill += OnSkillRefresh;
            Skill.RefreshCD += OnSkillCDRefresh;
            GA_Hero.OnStateEnter += OnSkillStateEnter;
@@ -271,6 +271,16 @@
                return false;
            }
            public bool IsExclusiveCountDown()
            {
                if (exclusiveOverTime > Time.realtimeSinceStartup)
                {
                    return true;
                }
                return false;
            }
            public float GetCountDownFillAmount()
            {
                if (exclusiveOverTime > Time.realtimeSinceStartup)
System/MainWin/SkillButton.cs
@@ -36,6 +36,7 @@
        [SerializeField] ScaleTween m_ScaleTween;
        [SerializeField] Image m_Selected;
        [SerializeField] LongPressShowPanel m_SkillTip;
        [SerializeField] UIEffect m_YinjiEffect;
        public Image icon { get { return m_Icon; } }
        public Transform locked { get { return m_Locked; } }
@@ -52,6 +53,9 @@
        public void Initialize(int skillId)
        {
            this.skillId = skillId;
            Debug.LogFormat("这个技能是:{0}", this.skillId);
            if (this.skillId == 0)
            {
                locked.gameObject.SetActive(true);
@@ -75,6 +79,11 @@
            m_Selected.gameObject.SetActive(false);
            DisplaySkillDynamicInfo(true);
            HideSkillTip();
            PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerDataRefresh;
            if (GeneralDefine.skillYinjis.ContainsKey(this.skillId))
            {
                PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataRefresh;
            }
            this.enabled = true;
        }
@@ -92,6 +101,7 @@
                HideSkillTip();
            }
            PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerDataRefresh;
            this.enabled = false;
        }
@@ -136,6 +146,7 @@
                if (timer < 0f)
                {
                    var countDown = MainWinSkillController.Instance.GetSkillCD(m_Index).value.GetCountDown();
                    if (countDown > 1)
                    {
                        m_CoolDown.text = countDown.ToString("f0");
@@ -146,6 +157,12 @@
                    }
                    timer += 1f;
                }
                inCountDown = MainWinSkillController.Instance.GetSkillCD(m_Index).value.IsCountDown();
                if (!inCountDown)
                {
                    PlayYinjiEffect();
                }
            }
            else
@@ -401,6 +418,8 @@
                {
                    m_CoolDown.text = "";
                }
                PlayYinjiEffect();
            }
            var skillForbid = MainWinSkillController.Instance.GetSkillForbid(m_Index);
@@ -410,6 +429,43 @@
            }
        }
        private void OnPlayerDataRefresh(PlayerDataType type)
        {
            switch (type)
            {
                case PlayerDataType.CDBPlayerRefresh_YinjiCount:
                    PlayYinjiEffect();
                    break;
            }
        }
        YinJiModel yinjiModel { get { return ModelCenter.Instance.GetModel<YinJiModel>(); } }
        private void PlayYinjiEffect()
        {
            if (m_YinjiEffect == null)
            {
                return;
            }
            var skillCd = MainWinSkillController.Instance.GetSkillCD(m_Index);
            var playYinjiEffect = yinjiModel.IsSkillYinjiEnough(this.skillId) && !skillCd.value.IsExclusiveCountDown();
            if (playYinjiEffect)
            {
                if (!m_YinjiEffect.IsPlaying)
                {
                    m_YinjiEffect.Play();
                }
            }
            else
            {
                if (m_YinjiEffect.IsPlaying)
                {
                    m_YinjiEffect.Stop();
                }
            }
        }
    }
}
System/YinJi/YinJiModel.cs
@@ -31,6 +31,17 @@
            yinjiEndTime = Time.time + PlayerDatas.Instance.baseData.yinjiTime * 0.001f;
        }
        public bool IsSkillYinjiEnough(int skillId)
        {
            if (!GeneralDefine.skillYinjis.ContainsKey(skillId))
            {
                return false;
            }
            var yinjiNeed = GeneralDefine.skillYinjis[skillId];
            return PlayerDatas.Instance.baseData.yinjiCount >= yinjiNeed;
        }
    }
}