136 lines
4.1 KiB
C#
136 lines
4.1 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Threading.Tasks;
|
|
using TMPro;
|
|
using Unity.Services.Authentication;
|
|
using UnityEngine;
|
|
|
|
public class AuntMenu : Menu<AuntMenu>
|
|
{
|
|
[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;
|
|
}
|
|
}
|