extends Control @onready var login_popup = $LogIn @onready var email_input = $LogIn/VBoxContainer/EmailInput @onready var password_input = $LogIn/VBoxContainer/PasswordInput @onready var login_button = $LogIn/VBoxContainer/LogInButton @onready var levels_menu = $VScrollBar/MarginContainer/VBoxContainer/levels_menu @onready var residents_menu = $VScrollBar/MarginContainer/VBoxContainer/residents_menu var level = -1 var id_player = -1 var id_user = -1 func _ready(): RenderingServer.set_default_clear_color("#CCCCCC") await get_tree().process_frame # Esperar a que todo esté listo if not GameData.is_logged_in: login_popup.show() $Blocker.visible = true levels_menu.get_popup().connect("id_pressed", self._on_level_selected) var residents = await GameData.get_residents_loaded() if residents_menu.item_count < residents.size(): for resident in residents: var full_name = "%s %s" % [resident.nombre, resident.apellido] var id = int(resident.id) residents_menu.get_popup().add_item(full_name, id) residents_menu.get_popup().connect("id_pressed", self._on_player_selected) ### Metodo para cuando se pulse el boton de iniciar sesion func _on_log_in_button_pressed(): var users = await GameData.get_users_loaded() var username = email_input.text.strip_edges() var password = password_input.text.strip_edges() for user in users: if user.email == username or not user.is_empty(): GameData.is_logged_in = true id_user = int(user.id) login_popup.hide() $Blocker.visible = false break if not GameData.is_logged_in: email_input.clear() password_input.clear() var stylebox_email = email_input.get_theme_stylebox("normal") as StyleBoxFlat var stylebox_password = password_input.get_theme_stylebox("normal") as StyleBoxFlat if stylebox_email and stylebox_password: stylebox_email.bg_color = Color(1, 0.8, 0.8) stylebox_password.bg_color = Color(1, 0.8, 0.8) ### Metodo para cuando el usuario elija el nivel en el menu func _on_level_selected(id): match id: 0: level = 0 1: level = 1 2: level = 2 ### Metodo para cuando el usuario elija el jugador en el menu func _on_player_selected(id): id_player = id ### Metodo para cuando el usuario le de al boton de jugar func _on_button_pressed() -> void: var bg_color = $VScrollBar/MarginContainer/VBoxContainer/bg_color_picker.color var tiles_lines_color = $VScrollBar/MarginContainer/VBoxContainer/tiles_lines_color_picker.color var table_lines_color = $VScrollBar/MarginContainer/VBoxContainer/table_lines_color_picker.color for child in $Warning/Panel.get_children(): child.queue_free() var warning = Label.new() warning.text = "" warning.add_theme_color_override("font_color","#324f5e") if level == -1: warning.text = " - Debes seleccionar un nivel\n" if id_player == -1: warning.text += " - Debes seleccionar un jugador" if warning.text != "": $Warning/Panel.add_child(warning) $Warning.popup_centered(Vector2(400, 200)) return var game_scene = preload("res://scenes/Game.tscn").instantiate() game_scene.bg_color = bg_color game_scene.tiles_lines_color = tiles_lines_color game_scene.table_lines_color = table_lines_color game_scene.difficulty = level GameData.start_game(id_player, id_user, level) ScreenManager.change_scene(game_scene, self)