* animate slime faster
* show loot text above head much closer to head
This commit is contained in:
@@ -2148,12 +2148,39 @@ func _die():
|
||||
is_dead = true # Ensure flag is set
|
||||
velocity = Vector2.ZERO
|
||||
is_knocked_back = false
|
||||
is_lifting = false
|
||||
is_pushing = false
|
||||
held_object = null
|
||||
|
||||
# Don't force release - let them carry the corpse
|
||||
# We'll handle release during respawn
|
||||
# CRITICAL: Release any held object/player BEFORE dying to restore their collision layers
|
||||
if held_object:
|
||||
var released_obj = held_object
|
||||
held_object = null
|
||||
is_lifting = false
|
||||
is_pushing = false
|
||||
grab_offset = Vector2.ZERO
|
||||
push_axis = Vector2.ZERO
|
||||
|
||||
# Re-enable collision for released object/player
|
||||
if _is_box(released_obj):
|
||||
released_obj.set_collision_layer_value(2, true)
|
||||
released_obj.set_collision_mask_value(1, true)
|
||||
released_obj.set_collision_mask_value(2, true)
|
||||
if "is_being_held" in released_obj:
|
||||
released_obj.is_being_held = false
|
||||
if "held_by_player" in released_obj:
|
||||
released_obj.held_by_player = null
|
||||
elif _is_player(released_obj):
|
||||
released_obj.set_collision_layer_value(1, true)
|
||||
released_obj.set_collision_mask_value(1, true)
|
||||
if released_obj.has_method("set_being_held"):
|
||||
released_obj.set_being_held(false)
|
||||
|
||||
# Sync release to network
|
||||
if multiplayer.has_multiplayer_peer() and is_multiplayer_authority() and can_send_rpcs and is_inside_tree():
|
||||
_sync_release.rpc(released_obj.get_path())
|
||||
|
||||
print(name, " released ", released_obj.name, " on death")
|
||||
else:
|
||||
is_lifting = false
|
||||
is_pushing = false
|
||||
|
||||
print(name, " died!")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user