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); }