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 player_last_seen
|
||||||
var points_of_interest = []
|
var points_of_interest = []
|
||||||
|
|
||||||
|
var damage_buffer = []
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
SignalBus.suspicious_sound.connect(add_point_of_interest)
|
SignalBus.suspicious_sound.connect(add_point_of_interest)
|
||||||
SignalBus.engaging_target.connect(investigate_nearby_combat)
|
SignalBus.engaging_target.connect(investigate_nearby_combat)
|
||||||
@@ -103,22 +105,32 @@ func _process(delta):
|
|||||||
look_at_player()
|
look_at_player()
|
||||||
|
|
||||||
move_and_slide()
|
move_and_slide()
|
||||||
|
apply_damage()
|
||||||
|
|
||||||
func stun():
|
func stun():
|
||||||
change_state_to("stunned")
|
change_state_to("stunned")
|
||||||
|
|
||||||
func take_damage(dam,bullet_damage):
|
func apply_damage():
|
||||||
SignalBus.emit_signal("enemy_hit")
|
if damage_buffer.size() > 0 and health > 0:
|
||||||
health -= dam * bullet_damage
|
var damage_info = damage_buffer.pop_front()
|
||||||
health_bar_sprite.visible = true
|
var dam = damage_info['dam']
|
||||||
health_bar_sprite.health_update()
|
var bullet_damage = damage_info['bullet_damage']
|
||||||
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:
|
SignalBus.emit_signal("enemy_hit")
|
||||||
change_state_to("die")
|
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):
|
func change_state_to(set_state):
|
||||||
state_machine.on_child_transition(state_machine.current_state,set_state)
|
state_machine.on_child_transition(state_machine.current_state,set_state)
|
||||||
|
|||||||
Reference in New Issue
Block a user