follows locked on character until sight is lost for 2 seconds

This commit is contained in:
Derek
2025-04-25 08:06:09 -05:00
parent 9306a3c562
commit 56ecad377e

View File

@@ -7,11 +7,12 @@ var heartbeat : float = 3.0
@export var between_shot_time : Vector2 = Vector2(.5,2.0)
@export var reload_time : float = 7.0
@export var alarm_sound : AudioStreamPlayer3D
@export var time_before_losing_visual : float = 2.0
var ammo
var initial_timer
var shot_timer = 0.0
var visibility_timer
func Enter():
super()
@@ -22,12 +23,16 @@ func Enter():
alarm_sound.play()
func update_waypoint():
enemy.nav_agent.set_target_position(enemy.point_of_interest)
enemy.nav_agent.set_target_position(enemy.character_follow.global_position)
func Update(delta):
if enemy.point_of_interest != null:
if !enemy.is_player_visible():
if !enemy.is_player_visible():
if visibility_timer > 0:
visibility_timer -= delta
else:
Transitioned.emit(self,"search")
else:
visibility_timer = time_before_losing_visual
if heartbeat > 0:
heartbeat -= delta
@@ -52,7 +57,7 @@ func Update(delta):
Transitioned.emit(self,"reload")
func Physics_Update(delta):
enemy.turret_look_next.look_at(enemy.point_of_interest)
enemy.turret_look_next.look_at(enemy.character_follow.global_position)
enemy.turret_look.rotation = lerp(enemy.turret_look.rotation,enemy.turret_look_next.rotation,delta * enemy.turret_look_speed)
var destination = enemy.nav_agent.get_next_path_position()