private IEnumerator DashingCoroutine(TDS_Enemy _caster) { if (!PhotonNetwork.isMasterClient) { yield break; } _caster.GetComponent <Animator>().ResetTrigger("StopDashing"); Vector3 _originalPosition = _caster.transform.position; Vector3 _endPosition = _originalPosition; if (isDashingForward) { _endPosition += (_caster.IsFacingRight ? Vector3.right : -Vector3.right) * dashingDistance; } else { _endPosition -= (_caster.IsFacingRight ? Vector3.right : -Vector3.right) * dashingDistance; } _endPosition.x = Mathf.Clamp(_endPosition.x, TDS_Camera.Instance.CurrentBounds.XMin + _caster.Agent.Radius, TDS_Camera.Instance.CurrentBounds.XMax - _caster.Agent.Radius); if (_caster is TDS_MightyMan _mightyManIn) { _mightyManIn.IsDashing = true; } while (_caster.IsAttacking && Vector3.Distance(_caster.transform.position, _endPosition) > 0) { _caster.transform.position = Vector3.MoveTowards(_caster.transform.position, _endPosition, Time.deltaTime * dashingSpeed * 10); yield return(null); } if (_caster is TDS_MightyMan _mightyManOut) { _mightyManOut.IsDashing = false; } _caster.SetAnimationState((int)EnemyAnimationState.StopDashing); if (_caster.IsAttacking) { _caster.StopAttack(); } }