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