From 7abc5258334217c769aebe3e9f21bb49c79aad36 Mon Sep 17 00:00:00 2001 From: "s0wlz (Matthias Puchstein)" Date: Thu, 16 Apr 2026 00:30:15 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20network=5Fmanager=20=E2=80=94=20add=20r?= =?UTF-8?q?equest=5Fspore=5Flevel=20+=20=5Frelay=5Fspore=5Flevel=20RPCs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruf-der-pilze/scripts/network_manager.gd | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ruf-der-pilze/scripts/network_manager.gd b/ruf-der-pilze/scripts/network_manager.gd index 2d4143b..b45c638 100644 --- a/ruf-der-pilze/scripts/network_manager.gd +++ b/ruf-der-pilze/scripts/network_manager.gd @@ -169,6 +169,21 @@ func sync_player_position(player_id: int, position: Vector3, rotation: Vector3) GameState.update_player_transform(player_id, position, rotation) +# DM calls this on server only via rpc_id(1, level) +@rpc("any_peer", "call_remote", "reliable") +func request_spore_level(level: float) -> void: + if not multiplayer.is_server(): return + var requester_id := multiplayer.get_remote_sender_id() + if players.get(requester_id, {}).get("role", "") != "dm": return + _relay_spore_level.rpc(level) + + +# Server broadcasts to all clients including itself +@rpc("authority", "call_local", "reliable") +func _relay_spore_level(level: float) -> void: + SporeLevel.current_level = level + + # Client calls this on server only (rpc_id(1, ...)) @rpc("any_peer", "call_remote", "reliable") func broadcast_roll(roller_peer_id: int, d20_result: int, modifier: int) -> void: