feat: Implement core game managers, player movement logic, and initial UI scenes.
This commit is contained in:
@@ -12,6 +12,7 @@ signal ready_state_changed(player_id: int, is_ready: bool)
|
||||
signal all_players_ready()
|
||||
signal game_starting()
|
||||
signal match_duration_changed(duration_seconds: int)
|
||||
signal randomize_spawn_changed(enabled: bool)
|
||||
signal character_changed(player_id: int, character_name: String)
|
||||
signal area_changed(area_name: String)
|
||||
signal player_list_changed()
|
||||
@@ -26,6 +27,9 @@ var local_player_name: String = "Player"
|
||||
# Match duration in seconds (configurable in lobby by host)
|
||||
var match_duration: int = 180 # Default 3 minutes
|
||||
|
||||
# Randomize spawn locations (configurable in lobby by host)
|
||||
var randomize_spawn: bool = true # Default enabled
|
||||
|
||||
# Character and area selection
|
||||
var available_characters: Array[String] = ["Bob", "Gatot", "Masbro", "Oldpop"]
|
||||
var available_areas: Array[String] = ["Desert", "Forest", "City", "Factory"]
|
||||
@@ -161,6 +165,21 @@ func sync_match_duration(duration_seconds: int) -> void:
|
||||
func get_match_duration() -> int:
|
||||
return match_duration
|
||||
|
||||
func set_randomize_spawn(enabled: bool) -> void:
|
||||
"""Host sets randomize spawn. Syncs to all clients."""
|
||||
randomize_spawn = enabled
|
||||
if is_host:
|
||||
rpc("sync_randomize_spawn", enabled)
|
||||
|
||||
@rpc("authority", "call_local", "reliable")
|
||||
func sync_randomize_spawn(enabled: bool) -> void:
|
||||
"""Sync randomize spawn from host to clients."""
|
||||
randomize_spawn = enabled
|
||||
emit_signal("randomize_spawn_changed", enabled)
|
||||
|
||||
func get_randomize_spawn() -> bool:
|
||||
return randomize_spawn
|
||||
|
||||
# =============================================================================
|
||||
# Character Selection
|
||||
# =============================================================================
|
||||
|
||||
Reference in New Issue
Block a user