added double buffer to enemy when applying damage
This commit is contained in:
@@ -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']
|
||||
|
||||
if health <= 0:
|
||||
change_state_to("die")
|
||||
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")
|
||||
|
||||
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user