npcs and enemies now inherit from character state

This commit is contained in:
derek
2025-05-12 14:05:18 -05:00
parent 971ec93e35
commit 4c98bca83b
9 changed files with 2421 additions and 182 deletions

View File

@@ -8,11 +8,11 @@ func Enter():
func die():
drop_loot()
enemy.visible = false
character.visible = false
#remove from parent array
var particlespawn = enemy.die_particles.instantiate()
particlespawn.position = enemy.global_position
particlespawn.transform.basis = enemy.global_transform.basis
var particlespawn = character.die_particles.instantiate()
particlespawn.position = character.global_position
particlespawn.transform.basis = character.global_transform.basis
for particle in particlespawn.get_children():
if particle is RigidBody3D:
particle.linear_velocity += random_av_lv()["linear_velocity"]
@@ -22,15 +22,15 @@ func die():
if GameGlobals.last_hit_path == str(get_path()):
GameGlobals.last_hit_path = null
SignalBus.emit_signal("enemy_killed",enemy)
SignalBus.emit_signal("enemy_killed",character)
func drop_loot():
var number_of_drops = enemy.loot_amount
var number_of_drops = character.loot_amount
#pickup drop
while number_of_drops > 0:
var pickup_spawn = enemy.level_control.ITEM_PICKUP.instantiate()
var item_stats = enemy.level_control.pickup_spawn(false)
var pickup_spawn = character.level_control.ITEM_PICKUP.instantiate()
var item_stats = character.level_control.pickup_spawn(false)
##SET VARIABLES
pickup_spawn.pickup_type = item_stats["pickup_type"]
@@ -39,16 +39,16 @@ func drop_loot():
# Random Item Drop
pickup_spawn.position = enemy.global_position + Vector3(0,2,0) #added height to spawn location since origin is on the ground
pickup_spawn.transform.basis = enemy.global_transform.basis
pickup_spawn.linear_velocity += enemy.global_transform.basis * random_av_lv()["linear_velocity"]
pickup_spawn.angular_velocity += enemy.global_transform.basis * random_av_lv()["angular_velocity"]
pickup_spawn.position = character.global_position + Vector3(0,2,0) #added height to spawn location since origin is on the ground
pickup_spawn.transform.basis = character.global_transform.basis
pickup_spawn.linear_velocity += character.global_transform.basis * random_av_lv()["linear_velocity"]
pickup_spawn.angular_velocity += character.global_transform.basis * random_av_lv()["angular_velocity"]
await get_tree().create_timer(.05).timeout
get_tree().get_root().add_child(pickup_spawn)
number_of_drops -= 1
await number_of_drops <= 0
enemy.queue_free()
character.queue_free()
func random_av_lv():
var lv_x = randf_range(-MAX_LV,MAX_LV)