using System.Collections; using System.Collections.Generic; using System.Threading.Tasks; using UnityEngine; namespace TcgEngine { /// /// Test authenticator just generates a random ID to use as user id /// This is very useful to test the game in multiplayer without needing to login each time /// Unity Services features won't work in test mode (Relay, Cloud Saves...) /// Use Anonymous mode to test those features (after connecting your project ID in services window) /// public class AuthenticatorLocal : Authenticator { private UserData udata = null; public override async Task Login(string username) { this.user_id = username; //User username as ID for save file consistency when testing this.username = username; logged_in = true; await Task.Yield(); //Do nothing PlayerPrefs.SetString("tcg_user", username); //Save last user return true; } public override async Task RefreshLogin() { string username = PlayerPrefs.GetString("tcg_user", ""); if (!string.IsNullOrEmpty(username)) { bool success = await Login(username); return success; } return false; } public override async Task LoadUserData() { string user = PlayerPrefs.GetString("tcg_user", ""); string file = username + ".user"; if (!string.IsNullOrEmpty(user) && SaveTool.DoesFileExist(file)) { udata = SaveTool.LoadFile(file); } if(udata == null) { udata = new UserData(); udata.username = username; udata.id = username; } await Task.Yield(); //Do nothing return udata; } public override async Task SaveUserData() { if (udata != null && SaveTool.IsValidFilename(username)) { string file = username + ".user"; SaveTool.SaveFile(file, udata); await Task.Yield(); //Do nothing return true; } return false; } public override void Logout() { base.Logout(); udata = null; PlayerPrefs.DeleteKey("tcg_user"); } public override UserData GetUserData() { return udata; } } }