From d732abbcf8cd9baf07f38f668540711bf2ef061c Mon Sep 17 00:00:00 2001 From: Derek Dziedzic Date: Thu, 12 Jun 2025 14:40:09 -0500 Subject: [PATCH] added double buffer to enemy when applying damage --- scripts/spider.gd | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/scripts/spider.gd b/scripts/spider.gd index 983fdba..fb55ef7 100644 --- a/scripts/spider.gd +++ b/scripts/spider.gd @@ -81,6 +81,8 @@ var line_of_sight_target var player_last_seen var points_of_interest = [] +var damage_buffer = [] + func _ready(): SignalBus.suspicious_sound.connect(add_point_of_interest) SignalBus.engaging_target.connect(investigate_nearby_combat) @@ -103,22 +105,32 @@ func _process(delta): look_at_player() move_and_slide() + apply_damage() func stun(): change_state_to("stunned") -func take_damage(dam,bullet_damage): - SignalBus.emit_signal("enemy_hit") - health -= dam * bullet_damage - health_bar_sprite.visible = true - health_bar_sprite.health_update() - var number_spawn = damage_number.instantiate() - number_spawn.damage_amt = bullet_damage * dam - number_spawn.position = global_position + Vector3(0,2,0) - get_tree().get_root().add_child(number_spawn) +func apply_damage(): + if damage_buffer.size() > 0 and health > 0: + var damage_info = damage_buffer.pop_front() + var dam = damage_info['dam'] + var bullet_damage = damage_info['bullet_damage'] + + SignalBus.emit_signal("enemy_hit") + health -= dam * bullet_damage + health_bar_sprite.visible = true + health_bar_sprite.health_update() + var number_spawn = damage_number.instantiate() + number_spawn.damage_amt = bullet_damage * dam + number_spawn.position = global_position + Vector3(0,2,0) + get_tree().get_root().add_child(number_spawn) - if health <= 0: - change_state_to("die") + if health <= 0: + change_state_to("die") + + +func take_damage(dam,bullet_damage): + damage_buffer.append({'dam' : dam,'bullet_damage' : bullet_damage}) func change_state_to(set_state): state_machine.on_child_transition(state_machine.current_state,set_state)