reloading works and returns to idle. still need to fix idle scanning

This commit is contained in:
derek
2025-04-22 15:50:59 -05:00
parent e7fd5bd4b3
commit 6217725c19
10 changed files with 73 additions and 23 deletions

Binary file not shown.

View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://baf2pywa43qeu"
path="res://.godot/imported/servo loop_mixdown.wav-b041ad0177f5fc89f0a6f0bc2694d0f5.sample"
[deps]
source_file="res://assets/Audio/Enemy SFX/servo loop_mixdown.wav"
dest_files=["res://.godot/imported/servo loop_mixdown.wav-b041ad0177f5fc89f0a6f0bc2694d0f5.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=2
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

View File

@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://rfcd10vkegto"
path="res://.godot/imported/servo-motor-SBA-300109173 - LOOP.mp3-463fc87717770b39917f7522526876eb.mp3str"
[deps]
source_file="res://assets/Audio/Enemy SFX/servo-motor-SBA-300109173 - LOOP.mp3"
dest_files=["res://.godot/imported/servo-motor-SBA-300109173 - LOOP.mp3-463fc87717770b39917f7522526876eb.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@@ -816,7 +816,7 @@ random_volume_offset_db = 0.3
streams_count = 1
stream_0/stream = ExtResource("24_ekglj")
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_4ecf4"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_fborx"]
random_pitch = 1.1
streams_count = 1
stream_0/stream = ExtResource("25_lr3lm")
@@ -1090,8 +1090,8 @@ pitch_scale = 0.7
[node name="Reload" type="AudioStreamPlayer3D" parent="AUIDO"]
stream = SubResource("AudioStreamRandomizer_ekglj")
[node name="Servo" type="AudioStreamPlayer3D" parent="AUIDO"]
stream = SubResource("AudioStreamRandomizer_4ecf4")
[node name="ServoSingle" type="AudioStreamPlayer3D" parent="AUIDO"]
stream = SubResource("AudioStreamRandomizer_fborx")
volume_db = -2.5
unit_size = 5.0

File diff suppressed because one or more lines are too long

View File

@@ -3,7 +3,6 @@ class_name EnemyAttack
var heartbeat : float = 3.0
@export var mag_size = 5
@export var between_shot_time : Vector2 = Vector2(.5,2.0)
@export var reload_time : float = 7.0
@@ -16,7 +15,7 @@ var shot_timer = 0.0
func Enter():
super()
update_waypoint()
ammo = mag_size
ammo = enemy.max_ammo
func update_waypoint():
enemy.nav_agent.set_target_position(player.global_position)
@@ -33,7 +32,7 @@ func Update(delta):
else:
if enemy.turret_look_next.is_colliding() and enemy.turret_look_next.get_collider().is_in_group("player"):
shot_timer = randf_range(between_shot_time.x,between_shot_time.y)
ammo -= 1
ammo -= 2
enemy.turret_material.emission_enabled = true
await get_tree().create_timer(.1).timeout
attack()
@@ -64,7 +63,7 @@ func attack():
func reload():
await get_tree().create_timer(reload_time).timeout
ammo = mag_size
ammo = enemy.max_ammo
func fire(barrel):
var instance_bullet = enemy.bullet.instantiate()

View File

@@ -40,6 +40,10 @@ func Update(delta: float):
func Physics_Update(delta : float):
if enemy:
#turret transform
enemy.turret_look_next.rotation = Vector3(0,scan_direction,0)
enemy.turret_look.rotation = lerp(enemy.turret_look.rotation,enemy.turret_look_next.rotation,delta * enemy.turret_look_speed)
var destination = enemy.nav_agent.get_next_path_position()
var local_destination = destination - enemy.global_position
var direction = local_destination.normalized()
@@ -49,7 +53,6 @@ func Physics_Update(delta : float):
var look_target = enemy.spider_look_next.global_rotation.y
enemy.global_rotation.y = lerp(enemy.global_rotation.y,look_target,delta * 3)
enemy.turret_look.rotation.y = lerp(enemy.turret_look.rotation.y,enemy.spider_look_next.rotation.y + deg_to_rad(scan_direction),delta * enemy.turret_look_speed)
if enemy.turret_look.is_colliding() and enemy.turret_look.get_collider() is Player:
Transitioned.emit(self,"attack")

View File

@@ -1,7 +1,6 @@
extends EnemyState
class_name EnemyReload
@export var reload_time : float = 7.0
@export var reload_sound : AudioStreamPlayer3D
@export var run_distance : float = 3
@@ -13,11 +12,11 @@ var remaining_bullets
func Enter():
super()
remaining_bullets = enemy.max_ammo
enemy.servo_audio.play()
enemy.servo_single.play()
func Exit():
super()
enemy.servo_audio.play()
enemy.servo_single.play()
func update_waypoint():
var direction = (player.global_position - enemy.global_position).normalized()
@@ -30,7 +29,7 @@ func Update(delta):
update_waypoint()
if remaining_bullets > 0:
if !reload_sound.is_playing() and !enemy.servo_audio.is_playing():
if !reload_sound.is_playing():
remaining_bullets -= 1
reload_sound.play()
else:
@@ -51,7 +50,10 @@ func Physics_Update(delta):
enemy.global_rotation.y = lerp(enemy.global_rotation.y,look_target,delta * 3)
func finished_reload():
if enemy.turret_look_next.is_colliding() and enemy.turret_look_next.get_collider() is Player:
Transitioned.emit(self,"attack")
if enemy.turret_look_next.is_colliding():
if enemy.turret_look_next.get_collider() is Player:
Transitioned.emit(self,"attack")
else:
Transitioned.emit(self,"idle")
else:
Transitioned.emit(self,"idle")

View File

@@ -8,7 +8,7 @@ var last_enemy : bool = false
@export var start_health = 3
@export var SPEED = 3.0
@export var turret_look_speed = 6
@export var max_ammo = 5
@export var max_ammo = 10
@export var loot_amount = 2
@export var nav_agent : NavigationAgent3D
@@ -55,7 +55,8 @@ $body/leg4/foot4/foot4outline,
$body/leg4/leg4outline,
$body/bodyoutline]
@onready var health_bar_sprite: Sprite3D = $HealthBarSprite
@onready var servo_audio: AudioStreamPlayer3D = $AUIDO/Servo
@onready var servo_single: AudioStreamPlayer3D = $AUIDO/ServoSingle
@onready var servo_loop: AudioStreamPlayer3D = $AUIDO/ServoLoop
var gravity = 9.8
@@ -73,6 +74,7 @@ var player_last_seen
var knocked = false
var stunned = false
var health
var turret_current_moving_speed
func _ready():
health = start_health
@@ -87,6 +89,9 @@ func _ready():
func _process(delta):
move_and_slide()
turret_current_moving_speed = (turret_look_next.rotation - turret_look.rotation).length()
#if turret_current_moving_speed > 1:
#servo_single.play()
func stun():
@@ -106,9 +111,3 @@ func save():
"health" : health
}
return save_dict
func _on_area_3d_body_entered(body: Node3D) -> void:
pass # Replace with function body.
func _exit_tree() -> void:
get_parent().enemies.erase(self)