feat: implement networked match HUD with real-time scoreboard and killfeed systems

This commit is contained in:
DottsGit
2026-06-06 13:49:12 -04:00
parent aefed46daf
commit 168bd8f1ce
11 changed files with 501 additions and 13 deletions
+16
View File
@@ -61,6 +61,22 @@ func take_damage(amount: float, hit_position: Vector3, source: Node = null) -> v
if health <= 0:
_die(hit_position, source, dmg_taken)
var nm = get_node_or_null("/root/NetworkManager")
if nm and multiplayer.has_multiplayer_peer():
var killer_id = 0
var weapon_name = "Killed"
if source:
if source.has_method("get_multiplayer_authority"):
killer_id = source.get_multiplayer_authority()
elif "owner_player" in source and source.owner_player:
killer_id = int(str(source.owner_player.name))
elif source is CharacterBody3D:
killer_id = int(str(source.name))
if source.has_method("get_weapon_name"):
weapon_name = source.get_weapon_name()
nm.register_kill.rpc(-1, killer_id, weapon_name, "Target Dummy")
else:
_wiggle()
+16
View File
@@ -104,6 +104,22 @@ func take_damage(amount: float, hit_position: Vector3, source: Node = null) -> v
if health <= 0:
_die(hit_position, source, dmg_taken)
var nm = get_node_or_null("/root/NetworkManager")
if nm and multiplayer.has_multiplayer_peer():
var killer_id = 0
var weapon_name = "Killed"
if source:
if source.has_method("get_multiplayer_authority"):
killer_id = source.get_multiplayer_authority()
elif "owner_player" in source and source.owner_player:
killer_id = int(str(source.owner_player.name))
elif source is CharacterBody3D:
killer_id = int(str(source.name))
if source.has_method("get_weapon_name"):
weapon_name = source.get_weapon_name()
nm.register_kill.rpc(-1, killer_id, weapon_name, "Walking Dummy")
else:
_wiggle()