public virtual void ForceStopSkill() { MoveTarget = null; m_SkillManager.ResetWeapons(); m_Status = MyCharacterStatus.kIdle; AnimationClip anim = GetCurAnimationClip(); if (anim != null) { m_ObjAnimation[anim.name].speed = 0; } if (m_SkillMovement != null) { m_SkillMovement.StopMove(); } if (m_IsSkillActive && !CanStopBackSwing()) { StopSkillEffects(); if (m_ColliderManager != null) { m_ColliderManager.StopSkillColliders(SkillId); } } m_IsSkillActive = false; LogicSystem.NotifyGfxAnimationFinish(gameObject); if (m_IsControlMove) { LogicSystem.NotifyGfxMoveControlFinish(gameObject); } m_SkillPlayingEffect.Clear(); }
public virtual bool StartSkill() { if (!CanStart()) { return(false); } ImpactSystem.Instance.StopAllImpacts(gameObject); LogicSystem.NotifyGfxAnimationStart(gameObject); if (m_IsControlMove) { LogicSystem.NotifyGfxMoveControlStart(gameObject); } m_Status = MyCharacterStatus.kSkilling; m_StartTime = Time.time; m_IsSkillActive = true; m_IsHaveCollideMoveCurve = false; m_ClampedTime = 0; if (m_ColliderManager != null) { m_ColliderManager.ClearColliders(); } if (m_RageCast > 0) { DashFire.SharedGameObjectInfo selfObjInfo = DashFire.LogicSystem.GetSharedGameObjectInfo(gameObject); DashFire.LogicSystem.NotifyGfxHitTarget(gameObject, m_CostImpact, gameObject, 0); } return(true); }