From 653839f93f5e3b7d76bbb9732868512f33ab67a2 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期六, 25 五月 2019 14:05:10 +0800
Subject: [PATCH] 6946 印记技能表现

---
 System/MainWin/SkillButton.cs |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 56 insertions(+), 0 deletions(-)

diff --git a/System/MainWin/SkillButton.cs b/System/MainWin/SkillButton.cs
index 672e8d4..1b3047e 100644
--- a/System/MainWin/SkillButton.cs
+++ b/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();
+                }
+            }
+        }
+
+
     }
 
 }

--
Gitblit v1.8.0