they can hear now too

This commit is contained in:
derek
2025-05-02 15:52:07 -05:00
parent 083f1eec83
commit 88a60d469e
9 changed files with 131 additions and 38 deletions

View File

@@ -6,6 +6,9 @@ class_name EnemyState
@export var body_turn_speed : float = 3
@export var turret_speed : float = 6.0
@export var can_see : bool = true # indicates whether the enemy is able to see things in the state
@export var poi_investigate : bool = false
@export var poi_change_to_search : bool = false
@export var poi_update_waypoint_immediately : bool = false
@export var time_to_lose_target = 1.0
@onready var target_lost_timer = time_to_lose_target
@@ -115,6 +118,38 @@ func turret_look3D(delta):
func turret_scan_look(target,scan_direction,delta):
enemy.turret_look.global_rotation.y = rotate_to_face2D(enemy.turret_look,target,scan_direction,delta,turret_speed)
func investigate_points_of_interest(point,loudness,max_distance):
if poi_investigate:
var distance_to_point = enemy.global_position.distance_to(point)
if distance_to_point <= max_distance:
var perceived_loudness = 1/distance_to_point * loudness
var add_point = {"point" : point, "loudness" : perceived_loudness}
enemy.points_of_interest.append(add_point)
if poi_change_to_search:
Transitioned.emit(self,"search")
if poi_update_waypoint_immediately:
get_new_point_of_interest()
func has_points_to_investigate():
if enemy.player_last_seen != null:
return true
elif enemy.points_of_interest.size() > 0:
return true
else:
return false
func get_new_point_of_interest():
if enemy.player_last_seen != null:
move_target = enemy.player_last_seen
enemy.player_last_seen = null
enemy.nav_agent.set_target_position(move_target)
elif enemy.points_of_interest.size() > 0:
var point_of_interest = enemy.points_of_interest.pop_back()
move_target = point_of_interest["point"]
enemy.nav_agent.set_target_position(move_target)
func clear_points_of_interest():
enemy.points_of_interest = []