very happy with idle script now
This commit is contained in:
@@ -1,37 +1,40 @@
|
||||
extends EnemyState
|
||||
class_name EnemyIdle
|
||||
|
||||
@export var idle_time_range : Vector2 = Vector2(5,7)
|
||||
@export var wander_distance_max : float = 30.0
|
||||
@export var wander_distance_max : float = 15.0
|
||||
@export var scan_cone_angle : float = 90
|
||||
@export var scan_time : float = 3
|
||||
|
||||
var idle_timer
|
||||
var scan_timer
|
||||
var scan_direction
|
||||
|
||||
func Enter():
|
||||
idle_timer = randf_range(idle_time_range.x,idle_time_range.y)
|
||||
scan_direction = scan_cone_angle/2
|
||||
scan_timer = scan_time
|
||||
get_new_wander_point()
|
||||
|
||||
func Update(delta):
|
||||
#attack_on_sight()
|
||||
if idle_timer > 0:
|
||||
idle_timer -= delta
|
||||
if scan_timer > 0:
|
||||
scan_timer -= delta
|
||||
else:
|
||||
get_new_wander_point()
|
||||
|
||||
change_scan_direction()
|
||||
|
||||
func Physics_Update(delta):
|
||||
debug_marker(move_target)
|
||||
move_to_nav_point(delta)
|
||||
#turret_look(delta)
|
||||
if enemy.nav_agent.is_navigation_finished():
|
||||
get_new_wander_point()
|
||||
else:
|
||||
move_to_nav_point(delta)
|
||||
turret_scan_look(enemy.nav_agent.get_next_path_position(),scan_direction,delta)
|
||||
|
||||
func get_new_wander_point():
|
||||
#reset timer
|
||||
idle_timer = randf_range(idle_time_range.x,idle_time_range.y)
|
||||
var x = randf_range(-wander_distance_max,wander_distance_max)
|
||||
var z = randf_range(-wander_distance_max,wander_distance_max)
|
||||
move_target = enemy.global_position + Vector3(x,0,z)
|
||||
enemy.nav_agent.set_target_position(move_target)
|
||||
|
||||
print("MOVE TARGET : ",move_target)
|
||||
|
||||
get_turret_look_destination()
|
||||
|
||||
func get_turret_look_destination():
|
||||
look_target = move_target + Vector3(0,3,0)
|
||||
func change_scan_direction():
|
||||
scan_timer = scan_time
|
||||
scan_direction = -scan_direction
|
||||
|
||||
Reference in New Issue
Block a user