Add study selection and account registration flows

This commit is contained in:
hz
2026-07-11 12:39:10 -05:00
parent 0f9bd2fa78
commit 8bd7f5e4e8
8 changed files with 749 additions and 282 deletions
+12 -10
View File
@@ -13,12 +13,14 @@ var current_screen_name := ""
func _ready() -> void:
Style.apply_app_theme(self)
_build_ui()
show_screen("dashboard" if AuthState.is_logged_in else "login")
show_screen("selection" if AuthState.is_logged_in else "login", "exam")
func show_screen(screen_name: String, payload: Variant = null) -> void:
_close_app_menu()
for child in $Root/Screens.get_children():
if child.visible and child.has_method("on_hide"):
child.on_hide()
child.visible = false
var screen = screens.get(screen_name)
@@ -28,7 +30,7 @@ func show_screen(screen_name: String, payload: Variant = null) -> void:
current_screen_name = screen_name
screen.visible = true
if header_panel != null:
header_panel.visible = screen_name != "login"
header_panel.visible = screen_name != "login" and screen_name != "player"
if screen.has_method("on_show"):
screen.on_show(payload)
@@ -56,7 +58,7 @@ func _build_ui() -> void:
header_panel.add_child(header)
var title := Label.new()
title.text = "STEP 3 Arcade"
title.text = "RanaZe's Doctor Maker"
Style.set_label(title, 31, Style.TEXT)
title.size_flags_horizontal = Control.SIZE_EXPAND_FILL
header.add_child(title)
@@ -98,11 +100,11 @@ func _build_ui() -> void:
screens_container.add_child(login)
screens["login"] = login
var dashboard := preload("res://scripts/ui/dashboard.gd").new()
dashboard.name = "Dashboard"
dashboard.main = self
screens_container.add_child(dashboard)
screens["dashboard"] = dashboard
var selector := preload("res://scripts/ui/study_selector.gd").new()
selector.name = "StudySelector"
selector.main = self
screens_container.add_child(selector)
screens["selection"] = selector
var map := preload("res://scripts/ui/study_map.gd").new()
map.name = "StudyMap"
@@ -153,7 +155,7 @@ func _refresh_header_stats() -> void:
if header_stats == null:
return
var profile := ProfileService.get_profile()
header_stats.text = "ELO %d | Streak %d" % [
header_stats.text = "Rating: %d | Streak %d" % [
QuestionBankService.overall_elo,
profile.get("current_streak", 0)
]
@@ -242,7 +244,7 @@ func _exit_run() -> void:
_close_app_menu()
if BlockSessionService.block_started:
BlockSessionService.finish_block()
show_screen("dashboard")
show_screen("selection", "step3")
func _open_profile_from_menu() -> void: