feat: implement Stop N Go arena, animation system, and lobby manager features

This commit is contained in:
Yogi Wiguna
2026-03-30 15:06:21 +08:00
parent 52d9b4bffb
commit 42e96a7ed9
45 changed files with 1110 additions and 79 deletions
+1 -1
View File
@@ -64,7 +64,7 @@ var disconnect_reason: String = ""
# Stop N Go settings
var sng_go_duration: int = 20
var sng_stop_duration: int = 4
var sng_required_goals: int = 8
var sng_required_goals: int = 1
# Tekton Doors settings
var doors_swap_time: int = 15
+6
View File
@@ -191,6 +191,12 @@ func spawn_boost_reward() -> bool:
return false
if player.special_tiles_manager and player.special_tiles_manager.has_method("spawn_powerups_around"):
# Trigger the synced floor spawn animation
if player.has_method("rpc"):
player.rpc("sync_floor_spawn_animation")
elif player.has_method("play_floor_spawn"):
player.play_floor_spawn()
# Spawn tiles (Stop N Go gets only common, Free Mode gets 60/40 ratio)
player.special_tiles_manager.spawn_powerups_around(player.current_position, true, false, true)
+7
View File
@@ -145,6 +145,13 @@ func _update_hud_visuals():
var player_node = main.get_node_or_null(str(my_id))
if player_node:
NotificationManager.send_message(player_node, "ALL GOALS COMPLETE!", NotificationManager.MessageType.GOAL)
# Play looping "GoFinish" animation to signals the Go phase for this player
if main and main.get("vfx_manager"):
if main.vfx_manager.has_method("play_go_finish_animation"):
main.vfx_manager.play_go_finish_animation()
elif main.vfx_manager.has_method("play_go_animation"):
main.vfx_manager.play_go_animation()
else:
mission_label.add_theme_color_override("font_color", Color.WHITE)
_has_notified_mission_complete = false