kinda broke the AI but it's getting better
This commit is contained in:
@@ -12,17 +12,22 @@ class_name EnemyState
|
||||
func Update(delta):
|
||||
pass
|
||||
|
||||
func enemy_has_target():
|
||||
if enemy.player_last_seen != null:
|
||||
return true
|
||||
if enemy.point_of_interest != null:
|
||||
return true
|
||||
return false
|
||||
|
||||
func move_target():
|
||||
if enemy.player_last_seen != null:
|
||||
return enemy.player_last_seen
|
||||
elif enemy.points_of_interest != null:
|
||||
var move_point = {"loudness" : 0.0,"point" : Vector3.ZERO}
|
||||
for point in enemy.points_of_interest:
|
||||
if point["loudness"] > move_point["loudness"]:
|
||||
move_point = point
|
||||
return move_point["point"]
|
||||
else:
|
||||
Transitioned.emit(self,"idle")
|
||||
elif enemy.point_of_interest != null:
|
||||
return enemy.point_of_interest["point"]
|
||||
|
||||
func update_waypoint_or_idle():
|
||||
if enemy_has_target():
|
||||
enemy.nav_agent.set_target_position(move_target())
|
||||
|
||||
func attack_on_sight():
|
||||
if can_see:
|
||||
@@ -41,7 +46,8 @@ func move_target_adj():
|
||||
return Vector3(position.x,enemy.global_position.y,position.z)
|
||||
|
||||
func search_for_suspicious_sounds():
|
||||
if enemy.points_of_interest != [] and enemy.points_of_interest != null:
|
||||
if enemy.point_of_interest != null:
|
||||
enemy.player_last_seen = null
|
||||
Transitioned.emit(self,"search")
|
||||
|
||||
func rotate_to_face2D(object,target,delta,turn_speed):
|
||||
@@ -58,3 +64,6 @@ func rotate_to_face2D(object,target,delta,turn_speed):
|
||||
var target_pos2d = Vector2(target_transformed.x,target_transformed.z)
|
||||
var direction = (pos2d - target_pos2d)
|
||||
return lerp_angle(object.rotation.y,atan2(direction.x,direction.y),delta * turn_speed)
|
||||
|
||||
func clear_point_of_interest():
|
||||
enemy.point_of_interest = null
|
||||
|
||||
Reference in New Issue
Block a user