Spiders now spin and drop loot before dying
This commit is contained in:
@@ -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
|
||||||
@@ -104,13 +106,21 @@ func _process(delta):
|
|||||||
velocity.y -= gravity * delta
|
velocity.y -= gravity * 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
|
||||||
|
|||||||
Reference in New Issue
Block a user