private void UpdateSkillCD(SkillNode node) { if (node == null) { return; } SkillNode head = GetHead(node.Category); SkillInfo head_info = m_Owner.GetSkillStateInfo().GetSkillInfoById(head.SkillId); if (head.SkillId == node.SkillId) { head_info.BeginCD(); if (node.IsAlreadyPressUp) { head_info.CalcuteCastTime(TimeUtility.GetLocalMilliseconds() / 1000f, head_info.SkillId); } } else { SkillInfo node_info = m_Owner.GetSkillStateInfo().GetSkillInfoById(node.SkillId); if (node.IsAlreadyPressUp) { head_info.AddCD(node_info.ConfigData.CoolDownTime); } else { head_info.AddCD(node_info.ConfigData.CoolDownTime + node_info.ConfigData.CastTime); } } }
public override bool BreakCurSkill(int breaktype, SkillCategory category) { if (category == m_CurSkillNode.Category) { bool result = StopSkill(m_CurSkillNode, breaktype); if (!result) { if (!m_CurSkillNode.IsAlreadyPressUp) { m_CurSkillNode.IsAlreadyPressUp = true; SkillNode head = GetHead(m_CurSkillNode.Category); SkillInfo skillInfo = m_Owner.GetSkillStateInfo().GetSkillInfoById(head.SkillId); if (skillInfo != null) { skillInfo.CalcuteCastTime(TimeUtility.GetLocalMilliseconds() / 1000f, m_CurSkillNode.SkillId); } } else { SkillNode skillnode = m_WaiteSkillBuffer.Find(s => s.Category == category && s.IsAlreadyPressUp == false); if (skillnode != null) { skillnode.IsAlreadyPressUp = true; } } } return(result); } else { SkillNode skillnode = m_WaiteSkillBuffer.Find(s => s.Category == category && s.IsAlreadyPressUp == false); if (skillnode != null) { skillnode.IsAlreadyPressUp = true; } } return(false); }