public override bool IsSkillCanStart(SkillNode node) { if (node == null) { return(false); } IShooterSkill skill = m_SkillManager.GetSkillById(node.SkillId); if (skill == null) { return(false); } return(skill.CanStart()); }
public bool StartSkillById(int skillid, Vector3 targetPos) { IShooterSkill ss = GetSkillById(skillid); if (ss == null) { return(false); } if (m_CurPlaySkill == null || m_CurPlaySkill.CanBreakBySkill() && ss.CanStart()) { if (m_CurPlaySkill != null) { m_CurPlaySkill.StopSkill(); } if (ss.StartSkill(targetPos)) { m_CurPlaySkill = ss; return(true); } } return(false); }
public bool ForceStartSkillById(int skillid) { IShooterSkill ss = GetSkillById(skillid); if (ss == null) { return(false); } if (m_CurPlaySkill == null || ss.CanStart()) { Vector3 targetPos = Vector3.zero; if (m_CurPlaySkill != null) { targetPos = m_CurPlaySkill.GetTargetPos(); m_CurPlaySkill.StopSkill(); } if (ss.StartSkill(targetPos)) { m_CurPlaySkill = ss; return(true); } } return(false); }