starting work on enemy hearing
This commit is contained in:
@@ -16,10 +16,12 @@ var visibility_timer
|
|||||||
func Enter():
|
func Enter():
|
||||||
super()
|
super()
|
||||||
enemy.cache_player_pos()
|
enemy.cache_player_pos()
|
||||||
visibility_timer = time_before_losing_visual
|
|
||||||
update_waypoint()
|
update_waypoint()
|
||||||
|
enemy.points_of_interest = []
|
||||||
|
visibility_timer = time_before_losing_visual
|
||||||
enemy.turret_material.emission_enabled = true
|
enemy.turret_material.emission_enabled = true
|
||||||
initial_timer = initial_wait_time
|
initial_timer = initial_wait_time
|
||||||
|
|
||||||
alarm_sound.play()
|
alarm_sound.play()
|
||||||
|
|
||||||
func update_waypoint():
|
func update_waypoint():
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ func Update(delta: float):
|
|||||||
super(delta)
|
super(delta)
|
||||||
|
|
||||||
attack_on_sight()
|
attack_on_sight()
|
||||||
|
search_for_suspicious_sounds()
|
||||||
|
|
||||||
if wander_time > 0:
|
if wander_time > 0:
|
||||||
wander_time -= delta
|
wander_time -= delta
|
||||||
|
|||||||
@@ -10,6 +10,10 @@ func Enter():
|
|||||||
search_point()
|
search_point()
|
||||||
search_timer = SEARCH_TIME_MAX
|
search_timer = SEARCH_TIME_MAX
|
||||||
|
|
||||||
|
func Exit():
|
||||||
|
enemy.player_last_seen = null
|
||||||
|
enemy.points_of_interest = []
|
||||||
|
|
||||||
func Update(delta: float):
|
func Update(delta: float):
|
||||||
super(delta)
|
super(delta)
|
||||||
|
|
||||||
@@ -19,6 +23,7 @@ func Update(delta: float):
|
|||||||
Transitioned.emit(self,"idle")
|
Transitioned.emit(self,"idle")
|
||||||
|
|
||||||
attack_on_sight()
|
attack_on_sight()
|
||||||
|
search_for_suspicious_sounds()
|
||||||
search_point()
|
search_point()
|
||||||
|
|
||||||
if enemy.global_position.distance_to(move_target_adj()) < 1:
|
if enemy.global_position.distance_to(move_target_adj()) < 1:
|
||||||
|
|||||||
@@ -40,6 +40,10 @@ func move_target_adj():
|
|||||||
var position = move_target()
|
var position = move_target()
|
||||||
return Vector3(position.x,enemy.global_position.y,position.z)
|
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:
|
||||||
|
Transitioned.emit(self,"search")
|
||||||
|
|
||||||
func rotate_to_face2D(object,target,delta,turn_speed):
|
func rotate_to_face2D(object,target,delta,turn_speed):
|
||||||
#to allow both nodes and positions to be passed to this function, test the target and use Vector3 coords
|
#to allow both nodes and positions to be passed to this function, test the target and use Vector3 coords
|
||||||
var target_transformed
|
var target_transformed
|
||||||
|
|||||||
@@ -18,3 +18,6 @@ signal king_killed()
|
|||||||
signal weapon_list_changed()
|
signal weapon_list_changed()
|
||||||
|
|
||||||
## LEVEL
|
## LEVEL
|
||||||
|
|
||||||
|
##ENEMY
|
||||||
|
signal suspicious_sound(position,loudness,max_distance)
|
||||||
|
|||||||
@@ -81,9 +81,10 @@ var ammo
|
|||||||
|
|
||||||
var line_of_sight_target
|
var line_of_sight_target
|
||||||
var player_last_seen
|
var player_last_seen
|
||||||
var points_of_interest
|
var points_of_interest = []
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
|
SignalBus.suspicious_sound.connect(add_point_of_interest)
|
||||||
health = start_health
|
health = start_health
|
||||||
ammo = max_ammo
|
ammo = max_ammo
|
||||||
player = level_control.player
|
player = level_control.player
|
||||||
@@ -161,6 +162,16 @@ func debug_marker():
|
|||||||
else:
|
else:
|
||||||
debug_tracker.visible = false
|
debug_tracker.visible = false
|
||||||
|
|
||||||
|
func add_point_of_interest(point,loudness,max_distance):
|
||||||
|
print("SHOT HEARD")
|
||||||
|
var distance_to_point = 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}
|
||||||
|
points_of_interest.append(add_point)
|
||||||
|
print("POINTS OF INTEREST : ",points_of_interest)
|
||||||
|
|
||||||
|
|
||||||
func save():
|
func save():
|
||||||
var save_dict = {
|
var save_dict = {
|
||||||
"filename" : get_scene_file_path(),
|
"filename" : get_scene_file_path(),
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ class_name weapon_resource
|
|||||||
@export var smoke_enabled : bool = false
|
@export var smoke_enabled : bool = false
|
||||||
@export var bullet_force_mod = 5.0
|
@export var bullet_force_mod = 5.0
|
||||||
@export var bullet_speed = 600
|
@export var bullet_speed = 600
|
||||||
|
@export var decibels_of_gunfire_sound = 160.0
|
||||||
|
@export var max_distance_heard = 100 #in meters
|
||||||
@export_group("Gun Assets")
|
@export_group("Gun Assets")
|
||||||
@export var casing : Resource
|
@export var casing : Resource
|
||||||
@export var mag : Resource
|
@export var mag : Resource
|
||||||
|
|||||||
@@ -289,6 +289,7 @@ func projectile_initialize():
|
|||||||
|
|
||||||
func bullet_fire():
|
func bullet_fire():
|
||||||
SignalBus.emit_signal("shot_fired",weapon_info.crosshair_jump_amount)
|
SignalBus.emit_signal("shot_fired",weapon_info.crosshair_jump_amount)
|
||||||
|
SignalBus.emit_signal("suspicious_sound",global_position,weapon_info.decibels_of_gunfire_sound,weapon_info.max_distance_heard)
|
||||||
audio_fire.play()
|
audio_fire.play()
|
||||||
var bullet_spawn = projectile_initialize()
|
var bullet_spawn = projectile_initialize()
|
||||||
get_tree().current_scene.add_child(bullet_spawn)
|
get_tree().current_scene.add_child(bullet_spawn)
|
||||||
|
|||||||
Reference in New Issue
Block a user