using System; using System.Collections; using System.Threading.Tasks; using TMPro; using Unity.Services.Authentication; using UnityEngine; public class AuntMenu : Menu { [SerializeField] private GameObject loadingScreen; [Header("Register")] [SerializeField] private TMP_InputField usernameFieldRegister; [SerializeField] private TMP_InputField nameFieldRegister; [SerializeField] private TMP_InputField paswordFieldRegister; [SerializeField] private TMP_InputField EmailFieldRegister; [SerializeField] private TMP_Dropdown dateAgeRegister; [SerializeField] private TMP_Dropdown monthAgeRegister; [SerializeField] private TMP_Dropdown yearAgeRegister; private string usernameRegister; private string EmailRegister; private string paswordRegister; private int calculatedAge; [SerializeField] private GameObject RegisterObj; [SerializeField] private GameObject InvalidAge; [Header("Login")] [SerializeField] private TMP_InputField usernameFieldLogin; [SerializeField] private TMP_InputField paswordFieldLogin; private string usernameLogin; private string passwordLogin; SaveData saveData; private void OnEnable() { AuthenticationService.Instance.SignedIn += NextToMenu; } private void Start() { StartCoroutine(LoadingScreen()); } IEnumerator LoadingScreen() { loadingScreen.SetActive(true); yield return new WaitForSeconds(2); loadingScreen.SetActive(false); } private void OnDisable() { AuthenticationService.Instance.SignedIn -= NextToMenu; } private bool IsRegisterFieldInvalid() { if (string.IsNullOrEmpty(usernameFieldRegister.text) || string.IsNullOrEmpty(paswordFieldRegister.text) || string.IsNullOrEmpty(EmailFieldRegister.text)) { Debug.LogWarning("Some required fields are empty!"); return true; } return false; } public async void Login() { usernameLogin = usernameFieldLogin.text.Trim(); passwordLogin = paswordFieldLogin.text.Trim(); if (string.IsNullOrEmpty(usernameLogin) || string.IsNullOrEmpty(passwordLogin)) { Debug.LogWarning("Username or password is empty!"); return; } await AuthenticationManager.SigninUsernamePassword(usernameLogin, passwordLogin); usernameFieldLogin.text = ""; paswordFieldLogin.text = ""; } private void NextToMenu() { MainMenu.Open(); Debug.Log("MainMenu Open"); } public async void Register() { if (IsRegisterFieldInvalid()) return; usernameRegister = usernameFieldRegister.text; paswordRegister = paswordFieldRegister.text; EmailRegister = EmailFieldRegister.text; int day = dateAgeRegister.value + 1; int month = monthAgeRegister.value + 1; int year = int.Parse(yearAgeRegister.options[yearAgeRegister.value].text); DateTime birthDate = new DateTime(year, month, day); calculatedAge = CalculateAge(birthDate); // // if (calculatedAge < 6 || calculatedAge > 12) // { // Debug.LogWarning("Age must be between 6 and 12 years!"); // Debug.Log(calculatedAge); // InvalidAge.SetActive(true); // return; // } await AuthenticationManager.SignUpUsernamePassword(usernameRegister, paswordRegister, EmailRegister, calculatedAge.ToString()); SaveData dataToSave = new SaveData(); dataToSave.playerName = nameFieldRegister.text; dataToSave.agePlayer = calculatedAge.ToString(); dataToSave.username = CryptoUtility.Encrypt(usernameRegister); dataToSave.password = CryptoUtility.Encrypt(paswordRegister); await Cloudsave.SaveData(dataToSave, "DataPlayer"); } private int CalculateAge(DateTime birthDate) { DateTime today = DateTime.Today; int age = today.Year - birthDate.Year; if (birthDate.Date > today.AddYears(-age)) age--; return age; } }