killbox/godot/scenes/characters/character_wrapper.gd
2025-02-06 09:56:39 +01:00

34 lines
1.1 KiB
GDScript

extends Node
class_name CharacterWrapper
@export var die_script: GDScript = null
var owner_placeholder: Node3D = null
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
# Characters should be always controlled by the server and synced accross client
# The owner should be responsible for the syncronization, since this node is
# just a dummy that is following the controller
set_multiplayer_authority(1)
pass # Replace with function body.
# Set the owner placeholder, so the characters can send the requests to a node
# it depends on
func set_owner_placeholder(owner: Node3D):
owner_placeholder = owner
func die():
push_warning("TODO: Implement ragdoll kind of dying and respawn character as an object")
queue_free()
func _on_area_body_part_hit(damage: int) -> void:
# The owner node should be aware of how to take damage, so we need to
# pass the value.
if owner_placeholder:
if owner_placeholder.has_method("take_damage"):
owner_placeholder.take_damage(damage)
else:
push_warning("Node doesn't know how to take the damage")