feat: network_manager — add request_spore_level + _relay_spore_level RPCs
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user