using UnityEngine; using UnityEngine.UIElements; using System.Collections.Generic; using System.Threading.Tasks; using Fusion; using System.Linq; namespace Hallucinate.UI { public class LobbyController : BaseUIController { private VisualTreeAsset _roomItemTemplate; private PlayerDataManager _playerDataManager; // Containers private VisualElement _joinContainer, _createContainer, _loungeContainer, _passOverlay; // Create Room Fields private TextField _roomIDInput, _roomNameInput, _roomPassInput; private Toggle _passToggle; private Label _createErrorLabel; private Button _confirmCreateBtn; // Join Room Fields private ScrollView _roomList; private TextField _joinPassInput; private Label _joinPassError; private SessionInfo _selectedSession; // Lounge Elements private Label _loungeRoomName; private Button _readyBtn, _startBtn; // Host Slot private Label _hostNameLabel, _hostStatusLabel; private VisualElement _hostChatBox; private Label _hostChatMessage; // Guest Slot private Label _guestNameLabel, _guestStatusLabel; private VisualElement _guestChatBox; private Label _guestChatMessage; // Chat Input private TextField _chatInput; public override void Initialize(VisualElement uxmlRoot, UIManager manager) { base.Initialize(uxmlRoot, manager); // Query Containers _joinContainer = root.Q("JoinContainer"); _createContainer = root.Q("CreateContainer"); _loungeContainer = root.Q("LoungeContainer"); _passOverlay = root.Q("PasswordOverlay"); // Create Room Fields _roomIDInput = root.Q("RoomIDInput"); _roomNameInput = root.Q("RoomNameInput"); _roomPassInput = root.Q("RoomPassInput"); _passToggle = root.Q("PassToggle"); _createErrorLabel = root.Q