Spiders now spin and drop loot before dying

This commit is contained in:
derek
2024-11-07 12:10:10 -06:00
parent ac5c5210ba
commit ef1ab5dccb

View File

@@ -8,7 +8,7 @@ var last_enemy : bool = false
@export var health = 3 @export var health = 3
@export var SPEED = 3.0 @export var SPEED = 3.0
const MAX_LV = 20 const MAX_LV = 30
const MAX_AV = 10 const MAX_AV = 10
@export_enum("Enemy", "Trap") var enemy_type: int @export_enum("Enemy", "Trap") var enemy_type: int
@@ -63,6 +63,8 @@ var body_look_to
var distance_to_player var distance_to_player
var hive_velocity var hive_velocity
var hive_nav_point var hive_nav_point
var dying
var can_die : bool = false
var player_in_view = false var player_in_view = false
var player_last_seen var player_last_seen
var knocked = false var knocked = false
@@ -105,12 +107,20 @@ func _process(delta):
move_and_slide() move_and_slide()
if dying:
turret.global_rotation.y += 100 * delta
#fire(barrel_1)
#fire(barrel_2)
if can_die:
die()
func _on_area_3d_body_part_hit(dam,bullet_damage): func _on_area_3d_body_part_hit(dam,bullet_damage):
health -= dam * bullet_damage health -= dam * bullet_damage
print("health: " + str(health)) print("health: " + str(health))
if health <= 0: if health <= 0:
die() dying_throws()
func _on_prefire_timer_timeout(): func _on_prefire_timer_timeout():
@@ -163,6 +173,10 @@ func spawn_casing():
instance_casing.transform.basis = casing_ejector.global_transform.basis instance_casing.transform.basis = casing_ejector.global_transform.basis
instance_casing.player_velocity = velocity * transform.basis instance_casing.player_velocity = velocity * transform.basis
func dying_throws():
dying = true
drop_loot(loot_amount)
func die(): func die():
#remove from parent array #remove from parent array
get_parent().enemies.erase(self) get_parent().enemies.erase(self)
@@ -195,5 +209,9 @@ func drop_loot(number_of_drops):
rand_item.transform.basis = self.global_transform.basis rand_item.transform.basis = self.global_transform.basis
rand_item.linear_velocity += self.global_transform.basis * Vector3(lv_x,lv_y,lv_z) rand_item.linear_velocity += self.global_transform.basis * Vector3(lv_x,lv_y,lv_z)
rand_item.angular_velocity += self.global_transform.basis * Vector3(av_x,av_y,av_z) rand_item.angular_velocity += self.global_transform.basis * Vector3(av_x,av_y,av_z)
await get_tree().create_timer(.05).timeout
get_tree().get_root().add_child(rand_item) get_tree().get_root().add_child(rand_item)
number_of_drops -= 1 number_of_drops -= 1
if number_of_drops <= 0:
can_die = true