public override ACTION_RESULT ActionUpdate()
    {
        //Movement
        if (translation_finished == false)
        {
            if (GetComponent <CompAnimation>().IsAnimOverXTime(0.6f) && fx_played == false)
            {
                GetComponent <CompAudio>().PlayEvent("BossFootstep");
                fx_played = true;
            }
            if (GetComponent <CompAnimation>().IsAnimOverXTime(0.95f))
            {
                fx_played = false;
            }

            UpdateTranslation();

            if (arrive.ReachedTile() == true)
            {
                current_velocity = new Vector3(Vector3.Zero);

                if (moving_sideways == true)
                {
                    moving_sideways = false;
                    anim_comp.PlayAnimationNode("Chase");
                }

                if (interupt != true)
                {
                    if (wait_timer == 0.0f)
                    {
                        arrive.SetEnabled(false);
                        seek.SetEnabled(false);
                    }

                    wait_timer += Time.deltaTime;

                    if (wait_timer >= wait_time)
                    {
                        NextTile();
                        wait_timer = 0.0f;
                    }
                }
                else
                {
                    arrive.SetEnabled(false);
                    seek.SetEnabled(false);
                    translation_finished = true;
                    if (chase == true)
                    {
                        LookAtPlayer();
                    }
                }
            }
        }

        //Rotation
        if (rotation_finished == false)
        {
            UpdateRotation();

            if (GetComponent <Align_Steering>().RotationFinished() == true)
            {
                rotation_finished    = true;
                current_rot_velocity = 0.0f;
                align.SetEnabled(false);
                look_at_pos.y = transform_comp.position.y;
                Vector3 obj_vec = new Vector3(look_at_pos - transform_comp.position);
                transform_comp.forward = new Vector3(obj_vec.Normalized * transform_comp.forward.Length);
                SetDirection();
            }
        }

        if (rotation_finished == true && translation_finished == true)
        {
            if (interupt == true)
            {
                return(ACTION_RESULT.AR_FAIL);
            }
            return(ACTION_RESULT.AR_SUCCESS);
        }

        return(ACTION_RESULT.AR_IN_PROGRESS);
    }