Make play menu into a popup
This commit is contained in:
32 files changed
+9895
-10304
No files matched your search
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f99c5ab8b366c1e45894edb89fdafbd9
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,59 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class AccountChangePassword : MonoBehaviour {
|
||||
[SerializeField] private TMP_Text changePasswordStatusText;
|
||||
[SerializeField] private TMP_InputField changePasswordNewPasswordInput;
|
||||
[SerializeField] private TMP_InputField changePasswordRetypeNewPasswordInput;
|
||||
[SerializeField] private Button changePasswordSubmitButton;
|
||||
|
||||
void Awake() {
|
||||
changePasswordNewPasswordInput.onSelect.AddListener((_) => changePasswordNewPasswordInput.caretPosition = changePasswordNewPasswordInput.text.Length);
|
||||
changePasswordRetypeNewPasswordInput.onSelect.AddListener((_) => changePasswordRetypeNewPasswordInput.caretPosition = changePasswordRetypeNewPasswordInput.text.Length);
|
||||
}
|
||||
|
||||
void OnEnable() {
|
||||
changePasswordNewPasswordInput.text = "";
|
||||
changePasswordRetypeNewPasswordInput.text = "";
|
||||
changePasswordStatusText.text = "";
|
||||
changePasswordSubmitButton.onClick.RemoveAllListeners();
|
||||
AccountHandler.Instance.backButton.onClick.AddListener(() => AccountHandler.Instance.SwitchPanel(0));
|
||||
changePasswordSubmitButton.onClick.AddListener(() => ChangePassword());
|
||||
}
|
||||
|
||||
async void ChangePassword() {
|
||||
if (changePasswordNewPasswordInput.text != changePasswordRetypeNewPasswordInput.text) {
|
||||
Tools.UpdateStatusText(changePasswordStatusText, "Passwords do not match", Color.red);
|
||||
return;
|
||||
}
|
||||
AccountHandler.Instance.backButton.interactable = false;
|
||||
changePasswordSubmitButton.interactable = false;
|
||||
WWWForm dataForm = new();
|
||||
dataForm.AddField("newPassword", changePasswordNewPasswordInput.text);
|
||||
using UnityWebRequest request = UnityWebRequest.Post(Endpoints.ACCOUNT_CHANGE_PASSWORD_ENDPOINT, dataForm);
|
||||
request.SetRequestHeader("Authorization", BazookaManager.Instance.GetAccountSession());
|
||||
request.SetRequestHeader("Requester", "BerryDashClient");
|
||||
request.SetRequestHeader("ClientVersion", Application.version);
|
||||
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
||||
await request.SendWebRequest();
|
||||
if (request.downloadHandler.text == null) {
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
changePasswordSubmitButton.interactable = true;
|
||||
Tools.UpdateStatusText(changePasswordStatusText, "Failed to make HTTP request", Color.red);
|
||||
return;
|
||||
}
|
||||
var jsonResponse = JObject.Parse(request.downloadHandler.text);
|
||||
if ((bool)jsonResponse["success"]) {
|
||||
BazookaManager.Instance.SetAccountSession((string)jsonResponse["data"]);
|
||||
AccountHandler.Instance.SwitchPanel(0);
|
||||
Tools.UpdateStatusText(AccountHandler.Instance.accountLoggedIn.loggedInText, "Password changed successfully", Color.green);
|
||||
} else {
|
||||
Tools.UpdateStatusText(changePasswordStatusText, (string)jsonResponse["message"], Color.red);
|
||||
}
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
changePasswordSubmitButton.interactable = true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ae8dc061a6b24a14f81e1024c84f6695
|
||||
@@ -0,0 +1,53 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class AccountChangeUsername : MonoBehaviour {
|
||||
[SerializeField] private TMP_Text changeUsernameStatusText;
|
||||
[SerializeField] private TMP_InputField changeUsernameNewUsernameInput;
|
||||
[SerializeField] private Button changeUsernameSubmitButton;
|
||||
|
||||
void Awake() {
|
||||
changeUsernameNewUsernameInput.onSelect.AddListener((_) => changeUsernameNewUsernameInput.caretPosition = changeUsernameNewUsernameInput.text.Length);
|
||||
}
|
||||
|
||||
void OnEnable() {
|
||||
changeUsernameNewUsernameInput.text = "";
|
||||
changeUsernameStatusText.text = "";
|
||||
changeUsernameSubmitButton.onClick.RemoveAllListeners();
|
||||
AccountHandler.Instance.backButton.onClick.AddListener(() => AccountHandler.Instance.SwitchPanel(0));
|
||||
changeUsernameSubmitButton.onClick.AddListener(() => ChangeUsername());
|
||||
}
|
||||
|
||||
async void ChangeUsername() {
|
||||
AccountHandler.Instance.backButton.interactable = false;
|
||||
changeUsernameSubmitButton.interactable = false;
|
||||
WWWForm dataForm = new();
|
||||
dataForm.AddField("newUsername", changeUsernameNewUsernameInput.text);
|
||||
using UnityWebRequest request = UnityWebRequest.Post(Endpoints.ACCOUNT_CHANGE_USERNAME_ENDPOINT, dataForm);
|
||||
request.SetRequestHeader("Authorization", BazookaManager.Instance.GetAccountSession());
|
||||
request.SetRequestHeader("Requester", "BerryDashClient");
|
||||
request.SetRequestHeader("ClientVersion", Application.version);
|
||||
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
||||
await request.SendWebRequest();
|
||||
if (request.downloadHandler.text == null) {
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
changeUsernameSubmitButton.interactable = true;
|
||||
Tools.UpdateStatusText(changeUsernameStatusText, "Failed to make HTTP request", Color.red);
|
||||
return;
|
||||
}
|
||||
var jsonResponse = JObject.Parse(request.downloadHandler.text);
|
||||
if ((bool)jsonResponse["success"]) {
|
||||
BazookaManager.Instance.SetAccountName(changeUsernameNewUsernameInput.text);
|
||||
BazookaManager.Instance.SetAccountSession((string)jsonResponse["data"]);
|
||||
AccountHandler.Instance.SwitchPanel(0);
|
||||
Tools.UpdateStatusText(AccountHandler.Instance.accountLoggedIn.loggedInText, "Username changed successfully", Color.green);
|
||||
} else {
|
||||
Tools.UpdateStatusText(changeUsernameStatusText, (string)jsonResponse["message"], Color.red);
|
||||
}
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
changeUsernameSubmitButton.interactable = true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: be362dee96ceba548be09c7fede7bf16
|
||||
@@ -0,0 +1,58 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class AccountForgotDetails : MonoBehaviour {
|
||||
[SerializeField] internal TMP_Text forgotDetailsTitleText;
|
||||
[SerializeField] private TMP_Text forgotDetailsStatusText;
|
||||
[SerializeField] private TMP_InputField forgotDetailsEmailInput;
|
||||
[SerializeField] private TMP_InputField forgotDetailsVerifyCodeInput;
|
||||
[SerializeField] internal Button forgotDetailsSubmitButton;
|
||||
internal int mode = 0;
|
||||
|
||||
void Awake() {
|
||||
forgotDetailsEmailInput.onSelect.AddListener((_) => forgotDetailsEmailInput.caretPosition = forgotDetailsEmailInput.text.Length);
|
||||
forgotDetailsVerifyCodeInput.onSelect.AddListener((_) => forgotDetailsVerifyCodeInput.caretPosition = forgotDetailsVerifyCodeInput.text.Length);
|
||||
}
|
||||
|
||||
void OnEnable() {
|
||||
forgotDetailsEmailInput.text = "";
|
||||
forgotDetailsVerifyCodeInput.text = "";
|
||||
forgotDetailsSubmitButton.onClick.RemoveAllListeners();
|
||||
AccountHandler.Instance.backButton.onClick.AddListener(() => {
|
||||
forgotDetailsSubmitButton.interactable = false;
|
||||
mode = 0;
|
||||
forgotDetailsTitleText.text = "";
|
||||
forgotDetailsStatusText.text = "";
|
||||
AccountHandler.Instance.SwitchPanel(2);
|
||||
});
|
||||
forgotDetailsSubmitButton.onClick.AddListener(() => ForgotDetails());
|
||||
}
|
||||
|
||||
async void ForgotDetails() {
|
||||
AccountHandler.Instance.backButton.interactable = false;
|
||||
forgotDetailsSubmitButton.interactable = false;
|
||||
WWWForm dataForm = new();
|
||||
dataForm.AddField("email", forgotDetailsEmailInput.text);
|
||||
dataForm.AddField("verifyCode", forgotDetailsVerifyCodeInput.text);
|
||||
forgotDetailsVerifyCodeInput.text = "";
|
||||
using UnityWebRequest request = UnityWebRequest.Post(mode == 0 ? Endpoints.ACCOUNT_FORGOT_USERNAME_ENDPOINT : Endpoints.ACCOUNT_FORGOT_PASSWORD_ENDPOINT, dataForm);
|
||||
request.SetRequestHeader("Requester", "BerryDashClient");
|
||||
request.SetRequestHeader("ClientVersion", Application.version);
|
||||
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
||||
await request.SendWebRequest();
|
||||
if (request.downloadHandler.text == null) {
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
forgotDetailsSubmitButton.interactable = true;
|
||||
Tools.UpdateStatusText(forgotDetailsStatusText, "Failed to make HTTP request", Color.red);
|
||||
return;
|
||||
}
|
||||
var jsonResponse = JObject.Parse(request.downloadHandler.text);
|
||||
if ((bool)jsonResponse["success"]) Tools.UpdateStatusText(forgotDetailsStatusText, "An email has been sent to your inbox", Color.green);
|
||||
else Tools.UpdateStatusText(forgotDetailsStatusText, (string)jsonResponse["message"], Color.red);
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
forgotDetailsSubmitButton.interactable = true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8e73b40d4fe6b41dd9b73f1334fd3e78
|
||||
@@ -0,0 +1,147 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class AccountHandler : MonoBehaviour {
|
||||
public static AccountHandler Instance;
|
||||
public AccountLoggedIn accountLoggedIn;
|
||||
[SerializeField] internal Button exitButton;
|
||||
[SerializeField] internal Button backButton;
|
||||
[SerializeField] private AccountLoggedOut accountLoggedOut;
|
||||
[SerializeField] private AccountLogin accountLogin;
|
||||
[SerializeField] private AccountRegister accountRegister;
|
||||
[SerializeField] private AccountChangeUsername accountChangeUsername;
|
||||
[SerializeField] private AccountChangePassword accountChangePassword;
|
||||
[SerializeField] private AccountRefreshLogin accountRefreshLogin;
|
||||
[SerializeField] internal AccountForgotDetails accountForgotDetails;
|
||||
|
||||
void Awake() {
|
||||
Instance = this;
|
||||
exitButton.onClick.AddListener(() => Destroy(gameObject));
|
||||
}
|
||||
|
||||
void Start() {
|
||||
if (BazookaManager.Instance.GetAccountID() != null && BazookaManager.Instance.GetAccountName() != null && BazookaManager.Instance.GetAccountSession() != null) {
|
||||
SwitchPanel(0);
|
||||
} else {
|
||||
SwitchPanel(1);
|
||||
}
|
||||
}
|
||||
|
||||
public void SwitchPanel(int panel) {
|
||||
switch (panel) {
|
||||
case 0:
|
||||
backButton.onClick.RemoveAllListeners();
|
||||
exitButton.gameObject.SetActive(true);
|
||||
backButton.gameObject.SetActive(false);
|
||||
accountLoggedOut.gameObject.SetActive(false);
|
||||
accountLogin.gameObject.SetActive(false);
|
||||
accountRegister.gameObject.SetActive(false);
|
||||
accountChangeUsername.gameObject.SetActive(false);
|
||||
accountChangePassword.gameObject.SetActive(false);
|
||||
accountRefreshLogin.gameObject.SetActive(false);
|
||||
accountForgotDetails.gameObject.SetActive(false);
|
||||
accountLoggedIn.gameObject.SetActive(true);
|
||||
break;
|
||||
case 1:
|
||||
backButton.onClick.RemoveAllListeners();
|
||||
exitButton.gameObject.SetActive(true);
|
||||
backButton.gameObject.SetActive(false);
|
||||
accountLoggedIn.gameObject.SetActive(false);
|
||||
accountLogin.gameObject.SetActive(false);
|
||||
accountRegister.gameObject.SetActive(false);
|
||||
accountChangeUsername.gameObject.SetActive(false);
|
||||
accountChangePassword.gameObject.SetActive(false);
|
||||
accountRefreshLogin.gameObject.SetActive(false);
|
||||
accountForgotDetails.gameObject.SetActive(false);
|
||||
accountLoggedOut.gameObject.SetActive(true);
|
||||
break;
|
||||
case 2:
|
||||
backButton.onClick.RemoveAllListeners();
|
||||
exitButton.gameObject.SetActive(false);
|
||||
backButton.gameObject.SetActive(true);
|
||||
accountLoggedIn.gameObject.SetActive(false);
|
||||
accountLoggedOut.gameObject.SetActive(false);
|
||||
accountRegister.gameObject.SetActive(false);
|
||||
accountChangeUsername.gameObject.SetActive(false);
|
||||
accountChangePassword.gameObject.SetActive(false);
|
||||
accountRefreshLogin.gameObject.SetActive(false);
|
||||
accountForgotDetails.gameObject.SetActive(false);
|
||||
accountLogin.gameObject.SetActive(true);
|
||||
break;
|
||||
case 3:
|
||||
backButton.onClick.RemoveAllListeners();
|
||||
exitButton.gameObject.SetActive(false);
|
||||
backButton.gameObject.SetActive(true);
|
||||
accountLoggedIn.gameObject.SetActive(false);
|
||||
accountLoggedOut.gameObject.SetActive(false);
|
||||
accountLogin.gameObject.SetActive(false);
|
||||
accountChangeUsername.gameObject.SetActive(false);
|
||||
accountChangePassword.gameObject.SetActive(false);
|
||||
accountRefreshLogin.gameObject.SetActive(false);
|
||||
accountForgotDetails.gameObject.SetActive(false);
|
||||
accountRegister.gameObject.SetActive(true);
|
||||
break;
|
||||
case 4:
|
||||
backButton.onClick.RemoveAllListeners();
|
||||
exitButton.gameObject.SetActive(false);
|
||||
backButton.gameObject.SetActive(true);
|
||||
accountLoggedIn.gameObject.SetActive(false);
|
||||
accountLoggedOut.gameObject.SetActive(false);
|
||||
accountLogin.gameObject.SetActive(false);
|
||||
accountRegister.gameObject.SetActive(false);
|
||||
accountChangePassword.gameObject.SetActive(false);
|
||||
accountRefreshLogin.gameObject.SetActive(false);
|
||||
accountForgotDetails.gameObject.SetActive(false);
|
||||
accountChangeUsername.gameObject.SetActive(true);
|
||||
break;
|
||||
case 5:
|
||||
backButton.onClick.RemoveAllListeners();
|
||||
exitButton.gameObject.SetActive(false);
|
||||
backButton.gameObject.SetActive(true);
|
||||
accountLoggedIn.gameObject.SetActive(false);
|
||||
accountLoggedOut.gameObject.SetActive(false);
|
||||
accountLogin.gameObject.SetActive(false);
|
||||
accountRegister.gameObject.SetActive(false);
|
||||
accountChangeUsername.gameObject.SetActive(false);
|
||||
accountRefreshLogin.gameObject.SetActive(false);
|
||||
accountForgotDetails.gameObject.SetActive(false);
|
||||
accountChangePassword.gameObject.SetActive(true);
|
||||
break;
|
||||
case 6:
|
||||
backButton.onClick.RemoveAllListeners();
|
||||
exitButton.gameObject.SetActive(false);
|
||||
backButton.gameObject.SetActive(true);
|
||||
accountLoggedIn.gameObject.SetActive(false);
|
||||
accountLoggedOut.gameObject.SetActive(false);
|
||||
accountLogin.gameObject.SetActive(false);
|
||||
accountRegister.gameObject.SetActive(false);
|
||||
accountChangeUsername.gameObject.SetActive(false);
|
||||
accountChangePassword.gameObject.SetActive(false);
|
||||
accountForgotDetails.gameObject.SetActive(false);
|
||||
accountRefreshLogin.gameObject.SetActive(true);
|
||||
break;
|
||||
case 7:
|
||||
backButton.onClick.RemoveAllListeners();
|
||||
exitButton.gameObject.SetActive(false);
|
||||
backButton.gameObject.SetActive(true);
|
||||
accountLoggedIn.gameObject.SetActive(false);
|
||||
accountLoggedOut.gameObject.SetActive(false);
|
||||
accountLogin.gameObject.SetActive(false);
|
||||
accountRegister.gameObject.SetActive(false);
|
||||
accountChangeUsername.gameObject.SetActive(false);
|
||||
accountChangePassword.gameObject.SetActive(false);
|
||||
accountRefreshLogin.gameObject.SetActive(false);
|
||||
accountForgotDetails.gameObject.SetActive(true);
|
||||
break;
|
||||
}
|
||||
foreach (CustomColorObject customColorObject in FindObjectsByType<CustomColorObject>(FindObjectsSortMode.None)) customColorObject.SetColor();
|
||||
}
|
||||
|
||||
void Update() {
|
||||
if (Keyboard.current.escapeKey.wasPressedThisFrame) {
|
||||
if (exitButton.gameObject.activeSelf && exitButton.interactable) exitButton.onClick.Invoke();
|
||||
else if (backButton.gameObject.activeSelf && backButton.interactable) backButton.onClick.Invoke();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1d3604e648db0614cb2265963d39721b
|
||||
@@ -0,0 +1,151 @@
|
||||
using System;
|
||||
using System.Text;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
using UnityEngine.SceneManagement;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class AccountLoggedIn : MonoBehaviour {
|
||||
public TMP_Text loggedInText;
|
||||
[SerializeField] private AccountLoggedOut accountLoggedOut;
|
||||
[SerializeField] private Button loggedInChangeUsernameButton;
|
||||
[SerializeField] private Button loggedInChangePasswordButton;
|
||||
[SerializeField] private Button loggedInSaveButton;
|
||||
[SerializeField] private Button loggedInLoadButton;
|
||||
[SerializeField] private Button loggedInRefreshLoginButton;
|
||||
[SerializeField] private Button loggedInLogoutButton;
|
||||
|
||||
void OnEnable() {
|
||||
loggedInSaveButton.interactable = true;
|
||||
loggedInLoadButton.interactable = true;
|
||||
var textColor = BazookaManager.Instance.GetColorSettingText();
|
||||
Tools.UpdateStatusText(loggedInText, "Logged in as: " + BazookaManager.Instance.GetAccountName(), new Color(int.Parse(textColor[0].ToString()) / 255f, int.Parse(textColor[1].ToString()) / 255f, int.Parse(textColor[2].ToString()) / 255f));
|
||||
loggedInChangeUsernameButton.onClick.RemoveAllListeners();
|
||||
loggedInChangePasswordButton.onClick.RemoveAllListeners();
|
||||
loggedInSaveButton.onClick.RemoveAllListeners();
|
||||
loggedInLoadButton.onClick.RemoveAllListeners();
|
||||
loggedInRefreshLoginButton.onClick.RemoveAllListeners();
|
||||
loggedInLogoutButton.onClick.RemoveAllListeners();
|
||||
loggedInChangeUsernameButton.onClick.AddListener(() => AccountHandler.Instance.SwitchPanel(4));
|
||||
loggedInChangePasswordButton.onClick.AddListener(() => AccountHandler.Instance.SwitchPanel(5));
|
||||
loggedInSaveButton.onClick.AddListener(() => SaveAccount());
|
||||
loggedInLoadButton.onClick.AddListener(() => LoadAccount());
|
||||
loggedInRefreshLoginButton.onClick.AddListener(() => AccountHandler.Instance.SwitchPanel(6));
|
||||
loggedInLogoutButton.onClick.AddListener(() => {
|
||||
AccountHandler.Instance.exitButton.interactable = false;
|
||||
BazookaManager.Instance.ResetSave();
|
||||
|
||||
DontDestroyOnLoad(AccountHandler.Instance.gameObject);
|
||||
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
|
||||
SceneManager.sceneLoaded += OnSceneLoaded;
|
||||
|
||||
AccountHandler.Instance.SwitchPanel(1);
|
||||
AccountHandler.Instance.exitButton.interactable = true;
|
||||
});
|
||||
}
|
||||
|
||||
async void SaveAccount() {
|
||||
loggedInChangeUsernameButton.interactable = false;
|
||||
loggedInChangePasswordButton.interactable = false;
|
||||
loggedInSaveButton.interactable = false;
|
||||
loggedInLoadButton.interactable = false;
|
||||
loggedInRefreshLoginButton.interactable = false;
|
||||
loggedInLogoutButton.interactable = false;
|
||||
AccountHandler.Instance.exitButton.interactable = false;
|
||||
WWWForm dataForm = new();
|
||||
dataForm.AddField("saveData", Convert.ToBase64String(Encoding.UTF8.GetBytes(BazookaManager.Instance.saveFile.ToString(Formatting.None))));
|
||||
using UnityWebRequest request = UnityWebRequest.Post(Endpoints.ACCOUNT_SAVE_ENDPOINT, dataForm);
|
||||
request.SetRequestHeader("Authorization", BazookaManager.Instance.GetAccountSession());
|
||||
request.SetRequestHeader("Requester", "BerryDashClient");
|
||||
request.SetRequestHeader("ClientVersion", Application.version);
|
||||
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
||||
await request.SendWebRequest();
|
||||
if (request.downloadHandler.text == null) {
|
||||
loggedInChangeUsernameButton.interactable = true;
|
||||
loggedInChangePasswordButton.interactable = true;
|
||||
loggedInSaveButton.interactable = true;
|
||||
loggedInLoadButton.interactable = true;
|
||||
loggedInRefreshLoginButton.interactable = true;
|
||||
loggedInLogoutButton.interactable = true;
|
||||
AccountHandler.Instance.exitButton.interactable = true;
|
||||
Tools.UpdateStatusText(loggedInText, "Failed to make HTTP request", Color.red);
|
||||
return;
|
||||
}
|
||||
var jsonResponse = JObject.Parse(request.downloadHandler.text);
|
||||
Tools.UpdateStatusText(loggedInText, (string)jsonResponse["message"], (bool)jsonResponse["success"] ? Color.green : Color.red);
|
||||
loggedInChangeUsernameButton.interactable = true;
|
||||
loggedInChangePasswordButton.interactable = true;
|
||||
loggedInSaveButton.interactable = true;
|
||||
loggedInLoadButton.interactable = true;
|
||||
loggedInRefreshLoginButton.interactable = true;
|
||||
loggedInLogoutButton.interactable = true;
|
||||
AccountHandler.Instance.exitButton.interactable = true;
|
||||
}
|
||||
|
||||
async void LoadAccount() {
|
||||
loggedInChangeUsernameButton.interactable = false;
|
||||
loggedInChangePasswordButton.interactable = false;
|
||||
loggedInSaveButton.interactable = false;
|
||||
loggedInLoadButton.interactable = false;
|
||||
loggedInRefreshLoginButton.interactable = false;
|
||||
loggedInLogoutButton.interactable = false;
|
||||
AccountHandler.Instance.exitButton.interactable = false;
|
||||
using UnityWebRequest request = UnityWebRequest.Get(Endpoints.ACCOUNT_SAVE_ENDPOINT);
|
||||
request.SetRequestHeader("Authorization", BazookaManager.Instance.GetAccountSession());
|
||||
request.SetRequestHeader("Requester", "BerryDashClient");
|
||||
request.SetRequestHeader("ClientVersion", Application.version);
|
||||
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
||||
await request.SendWebRequest();
|
||||
if (request.downloadHandler.text == null) {
|
||||
loggedInChangeUsernameButton.interactable = true;
|
||||
loggedInChangePasswordButton.interactable = true;
|
||||
loggedInSaveButton.interactable = true;
|
||||
loggedInLoadButton.interactable = true;
|
||||
loggedInRefreshLoginButton.interactable = true;
|
||||
loggedInLogoutButton.interactable = true;
|
||||
AccountHandler.Instance.exitButton.interactable = true;
|
||||
Tools.UpdateStatusText(loggedInText, "Failed to make HTTP request", Color.red);
|
||||
return;
|
||||
}
|
||||
var jsonResponse = JObject.Parse(request.downloadHandler.text);
|
||||
if ((bool)jsonResponse["success"]) {
|
||||
BazookaManager.Instance.saveFile = JObject.FromObject(jsonResponse["data"]);
|
||||
|
||||
DontDestroyOnLoad(AccountHandler.Instance.gameObject);
|
||||
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
|
||||
SceneManager.sceneLoaded += OnSceneLoaded;
|
||||
|
||||
if (!Application.isMobilePlatform) {
|
||||
var width = Display.main.systemWidth;
|
||||
var height = Display.main.systemHeight;
|
||||
Screen.SetResolution(width, height, BazookaManager.Instance.GetSettingFullScreen());
|
||||
QualitySettings.vSyncCount = BazookaManager.Instance.GetSettingVsync() ? 1 : -1;
|
||||
} else {
|
||||
Application.targetFrameRate = 360;
|
||||
QualitySettings.vSyncCount = 0;
|
||||
}
|
||||
MenuMusic.Instance.GetComponent<AudioSource>().volume = BazookaManager.Instance.GetSettingMusicVolume();
|
||||
foreach (CustomColorObject customColorObject in FindObjectsByType<CustomColorObject>(FindObjectsSortMode.None)) customColorObject.SetColor();
|
||||
}
|
||||
Tools.UpdateStatusText(loggedInText, (string)jsonResponse["message"], (bool)jsonResponse["success"] ? Color.green : Color.red);
|
||||
loggedInChangeUsernameButton.interactable = true;
|
||||
loggedInChangePasswordButton.interactable = true;
|
||||
loggedInSaveButton.interactable = true;
|
||||
loggedInLoadButton.interactable = true;
|
||||
loggedInRefreshLoginButton.interactable = true;
|
||||
loggedInLogoutButton.interactable = true;
|
||||
AccountHandler.Instance.exitButton.interactable = true;
|
||||
}
|
||||
|
||||
void OnSceneLoaded(Scene scene, LoadSceneMode mode) {
|
||||
SceneManager.MoveGameObjectToScene(AccountHandler.Instance.gameObject, scene);
|
||||
SceneManager.sceneLoaded -= OnSceneLoaded;
|
||||
|
||||
var canvas = AccountHandler.Instance.GetComponentInChildren<Canvas>();
|
||||
canvas.enabled = false;
|
||||
canvas.enabled = true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2f7c13bcd16e34840be5ed44f70b3824
|
||||
@@ -0,0 +1,14 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class AccountLoggedOut : MonoBehaviour {
|
||||
[SerializeField] private Button loggedOutLoginButton;
|
||||
[SerializeField] private Button loggedOutRegisterButton;
|
||||
|
||||
void OnEnable() {
|
||||
loggedOutLoginButton.onClick.RemoveAllListeners();
|
||||
loggedOutRegisterButton.onClick.RemoveAllListeners();
|
||||
loggedOutLoginButton.onClick.AddListener(() => AccountHandler.Instance.SwitchPanel(2));
|
||||
loggedOutRegisterButton.onClick.AddListener(() => AccountHandler.Instance.SwitchPanel(3));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9d660b01e28b0234bb44f79e71fba5b3
|
||||
@@ -0,0 +1,80 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System.Numerics;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class AccountLogin : MonoBehaviour {
|
||||
[SerializeField] private TMP_Text loginPanelStatusText;
|
||||
[SerializeField] private TMP_InputField loginUsernameInput;
|
||||
[SerializeField] private TMP_InputField loginPasswordInput;
|
||||
[SerializeField] private Button forgotUsernameButton;
|
||||
[SerializeField] private Button forgotPasswordButton;
|
||||
[SerializeField] private Button loginSubmitButton;
|
||||
|
||||
void Awake() {
|
||||
loginUsernameInput.onSelect.AddListener((_) => loginUsernameInput.caretPosition = loginUsernameInput.text.Length);
|
||||
loginPasswordInput.onSelect.AddListener((_) => loginPasswordInput.caretPosition = loginPasswordInput.text.Length);
|
||||
}
|
||||
|
||||
void OnEnable() {
|
||||
loginUsernameInput.text = "";
|
||||
loginPasswordInput.text = "";
|
||||
loginPanelStatusText.text = "";
|
||||
loginSubmitButton.onClick.RemoveAllListeners();
|
||||
forgotUsernameButton.onClick.RemoveAllListeners();
|
||||
forgotPasswordButton.onClick.RemoveAllListeners();
|
||||
AccountHandler.Instance.backButton.onClick.AddListener(() => AccountHandler.Instance.SwitchPanel(1));
|
||||
loginSubmitButton.onClick.AddListener(() => SubmitLogin());
|
||||
forgotUsernameButton.onClick.AddListener(() => {
|
||||
AccountHandler.Instance.SwitchPanel(7);
|
||||
AccountHandler.Instance.accountForgotDetails.mode = 0;
|
||||
AccountHandler.Instance.accountForgotDetails.forgotDetailsTitleText.text = "Forgot username";
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
AccountHandler.Instance.accountForgotDetails.forgotDetailsSubmitButton.interactable = true;
|
||||
});
|
||||
forgotPasswordButton.onClick.AddListener(() => {
|
||||
AccountHandler.Instance.SwitchPanel(7);
|
||||
AccountHandler.Instance.accountForgotDetails.mode = 1;
|
||||
AccountHandler.Instance.accountForgotDetails.forgotDetailsTitleText.text = "Forgot password";
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
AccountHandler.Instance.accountForgotDetails.forgotDetailsSubmitButton.interactable = true;
|
||||
});
|
||||
}
|
||||
|
||||
async void SubmitLogin() {
|
||||
AccountHandler.Instance.backButton.interactable = false;
|
||||
loginSubmitButton.interactable = false;
|
||||
if (loginUsernameInput.text == string.Empty || loginPasswordInput.text == string.Empty) {
|
||||
Tools.UpdateStatusText(loginPanelStatusText, "All input fields must be filled", Color.red);
|
||||
return;
|
||||
}
|
||||
WWWForm dataForm = new();
|
||||
dataForm.AddField("username", loginUsernameInput.text);
|
||||
dataForm.AddField("password", loginPasswordInput.text);
|
||||
using UnityWebRequest request = UnityWebRequest.Post(Endpoints.ACCOUNT_LOGIN_ENDPOINT, dataForm);
|
||||
request.SetRequestHeader("Requester", "BerryDashClient");
|
||||
request.SetRequestHeader("ClientVersion", Application.version);
|
||||
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
||||
await request.SendWebRequest();
|
||||
if (request.downloadHandler.text == null) {
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
loginSubmitButton.interactable = true;
|
||||
Tools.UpdateStatusText(loginPanelStatusText, "Failed to make HTTP request", Color.red);
|
||||
return;
|
||||
}
|
||||
var jsonResponse = JObject.Parse(request.downloadHandler.text);
|
||||
if ((bool)jsonResponse["success"]) {
|
||||
BazookaManager.Instance.SetAccountSession((string)jsonResponse["data"]["session"]);
|
||||
BazookaManager.Instance.SetAccountName((string)jsonResponse["data"]["username"]);
|
||||
BazookaManager.Instance.SetAccountID(BigInteger.Parse((string)jsonResponse["data"]["id"]));
|
||||
AccountHandler.Instance.SwitchPanel(0);
|
||||
Tools.UpdateStatusText(loginPanelStatusText, "", Color.red);
|
||||
} else {
|
||||
Tools.UpdateStatusText(loginPanelStatusText, (string)jsonResponse["message"], Color.red);
|
||||
}
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
loginSubmitButton.interactable = true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 396f21a29cb8a2844884c0daac1a67ee
|
||||
@@ -0,0 +1,57 @@
|
||||
using System.Numerics;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class AccountRefreshLogin : MonoBehaviour {
|
||||
[SerializeField] private TMP_Text refreshLoginStatusText;
|
||||
[SerializeField] private TMP_InputField refreshLoginUsernameInput;
|
||||
[SerializeField] private TMP_InputField refreshLoginPasswordInput;
|
||||
[SerializeField] private Button refreshLoginSubmitButton;
|
||||
|
||||
void Awake() {
|
||||
refreshLoginUsernameInput.onSelect.AddListener((_) => refreshLoginUsernameInput.caretPosition = refreshLoginUsernameInput.text.Length);
|
||||
refreshLoginPasswordInput.onSelect.AddListener((_) => refreshLoginPasswordInput.caretPosition = refreshLoginPasswordInput.text.Length);
|
||||
}
|
||||
|
||||
void OnEnable() {
|
||||
refreshLoginUsernameInput.text = "";
|
||||
refreshLoginPasswordInput.text = "";
|
||||
refreshLoginSubmitButton.onClick.RemoveAllListeners();
|
||||
AccountHandler.Instance.backButton.onClick.AddListener(() => AccountHandler.Instance.SwitchPanel(0));
|
||||
refreshLoginSubmitButton.onClick.AddListener(() => RefreshLogin());
|
||||
}
|
||||
|
||||
async void RefreshLogin() {
|
||||
AccountHandler.Instance.backButton.interactable = false;
|
||||
refreshLoginSubmitButton.interactable = false;
|
||||
WWWForm dataForm = new();
|
||||
dataForm.AddField("username", refreshLoginUsernameInput.text);
|
||||
dataForm.AddField("password", refreshLoginPasswordInput.text);
|
||||
using UnityWebRequest request = UnityWebRequest.Post(Endpoints.ACCOUNT_LOGIN_ENDPOINT, dataForm);
|
||||
request.SetRequestHeader("Requester", "BerryDashClient");
|
||||
request.SetRequestHeader("ClientVersion", Application.version);
|
||||
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
||||
await request.SendWebRequest();
|
||||
if (request.downloadHandler.text == null) {
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
refreshLoginSubmitButton.interactable = true;
|
||||
Tools.UpdateStatusText(refreshLoginStatusText, "Failed to make HTTP request", Color.red);
|
||||
return;
|
||||
}
|
||||
var jsonResponse = JObject.Parse(request.downloadHandler.text);
|
||||
if ((bool)jsonResponse["success"]) {
|
||||
BazookaManager.Instance.SetAccountSession((string)jsonResponse["data"]["session"]);
|
||||
BazookaManager.Instance.SetAccountName((string)jsonResponse["data"]["username"]);
|
||||
BazookaManager.Instance.SetAccountID(BigInteger.Parse((string)jsonResponse["data"]["id"]));
|
||||
AccountHandler.Instance.SwitchPanel(0);
|
||||
Tools.UpdateStatusText(refreshLoginStatusText, "", Color.red);
|
||||
} else {
|
||||
Tools.UpdateStatusText(refreshLoginStatusText, (string)jsonResponse["message"], Color.red);
|
||||
}
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
refreshLoginSubmitButton.interactable = true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0cfd036ba0d22324d8dd09b06d7bcf75
|
||||
@@ -0,0 +1,78 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class AccountRegister : MonoBehaviour {
|
||||
[SerializeField] private TMP_Text registerPanelStatusText;
|
||||
[SerializeField] private TMP_InputField registerUsernameInput;
|
||||
[SerializeField] private TMP_InputField registerEmailInput;
|
||||
[SerializeField] private TMP_InputField registerPasswordInput;
|
||||
[SerializeField] private TMP_InputField registerRetypePasswordInput;
|
||||
[SerializeField] private TMP_InputField registerVerifyCodeInput;
|
||||
[SerializeField] private Button registerSubmitButton;
|
||||
|
||||
void Awake() {
|
||||
registerUsernameInput.onSelect.AddListener((_) => registerUsernameInput.caretPosition = registerUsernameInput.text.Length);
|
||||
registerEmailInput.onSelect.AddListener((_) => registerEmailInput.caretPosition = registerEmailInput.text.Length);
|
||||
registerPasswordInput.onSelect.AddListener((_) => registerPasswordInput.caretPosition = registerPasswordInput.text.Length);
|
||||
registerRetypePasswordInput.onSelect.AddListener((_) => registerRetypePasswordInput.caretPosition = registerRetypePasswordInput.text.Length);
|
||||
registerVerifyCodeInput.onSelect.AddListener((_) => registerVerifyCodeInput.caretPosition = registerVerifyCodeInput.text.Length);
|
||||
}
|
||||
|
||||
void OnEnable() {
|
||||
registerUsernameInput.text = "";
|
||||
registerEmailInput.text = "";
|
||||
registerPasswordInput.text = "";
|
||||
registerRetypePasswordInput.text = "";
|
||||
registerVerifyCodeInput.text = "";
|
||||
registerPanelStatusText.text = "";
|
||||
AccountHandler.Instance.backButton.onClick.AddListener(() => AccountHandler.Instance.SwitchPanel(1));
|
||||
registerSubmitButton.onClick.AddListener(() => SubmitRegister());
|
||||
}
|
||||
|
||||
async void SubmitRegister() {
|
||||
if (
|
||||
registerUsernameInput.text == string.Empty ||
|
||||
registerEmailInput.text == string.Empty ||
|
||||
registerPasswordInput.text == string.Empty ||
|
||||
registerRetypePasswordInput.text == string.Empty ||
|
||||
registerVerifyCodeInput.text == string.Empty
|
||||
) {
|
||||
Tools.UpdateStatusText(registerPanelStatusText, "All input fields must be filled", Color.red);
|
||||
return;
|
||||
}
|
||||
if (registerPasswordInput.text != registerRetypePasswordInput.text) {
|
||||
Tools.UpdateStatusText(registerPanelStatusText, "Passwords don't match", Color.red);
|
||||
return;
|
||||
}
|
||||
AccountHandler.Instance.backButton.interactable = false;
|
||||
registerSubmitButton.interactable = false;
|
||||
WWWForm dataForm = new();
|
||||
dataForm.AddField("username", registerUsernameInput.text);
|
||||
dataForm.AddField("email", registerEmailInput.text);
|
||||
dataForm.AddField("password", registerPasswordInput.text);
|
||||
dataForm.AddField("verifyCode", registerVerifyCodeInput.text);
|
||||
registerVerifyCodeInput.text = "";
|
||||
using UnityWebRequest request = UnityWebRequest.Post(Endpoints.ACCOUNT_REGISTER_ENDPOINT, dataForm);
|
||||
request.SetRequestHeader("Requester", "BerryDashClient");
|
||||
request.SetRequestHeader("ClientVersion", Application.version);
|
||||
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
||||
await request.SendWebRequest();
|
||||
if (request.downloadHandler.text == null) {
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
registerSubmitButton.interactable = true;
|
||||
Tools.UpdateStatusText(registerPanelStatusText, "Failed to make HTTP request", Color.red);
|
||||
return;
|
||||
}
|
||||
var jsonResponse = JObject.Parse(request.downloadHandler.text);
|
||||
if ((bool)jsonResponse["success"]) {
|
||||
AccountHandler.Instance.SwitchPanel(2);
|
||||
} else {
|
||||
Tools.UpdateStatusText(registerPanelStatusText, (string)jsonResponse["message"], Color.red);
|
||||
}
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
registerSubmitButton.interactable = true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 15b428d2b1e250a4385f3a56d0b4d43e
|
||||
@@ -0,0 +1,382 @@
|
||||
using System;
|
||||
using MikeSchweitzer.WebSocket;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
using UnityEngine.SceneManagement;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class PlayModePrefab : MonoBehaviour {
|
||||
[SerializeField] private GameObject selectionMenu;
|
||||
[SerializeField] private GameObject customMenu;
|
||||
[SerializeField] private GameObject autoWarningMenu;
|
||||
[SerializeField] private Button customButton;
|
||||
[SerializeField] private Button customBackButton;
|
||||
[SerializeField] private Button customPlayButton;
|
||||
[SerializeField] private Button customNormalizeButton;
|
||||
[SerializeField] private Button multiplayerButton;
|
||||
[SerializeField] private GameObject multiplayerJoinStatusPanel;
|
||||
[SerializeField] private GameObject multiplayerJoiningPanel;
|
||||
[SerializeField] private GameObject multiplayerDeniedPanel;
|
||||
[SerializeField] private Button multiplayerDeniedBackButton;
|
||||
[SerializeField] private TMP_Text multiplayerDeniedReasonText;
|
||||
[SerializeField] private Button autoButton;
|
||||
[SerializeField] private Button autoBackButton;
|
||||
[SerializeField] private Button autoPlayButton;
|
||||
[SerializeField] private Button backButton;
|
||||
|
||||
[SerializeField] private TMP_InputField normalBerryChance;
|
||||
[SerializeField] private TMP_InputField poisonBerryChance;
|
||||
[SerializeField] private TMP_InputField slowBerryChance;
|
||||
[SerializeField] private TMP_InputField ultraBerryChance;
|
||||
[SerializeField] private TMP_InputField speedyBerryChance;
|
||||
[SerializeField] private TMP_InputField randomBerryChance;
|
||||
[SerializeField] private TMP_InputField antiBerryChance;
|
||||
[SerializeField] private TMP_InputField goldenBerryChance;
|
||||
[SerializeField] private TMP_InputField nothingBerryChance;
|
||||
[SerializeField] private Toggle useAiToggle;
|
||||
|
||||
[SerializeField] private TMP_Text validateTotalText;
|
||||
|
||||
private readonly float defaultNormalBerryChance = 42.5f;
|
||||
private readonly float defaultPoisonBerryChance = 12.5f;
|
||||
private readonly float defaultSlowBerryChance = 10f;
|
||||
private readonly float defaultUltraBerryChance = 10f;
|
||||
private readonly float defaultSpeedyBerryChance = 10f;
|
||||
private readonly float defaultRandomBerryChance = 5f;
|
||||
private readonly float defaultAntiBerryChance = 5f;
|
||||
private readonly float defaultGoldenBerryChance = 5f;
|
||||
private readonly float defaultNothingBerryChance = 0f;
|
||||
|
||||
void Awake() {
|
||||
customButton.onClick.AddListener(() => {
|
||||
selectionMenu.SetActive(false);
|
||||
customMenu.SetActive(true);
|
||||
if (DiscordRPCHandler.Instance != null)
|
||||
DiscordRPCHandler.Instance.UpdateRPC("Customizing to play the custom mode", "");
|
||||
});
|
||||
customBackButton.onClick.AddListener(() => {
|
||||
customMenu.SetActive(false);
|
||||
selectionMenu.SetActive(true);
|
||||
|
||||
normalBerryChance.text = defaultNormalBerryChance.ToString() + "%";
|
||||
poisonBerryChance.text = defaultPoisonBerryChance.ToString() + "%";
|
||||
slowBerryChance.text = defaultSlowBerryChance.ToString() + "%";
|
||||
ultraBerryChance.text = defaultUltraBerryChance.ToString() + "%";
|
||||
speedyBerryChance.text = defaultSpeedyBerryChance.ToString() + "%";
|
||||
randomBerryChance.text = defaultRandomBerryChance.ToString() + "%";
|
||||
antiBerryChance.text = defaultAntiBerryChance.ToString() + "%";
|
||||
goldenBerryChance.text = defaultGoldenBerryChance.ToString() + "%";
|
||||
nothingBerryChance.text = defaultNothingBerryChance.ToString() + "%";
|
||||
useAiToggle.isOn = false;
|
||||
ValidateTotal();
|
||||
if (DiscordRPCHandler.Instance != null)
|
||||
DiscordRPCHandler.Instance.UpdateRPC("Picking what mode they want to play", "");
|
||||
});
|
||||
customNormalizeButton.onClick.AddListener(() => {
|
||||
float normalBerry = GetValueFrom(normalBerryChance);
|
||||
float poisonBerry = GetValueFrom(poisonBerryChance);
|
||||
float slowBerry = GetValueFrom(slowBerryChance);
|
||||
float ultraBerry = GetValueFrom(ultraBerryChance);
|
||||
float speedyBerry = GetValueFrom(speedyBerryChance);
|
||||
float randomBerry = GetValueFrom(randomBerryChance);
|
||||
float antiBerry = GetValueFrom(antiBerryChance);
|
||||
float goldenBerry = GetValueFrom(goldenBerryChance);
|
||||
float nothingBerry = GetValueFrom(nothingBerryChance);
|
||||
|
||||
int divideBy = 0;
|
||||
|
||||
divideBy += normalBerry > 0 ? 1 : 0;
|
||||
divideBy += poisonBerry > 0 ? 1 : 0;
|
||||
divideBy += slowBerry > 0 ? 1 : 0;
|
||||
divideBy += ultraBerry > 0 ? 1 : 0;
|
||||
divideBy += speedyBerry > 0 ? 1 : 0;
|
||||
divideBy += randomBerry > 0 ? 1 : 0;
|
||||
divideBy += antiBerry > 0 ? 1 : 0;
|
||||
divideBy += goldenBerry > 0 ? 1 : 0;
|
||||
divideBy += nothingBerry > 0 ? 1 : 0;
|
||||
|
||||
float addedChances = normalBerry + poisonBerry + slowBerry + ultraBerry + speedyBerry + randomBerry + antiBerry + goldenBerry + nothingBerry;
|
||||
float difference = addedChances - 100f;
|
||||
|
||||
if (normalBerry > 0) NormalizeOne(normalBerryChance, normalBerry, divideBy, difference);
|
||||
if (poisonBerry > 0) NormalizeOne(poisonBerryChance, poisonBerry, divideBy, difference);
|
||||
if (slowBerry > 0) NormalizeOne(slowBerryChance, slowBerry, divideBy, difference);
|
||||
if (ultraBerry > 0) NormalizeOne(ultraBerryChance, ultraBerry, divideBy, difference);
|
||||
if (speedyBerry > 0) NormalizeOne(speedyBerryChance, speedyBerry, divideBy, difference);
|
||||
if (randomBerry > 0) NormalizeOne(randomBerryChance, randomBerry, divideBy, difference);
|
||||
if (antiBerry > 0) NormalizeOne(antiBerryChance, antiBerry, divideBy, difference);
|
||||
if (goldenBerry > 0) NormalizeOne(goldenBerryChance, goldenBerry, divideBy, difference);
|
||||
if (nothingBerry > 0) NormalizeOne(nothingBerryChance, nothingBerry, divideBy, difference);
|
||||
|
||||
normalBerry = GetValueFrom(normalBerryChance);
|
||||
poisonBerry = GetValueFrom(poisonBerryChance);
|
||||
slowBerry = GetValueFrom(slowBerryChance);
|
||||
ultraBerry = GetValueFrom(ultraBerryChance);
|
||||
speedyBerry = GetValueFrom(speedyBerryChance);
|
||||
randomBerry = GetValueFrom(randomBerryChance);
|
||||
antiBerry = GetValueFrom(antiBerryChance);
|
||||
goldenBerry = GetValueFrom(goldenBerryChance);
|
||||
nothingBerry = GetValueFrom(nothingBerryChance);
|
||||
|
||||
if (normalBerry > 0) normalBerry = (float)Math.Floor(normalBerry);
|
||||
if (poisonBerry > 0) poisonBerry = (float)Math.Floor(poisonBerry);
|
||||
if (slowBerry > 0) slowBerry = (float)Math.Floor(slowBerry);
|
||||
if (ultraBerry > 0) ultraBerry = (float)Math.Floor(ultraBerry);
|
||||
if (speedyBerry > 0) speedyBerry = (float)Math.Floor(speedyBerry);
|
||||
if (randomBerry > 0) randomBerry = (float)Math.Floor(randomBerry);
|
||||
if (antiBerry > 0) antiBerry = (float)Math.Floor(antiBerry);
|
||||
if (goldenBerry > 0) goldenBerry = (float)Math.Floor(goldenBerry);
|
||||
if (nothingBerry > 0) nothingBerry = (float)Math.Floor(nothingBerry);
|
||||
|
||||
float addedChances2 = normalBerry + poisonBerry + slowBerry + ultraBerry + speedyBerry + randomBerry + antiBerry + goldenBerry + nothingBerry;
|
||||
float difference2 = addedChances2 - 100f;
|
||||
bool fixedValues = false;
|
||||
|
||||
if (normalBerry > 0) {
|
||||
NormalizeTwo(normalBerryChance, fixedValues, normalBerry, difference2);
|
||||
fixedValues = true;
|
||||
}
|
||||
if (poisonBerry > 0) {
|
||||
NormalizeTwo(poisonBerryChance, fixedValues, poisonBerry, difference2);
|
||||
fixedValues = true;
|
||||
}
|
||||
if (slowBerry > 0) {
|
||||
NormalizeTwo(slowBerryChance, fixedValues, slowBerry, difference2);
|
||||
fixedValues = true;
|
||||
}
|
||||
if (ultraBerry > 0) {
|
||||
NormalizeTwo(ultraBerryChance, fixedValues, ultraBerry, difference2);
|
||||
fixedValues = true;
|
||||
}
|
||||
if (speedyBerry > 0) {
|
||||
NormalizeTwo(speedyBerryChance, fixedValues, speedyBerry, difference2);
|
||||
fixedValues = true;
|
||||
}
|
||||
if (randomBerry > 0) {
|
||||
NormalizeTwo(randomBerryChance, fixedValues, randomBerry, difference2);
|
||||
fixedValues = true;
|
||||
}
|
||||
if (antiBerry > 0) {
|
||||
NormalizeTwo(antiBerryChance, fixedValues, antiBerry, difference2);
|
||||
fixedValues = true;
|
||||
}
|
||||
if (goldenBerry > 0) {
|
||||
NormalizeTwo(goldenBerryChance, fixedValues, goldenBerry, difference2);
|
||||
fixedValues = true;
|
||||
}
|
||||
if (nothingBerry > 0) {
|
||||
NormalizeTwo(nothingBerryChance, fixedValues, nothingBerry, difference2);
|
||||
fixedValues = true;
|
||||
}
|
||||
|
||||
ValidateTotal();
|
||||
});
|
||||
customPlayButton.onClick.AddListener(async () => {
|
||||
GameObject obj = new("CustomGameTempData");
|
||||
obj.AddComponent<CustomGameTempData>();
|
||||
CustomGameTempData customGameTempData = obj.GetComponent<CustomGameTempData>();
|
||||
customGameTempData.normalBerryChance = GetValueFrom(normalBerryChance);
|
||||
customGameTempData.poisonBerryChance = GetValueFrom(poisonBerryChance);
|
||||
customGameTempData.slowBerryChance = GetValueFrom(slowBerryChance);
|
||||
customGameTempData.ultraBerryChance = GetValueFrom(ultraBerryChance);
|
||||
customGameTempData.speedyBerryChance = GetValueFrom(speedyBerryChance);
|
||||
customGameTempData.randomBerryChance = GetValueFrom(randomBerryChance);
|
||||
customGameTempData.antiBerryChance = GetValueFrom(antiBerryChance);
|
||||
customGameTempData.goldenBerryChance = GetValueFrom(goldenBerryChance);
|
||||
customGameTempData.nothingBerryChance = GetValueFrom(nothingBerryChance);
|
||||
customGameTempData.useAI = useAiToggle.isOn;
|
||||
await SceneManager.LoadSceneAsync("CustomGamePlayer");
|
||||
});
|
||||
multiplayerButton.onClick.AddListener(() => {
|
||||
selectionMenu.SetActive(false);
|
||||
multiplayerJoinStatusPanel.SetActive(true);
|
||||
multiplayerJoiningPanel.SetActive(true);
|
||||
|
||||
MultiplayerJoinRequestMessage msg = new() {
|
||||
auth = BazookaManager.Instance.GetAccountSession()
|
||||
};
|
||||
WebsocketHandler.Instance._Connection.AddOutgoingMessage(JsonUtility.ToJson(msg));
|
||||
});
|
||||
multiplayerDeniedBackButton.onClick.AddListener(() => {
|
||||
multiplayerDeniedReasonText.text = "";
|
||||
multiplayerDeniedPanel.SetActive(false);
|
||||
multiplayerJoinStatusPanel.SetActive(false);
|
||||
selectionMenu.SetActive(true);
|
||||
});
|
||||
autoButton.onClick.AddListener(async () => {
|
||||
if (BazookaManager.Instance.GetReadAutoWarning() == true) {
|
||||
await SceneManager.LoadSceneAsync("AutoGamePlayer");
|
||||
return;
|
||||
}
|
||||
selectionMenu.SetActive(false);
|
||||
autoWarningMenu.SetActive(true);
|
||||
});
|
||||
autoBackButton.onClick.AddListener(() => {
|
||||
selectionMenu.SetActive(true);
|
||||
autoWarningMenu.SetActive(false);
|
||||
});
|
||||
autoPlayButton.onClick.AddListener(async () => {
|
||||
BazookaManager.Instance.SetReadAutoWarning(true);
|
||||
await SceneManager.LoadSceneAsync("AutoGamePlayer");
|
||||
});
|
||||
backButton.onClick.AddListener(() => Destroy(gameObject));
|
||||
|
||||
normalBerryChance.onSelect.AddListener((value) => OnSelect(value, normalBerryChance));
|
||||
normalBerryChance.onDeselect.AddListener((value) => OnDeselect(value, normalBerryChance));
|
||||
poisonBerryChance.onSelect.AddListener((value) => OnSelect(value, poisonBerryChance));
|
||||
poisonBerryChance.onDeselect.AddListener((value) => OnDeselect(value, poisonBerryChance));
|
||||
slowBerryChance.onSelect.AddListener((value) => OnSelect(value, slowBerryChance));
|
||||
slowBerryChance.onDeselect.AddListener((value) => OnDeselect(value, slowBerryChance));
|
||||
ultraBerryChance.onSelect.AddListener((value) => OnSelect(value, ultraBerryChance));
|
||||
ultraBerryChance.onDeselect.AddListener((value) => OnDeselect(value, ultraBerryChance));
|
||||
speedyBerryChance.onSelect.AddListener((value) => OnSelect(value, speedyBerryChance));
|
||||
speedyBerryChance.onDeselect.AddListener((value) => OnDeselect(value, speedyBerryChance));
|
||||
randomBerryChance.onSelect.AddListener((value) => OnSelect(value, randomBerryChance));
|
||||
randomBerryChance.onDeselect.AddListener((value) => OnDeselect(value, randomBerryChance));
|
||||
antiBerryChance.onSelect.AddListener((value) => OnSelect(value, antiBerryChance));
|
||||
antiBerryChance.onDeselect.AddListener((value) => OnDeselect(value, antiBerryChance));
|
||||
goldenBerryChance.onSelect.AddListener((value) => OnSelect(value, goldenBerryChance));
|
||||
goldenBerryChance.onDeselect.AddListener((value) => OnDeselect(value, goldenBerryChance));
|
||||
nothingBerryChance.onSelect.AddListener((value) => OnSelect(value, nothingBerryChance));
|
||||
nothingBerryChance.onDeselect.AddListener((value) => OnDeselect(value, nothingBerryChance));
|
||||
|
||||
WebsocketHandler.Instance._Connection.MessageReceived += OnMessageReceived;
|
||||
}
|
||||
|
||||
private void OnMessageReceived(WebSocketConnection connection, WebSocketMessage message) {
|
||||
if (message.String != null && connection.State == WebSocketState.Connected) {
|
||||
JToken data = JToken.Parse(message.String);
|
||||
if (data["type"] != null) {
|
||||
if (data["type"].ToString() == "multiplayer_join_response") {
|
||||
bool accepted = bool.Parse(data["accepted"].ToString());
|
||||
string denyReason = data["denyReason"].ToString();
|
||||
MultiplayerPlayerFromResponse[] players = data["players"].ToObject<MultiplayerPlayerFromResponse[]>();
|
||||
if (accepted) {
|
||||
GameObject obj = new("MultiplayerGameTempData");
|
||||
obj.AddComponent<MultiplayerGameTempData>();
|
||||
MultiplayerGameTempData multiplayerGameTempData = obj.GetComponent<MultiplayerGameTempData>();
|
||||
multiplayerGameTempData.players = players;
|
||||
SceneManager.LoadScene("MultiplayerGamePlayer");
|
||||
} else {
|
||||
multiplayerJoiningPanel.SetActive(false);
|
||||
multiplayerDeniedPanel.SetActive(true);
|
||||
multiplayerDeniedReasonText.text = denyReason;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Start() {
|
||||
if (DiscordRPCHandler.Instance != null)
|
||||
DiscordRPCHandler.Instance.UpdateRPC("Picking what mode they want to play", "");
|
||||
|
||||
if (Tools.GetLevelInfo().level < 5) {
|
||||
useAiToggle.gameObject.SetActive(false);
|
||||
customButton.interactable = false;
|
||||
customButton.transform.GetChild(0).GetComponent<TMP_Text>().text += "\n<size=12>You need level 5 or higher to access this</size>";
|
||||
}
|
||||
if (Tools.GetLevelInfo().level < 3) {
|
||||
autoButton.interactable = false;
|
||||
autoButton.transform.GetChild(0).GetComponent<TMP_Text>().text += "\n<size=12>You need level 3 or higher to access this</size>";
|
||||
}
|
||||
if (WebsocketHandler.Instance == null || WebsocketHandler.Instance._Connection.State != WebSocketState.Connected) {
|
||||
multiplayerButton.gameObject.SetActive(false);
|
||||
var pos = autoButton.transform.localPosition;
|
||||
pos.x = 0;
|
||||
autoButton.transform.localPosition = pos;
|
||||
} else if (BazookaManager.Instance.GetAccountID() == null || BazookaManager.Instance.GetAccountName() == null || BazookaManager.Instance.GetAccountSession() == null) {
|
||||
multiplayerButton.interactable = false;
|
||||
multiplayerButton.transform.GetChild(0).GetComponent<TMP_Text>().text += "\n<size=12>You must be logged to access this</size>";
|
||||
} else if (Tools.GetLevelInfo().level < 10) {
|
||||
multiplayerButton.interactable = false;
|
||||
multiplayerButton.transform.GetChild(0).GetComponent<TMP_Text>().text += "\n<size=12>You need level 10 or higher to access this</size>";
|
||||
}
|
||||
}
|
||||
|
||||
void OnDestroy() {
|
||||
WebsocketHandler.Instance._Connection.MessageReceived -= OnMessageReceived;
|
||||
}
|
||||
|
||||
void ValidateTotal() {
|
||||
customBackButton.interactable = false;
|
||||
customPlayButton.interactable = false;
|
||||
customNormalizeButton.interactable = false;
|
||||
float total = 0f;
|
||||
total += GetValueFrom(normalBerryChance);
|
||||
total += GetValueFrom(poisonBerryChance);
|
||||
total += GetValueFrom(slowBerryChance);
|
||||
total += GetValueFrom(ultraBerryChance);
|
||||
total += GetValueFrom(speedyBerryChance);
|
||||
total += GetValueFrom(randomBerryChance);
|
||||
total += GetValueFrom(antiBerryChance);
|
||||
total += GetValueFrom(goldenBerryChance);
|
||||
total += GetValueFrom(nothingBerryChance);
|
||||
if (total == 100f) {
|
||||
customBackButton.interactable = true;
|
||||
customPlayButton.interactable = true;
|
||||
validateTotalText.gameObject.SetActive(false);
|
||||
} else {
|
||||
customNormalizeButton.interactable = true;
|
||||
validateTotalText.text = "Total must add up to 100%!";
|
||||
validateTotalText.gameObject.SetActive(true);
|
||||
}
|
||||
}
|
||||
|
||||
private float GetValueFrom(TMP_InputField inputField) {
|
||||
return GetValueFroText(inputField.text);
|
||||
}
|
||||
|
||||
private float GetValueFroText(string text) {
|
||||
try {
|
||||
return float.Parse(text.Replace("%", "").Trim());
|
||||
}
|
||||
catch {
|
||||
return 0f;
|
||||
}
|
||||
}
|
||||
|
||||
void OnSelect(string value, TMP_InputField inputField) {
|
||||
validateTotalText.gameObject.SetActive(false);
|
||||
customBackButton.interactable = false;
|
||||
customPlayButton.interactable = false;
|
||||
customNormalizeButton.interactable = false;
|
||||
inputField.text = value.Replace("%", "");
|
||||
inputField.stringPosition = inputField.text.Length;
|
||||
}
|
||||
|
||||
void OnDeselect(string value, TMP_InputField inputField) {
|
||||
if (float.TryParse(value, out var value2) && value2 < 0f) {
|
||||
value = "0";
|
||||
}
|
||||
inputField.text = value + "%";
|
||||
ValidateTotal();
|
||||
}
|
||||
|
||||
void NormalizeOne(TMP_InputField inputField, float berryChance, int divideBy, float difference) {
|
||||
inputField.text = (berryChance - (difference / divideBy)).ToString() + "%";
|
||||
inputField.stringPosition = inputField.text.Length;
|
||||
}
|
||||
|
||||
void NormalizeTwo(TMP_InputField inputField, bool fixedValues, float berryChance, float difference2) {
|
||||
if (!fixedValues) {
|
||||
inputField.text = (berryChance - difference2).ToString() + "%";
|
||||
inputField.stringPosition = inputField.text.Length;
|
||||
} else {
|
||||
inputField.text = berryChance.ToString() + "%";
|
||||
inputField.stringPosition = inputField.text.Length;
|
||||
}
|
||||
}
|
||||
|
||||
void Update() {
|
||||
if (Keyboard.current.escapeKey.wasPressedThisFrame && customBackButton.interactable) {
|
||||
if (customMenu.activeSelf) customBackButton.onClick.Invoke();
|
||||
else if (autoWarningMenu.activeSelf) autoBackButton.onClick.Invoke();
|
||||
else if (multiplayerJoinStatusPanel.activeSelf) {
|
||||
if (multiplayerDeniedPanel.activeSelf) multiplayerDeniedBackButton.onClick.Invoke();
|
||||
} else Destroy(gameObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dbc4899af328c47f6ad3eafd878a71a2
|
||||
@@ -0,0 +1,340 @@
|
||||
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using System.Threading.Tasks;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
using UnityEngine.Networking;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class ProfileMenu : MonoBehaviour {
|
||||
[SerializeField] private Button exitButton;
|
||||
[SerializeField] private Button refreshButton;
|
||||
[SerializeField] private Button postButton;
|
||||
|
||||
[SerializeField] private GameObject contentPanel;
|
||||
[SerializeField] private TMP_Text loadingText;
|
||||
[SerializeField] private GameObject voteOverlay;
|
||||
[SerializeField] private GameObject postOverlay;
|
||||
|
||||
[SerializeField] private TMP_Text normalBerryStat;
|
||||
[SerializeField] private TMP_Text poisonBerryStat;
|
||||
[SerializeField] private TMP_Text slowBerryStat;
|
||||
[SerializeField] private TMP_Text ultraBerryStat;
|
||||
[SerializeField] private TMP_Text speedyBerryStat;
|
||||
[SerializeField] private TMP_Text coinBerryStat;
|
||||
[SerializeField] private TMP_Text randomBerryStat;
|
||||
[SerializeField] private TMP_Text antiBerryStat;
|
||||
[SerializeField] private TMP_Text goldenBerryStat;
|
||||
[SerializeField] private TMP_Text coinStat;
|
||||
[SerializeField] private TMP_Text playerLevelAndXPStat;
|
||||
[SerializeField] private TMP_Text playerNameText;
|
||||
[SerializeField] private Image playerIconImage;
|
||||
[SerializeField] private Image playerOverlayImage;
|
||||
[SerializeField] private GameObject postSample;
|
||||
|
||||
[SerializeField] private bool canVote = true;
|
||||
|
||||
private GameObject popupObject;
|
||||
|
||||
|
||||
void Awake() {
|
||||
exitButton.onClick.AddListener(() => Destroy(gameObject));
|
||||
}
|
||||
|
||||
public async Task Init(
|
||||
string normalBerries,
|
||||
string poisonBerries,
|
||||
string slowBerries,
|
||||
string ultraBerries,
|
||||
string speedyBerries,
|
||||
string coinBerries,
|
||||
string randomBerries,
|
||||
string antiBerries,
|
||||
string goldenBerries,
|
||||
string coins,
|
||||
string playerName,
|
||||
BigInteger playerID,
|
||||
int? playerIcon,
|
||||
int? playerOverlay,
|
||||
Color playerIconColor,
|
||||
Color playerOverlayColor,
|
||||
string customIcon
|
||||
) {
|
||||
var xp = Tools.CalculateXP(BigInteger.Parse(normalBerries), BigInteger.Parse(poisonBerries), BigInteger.Parse(slowBerries), BigInteger.Parse(ultraBerries), BigInteger.Parse(speedyBerries), BigInteger.Parse(coinBerries), BigInteger.Parse(randomBerries), BigInteger.Parse(antiBerries), BigInteger.Parse(goldenBerries));
|
||||
var level = Tools.GetLevelInfo(xp).level;
|
||||
|
||||
normalBerryStat.text = Tools.FormatWithCommas(normalBerries);
|
||||
poisonBerryStat.text = Tools.FormatWithCommas(poisonBerries);
|
||||
slowBerryStat.text = Tools.FormatWithCommas(slowBerries);
|
||||
ultraBerryStat.text = Tools.FormatWithCommas(ultraBerries);
|
||||
speedyBerryStat.text = Tools.FormatWithCommas(speedyBerries);
|
||||
coinBerryStat.text = Tools.FormatWithCommas(coinBerries);
|
||||
randomBerryStat.text = Tools.FormatWithCommas(randomBerries);
|
||||
antiBerryStat.text = Tools.FormatWithCommas(antiBerries);
|
||||
goldenBerryStat.text = Tools.FormatWithCommas(goldenBerries);
|
||||
coinStat.text = Tools.FormatWithCommas(coins);
|
||||
playerLevelAndXPStat.text = $"Level: {Tools.FormatWithCommas((BigInteger)level)}\nXP: {Tools.FormatWithCommas(xp)}";
|
||||
playerNameText.text = playerName;
|
||||
|
||||
if (customIcon == null) {
|
||||
playerIconImage.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + playerIcon);
|
||||
if (playerIcon == 1) playerIconImage.sprite = Tools.GetIconForUser(playerID);
|
||||
playerOverlayImage.sprite = Resources.Load<Sprite>("Icons/Overlays/overlay_" + playerOverlay);
|
||||
if (playerOverlay != 0) playerOverlayImage.gameObject.SetActive(true);
|
||||
if (playerOverlay == 8) playerOverlayImage.transform.localPosition = new UnityEngine.Vector2(-16.56f, 14.81f);
|
||||
else if (playerOverlay == 11) playerOverlayImage.transform.localPosition = new UnityEngine.Vector2(-14.74451f, 20.39122f);
|
||||
else if (playerOverlay == 13) playerOverlayImage.transform.localPosition = new UnityEngine.Vector2(-16.54019f, 14.70365f);
|
||||
playerIconImage.color = playerIconColor;
|
||||
playerOverlayImage.color = playerOverlayColor;
|
||||
} else {
|
||||
var waitingForCustomIcon = playerIconImage.gameObject.AddComponent<WaitingForCustomIcon>();
|
||||
waitingForCustomIcon.ID = customIcon;
|
||||
CustomIconLoader.Init(new[] { waitingForCustomIcon });
|
||||
}
|
||||
if (BazookaManager.Instance.GetAccountID() == playerID) {
|
||||
postButton.gameObject.SetActive(true);
|
||||
postButton.onClick.AddListener(UploadPostPopup);
|
||||
}
|
||||
|
||||
contentPanel.SetActive(true);
|
||||
loadingText.gameObject.SetActive(false);
|
||||
|
||||
Tools.RefreshHierarchy(gameObject);
|
||||
refreshButton.onClick.AddListener(async () => await RefreshPosts(playerID, playerName));
|
||||
await RefreshPosts(playerID, playerName);
|
||||
}
|
||||
|
||||
public async Task Init(BigInteger playerID) {
|
||||
if (BazookaManager.Instance.GetAccountID() == playerID) { await Init(); return; }
|
||||
using UnityWebRequest request = UnityWebRequest.Get(Endpoints.BD_ACCOUNT_ENDPOINT + "?id=" + playerID.ToString() + "&exact=true");
|
||||
request.SetRequestHeader("Requester", "BerryDashClient");
|
||||
request.SetRequestHeader("ClientVersion", Application.version);
|
||||
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
||||
await request.SendWebRequest();
|
||||
if (request.downloadHandler.text == null) {
|
||||
Destroy(gameObject);
|
||||
return;
|
||||
}
|
||||
string response = request.downloadHandler.text;
|
||||
try {
|
||||
var jsonResponse = JObject.Parse(response);
|
||||
if ((bool)jsonResponse["success"]) {
|
||||
|
||||
var data = jsonResponse["data"].ToObject<Account>();
|
||||
|
||||
var iconColorArray = data.BirdColor;
|
||||
var overlayColorArray = data.OverlayColor;
|
||||
var iconColor = new Color(iconColorArray[0] / 255f, iconColorArray[1] / 255f, iconColorArray[2] / 255f);
|
||||
var overlayColor = new Color(overlayColorArray[0] / 255f, overlayColorArray[1] / 255f, overlayColorArray[2] / 255f);
|
||||
await Init(
|
||||
data.Stats.TotalNormalBerries.ToString(),
|
||||
data.Stats.TotalPoisonBerries.ToString(),
|
||||
data.Stats.TotalSlowBerries.ToString(),
|
||||
data.Stats.TotalUltraBerries.ToString(),
|
||||
data.Stats.TotalSpeedyBerries.ToString(),
|
||||
data.Stats.TotalCoinBerries.ToString(),
|
||||
data.Stats.TotalRandomBerries.ToString(),
|
||||
data.Stats.TotalAntiBerries.ToString(),
|
||||
data.Stats.TotalGoldenBerries.ToString(),
|
||||
data.Stats.Coins.ToString(),
|
||||
data.Username,
|
||||
playerID,
|
||||
data.Icon,
|
||||
data.Overlay,
|
||||
iconColor,
|
||||
overlayColor,
|
||||
data.CustomIcon
|
||||
);
|
||||
} else {
|
||||
Destroy(gameObject);
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Destroy(gameObject);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task Init() {
|
||||
var customIconData = BazookaManager.Instance.GetCustomBirdIconData();
|
||||
var iconColor = customIconData.Selected == null ? BazookaManager.Instance.GetColorSettingIcon() : null;
|
||||
var overlayColor = customIconData.Selected == null ? BazookaManager.Instance.GetColorSettingOverlay() : null;
|
||||
await Init(
|
||||
BazookaManager.Instance.GetGameStoreTotalNormalBerries().ToString(),
|
||||
BazookaManager.Instance.GetGameStoreTotalPoisonBerries().ToString(),
|
||||
BazookaManager.Instance.GetGameStoreTotalSlowBerries().ToString(),
|
||||
BazookaManager.Instance.GetGameStoreTotalUltraBerries().ToString(),
|
||||
BazookaManager.Instance.GetGameStoreTotalSpeedyBerries().ToString(),
|
||||
BazookaManager.Instance.GetGameStoreTotalCoinBerries().ToString(),
|
||||
BazookaManager.Instance.GetGameStoreTotalRandomBerries().ToString(),
|
||||
BazookaManager.Instance.GetGameStoreTotalAntiBerries().ToString(),
|
||||
BazookaManager.Instance.GetGameStoreTotalGoldenBerries().ToString(),
|
||||
customIconData.Balance.ToString(),
|
||||
BazookaManager.Instance.GetAccountName().ToString(),
|
||||
BazookaManager.Instance.GetAccountID() ?? 0,
|
||||
customIconData.Selected == null ? BazookaManager.Instance.GetBirdIcon() : null,
|
||||
customIconData.Selected == null ? BazookaManager.Instance.GetBirdOverlay() : null,
|
||||
customIconData.Selected == null ? new Color((int)iconColor[0] / 255f, (int)iconColor[1] / 255f, (int)iconColor[2] / 255f) : Color.white,
|
||||
customIconData.Selected == null ? new Color((int)overlayColor[0] / 255f, (int)overlayColor[1] / 255f, (int)overlayColor[2] / 255f) : Color.white,
|
||||
customIconData.Selected
|
||||
);
|
||||
}
|
||||
|
||||
async Task RefreshPosts(BigInteger playerID, string playerName) {
|
||||
exitButton.interactable = false;
|
||||
refreshButton.interactable = false;
|
||||
postButton.interactable = false;
|
||||
foreach (Transform post in postSample.transform.parent) {
|
||||
if (post.gameObject.activeSelf) {
|
||||
Destroy(post.gameObject);
|
||||
}
|
||||
}
|
||||
using UnityWebRequest request = UnityWebRequest.Get(Endpoints.PROFILE_POSTS_ENDPOINT + "?userId=" + playerID.ToString());
|
||||
request.SetRequestHeader("Requester", "BerryDashClient");
|
||||
request.SetRequestHeader("ClientVersion", Application.version);
|
||||
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
||||
await request.SendWebRequest();
|
||||
if (request.downloadHandler.text == null) {
|
||||
exitButton.interactable = true;
|
||||
refreshButton.interactable = true;
|
||||
return;
|
||||
}
|
||||
string response = request.downloadHandler.text;
|
||||
var posts = JArray.Parse(response).ToObject<ProfileMessageResponse[]>();
|
||||
foreach (var post in posts) {
|
||||
var entry = Instantiate(postSample, postSample.transform.parent);
|
||||
var entryUsername = entry.transform.GetChild(0).GetComponent<TMP_Text>();
|
||||
var entryLikesParent = entry.transform.GetChild(1);
|
||||
var entryLikesTexture = entryLikesParent.GetChild(1).GetComponent<TMP_Text>();
|
||||
var entryLikesButton = entryLikesParent.GetChild(1).GetComponent<Button>();
|
||||
var entryLikesCount = entryLikesParent.GetChild(2).GetComponent<TMP_Text>();
|
||||
var entryMessage = entry.transform.GetChild(2).GetComponent<TMP_Text>();
|
||||
var entryTimestamp = entry.transform.GetChild(3).GetComponent<TMP_Text>();
|
||||
var entryDeleteButton = entryLikesParent.GetChild(0).GetComponent<Button>();
|
||||
|
||||
entryUsername.text = playerName;
|
||||
entryLikesTexture.text = post.Likes < 0 ? "\\uf165" : "\\uf164";
|
||||
entryLikesTexture.color = post.Likes < 0 ? new Color(1f, 0f, 0.5f) : new Color(1f, 1f, 0f);
|
||||
entryLikesCount.text = Tools.FormatWithCommas(post.Likes);
|
||||
entryLikesButton.onClick.AddListener(() => {
|
||||
if (canVote && BazookaManager.Instance.GetAccountID() != null && BazookaManager.Instance.GetAccountID() != playerID) {
|
||||
var likedPosts = BazookaManager.Instance
|
||||
.GetLikedPosts()
|
||||
.Select(x => x.ToString())
|
||||
.ToList();
|
||||
if (!likedPosts.Any(x => x.ToString() == post.ID.ToString())) VotePost(post.ID, entryLikesCount, entryLikesTexture);
|
||||
}
|
||||
});
|
||||
entryMessage.text = post.Content;
|
||||
entryTimestamp.text = post.Timestamp.ToString();
|
||||
if (BazookaManager.Instance.GetAccountID() == playerID) {
|
||||
entryDeleteButton.gameObject.SetActive(true);
|
||||
entryDeleteButton.onClick.AddListener(async () => await DeletePost(entry, post.ID));
|
||||
}
|
||||
|
||||
entry.name = "PostEntry_" + post.ID;
|
||||
entry.SetActive(true);
|
||||
|
||||
Tools.RefreshHierarchy(entry);
|
||||
}
|
||||
exitButton.interactable = true;
|
||||
refreshButton.interactable = true;
|
||||
postButton.interactable = true;
|
||||
}
|
||||
|
||||
void VotePost(BigInteger postId, TMP_Text entryLikesCount, TMP_Text entryLikesTexture) {
|
||||
var popup = Instantiate(voteOverlay, voteOverlay.transform.parent);
|
||||
popupObject = popup;
|
||||
popup.SetActive(true);
|
||||
var exitButton = popup.transform.GetChild(0).GetChild(0).GetComponent<Button>();
|
||||
var likeButton = popup.transform.GetChild(0).GetChild(2).GetComponent<Button>();
|
||||
var dislikeButton = popup.transform.GetChild(0).GetChild(3).GetComponent<Button>();
|
||||
exitButton.onClick.AddListener(() => Destroy(popup));
|
||||
likeButton.onClick.AddListener(async () => {
|
||||
canVote = false;
|
||||
popupObject = null;
|
||||
Destroy(popup);
|
||||
await SendPostVote(postId, true, entryLikesCount, entryLikesTexture);
|
||||
canVote = true;
|
||||
});
|
||||
dislikeButton.onClick.AddListener(async () => {
|
||||
canVote = false;
|
||||
popupObject = null;
|
||||
Destroy(popup);
|
||||
await SendPostVote(postId, false, entryLikesCount, entryLikesTexture);
|
||||
canVote = true;
|
||||
});
|
||||
}
|
||||
|
||||
async Task SendPostVote(BigInteger postId, bool liked, TMP_Text entryLikesCount, TMP_Text entryLikesTexture) {
|
||||
using UnityWebRequest request = UnityWebRequest.Put(Endpoints.PROFILE_POSTS_ENDPOINT + $"?id={postId}&liked={liked}", new WWWForm().data);
|
||||
request.SetRequestHeader("Authorization", BazookaManager.Instance.GetAccountSession());
|
||||
request.SetRequestHeader("Requester", "BerryDashClient");
|
||||
request.SetRequestHeader("ClientVersion", Application.version);
|
||||
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
||||
await request.SendWebRequest();
|
||||
if (request.downloadHandler.text == null) return;
|
||||
var jsonResponse = JObject.Parse(request.downloadHandler.text);
|
||||
if ((bool)jsonResponse["success"]) {
|
||||
BigInteger likes = BigInteger.Parse((string)jsonResponse["data"]["likes"]);
|
||||
entryLikesCount.text = Tools.FormatWithCommas(likes);
|
||||
entryLikesTexture.text = likes < 0 ? "\\uf165" : "\\uf164";
|
||||
entryLikesTexture.color = likes < 0 ? new Color(1f, 0f, 0.5f) : new Color(1f, 1f, 0f);
|
||||
var likedPosts = BazookaManager.Instance.GetLikedPosts();
|
||||
likedPosts.Add(postId.ToString());
|
||||
BazookaManager.Instance.SetLikedPosts(likedPosts);
|
||||
}
|
||||
}
|
||||
|
||||
void UploadPostPopup() {
|
||||
var popup = Instantiate(postOverlay, postOverlay.transform.parent);
|
||||
popupObject = popup;
|
||||
popup.SetActive(true);
|
||||
var inputBox = popup.transform.GetChild(0).GetChild(1).GetComponent<TMP_InputField>();
|
||||
inputBox.onSelect.AddListener((_) => inputBox.caretPosition = inputBox.text.Length);
|
||||
var cancelButton = popup.transform.GetChild(0).GetChild(2).GetComponent<Button>();
|
||||
var submitButton = popup.transform.GetChild(0).GetChild(3).GetComponent<Button>();
|
||||
cancelButton.onClick.AddListener(() => {
|
||||
Destroy(popup);
|
||||
popupObject = null;
|
||||
});
|
||||
submitButton.onClick.AddListener(async () => {
|
||||
if (inputBox.text.Trim().Length == 0) return;
|
||||
popupObject = null;
|
||||
Destroy(popup);
|
||||
await UploadPost(inputBox.text);
|
||||
});
|
||||
}
|
||||
|
||||
async Task UploadPost(string message) {
|
||||
WWWForm dataForm = new();
|
||||
dataForm.AddField("content", message);
|
||||
using UnityWebRequest request = UnityWebRequest.Post(Endpoints.PROFILE_POSTS_ENDPOINT, dataForm);
|
||||
request.SetRequestHeader("Authorization", BazookaManager.Instance.GetAccountSession());
|
||||
request.SetRequestHeader("Requester", "BerryDashClient");
|
||||
request.SetRequestHeader("ClientVersion", Application.version);
|
||||
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
||||
await request.SendWebRequest();
|
||||
if (request.result == UnityWebRequest.Result.Success && request.responseCode == 200) {
|
||||
await RefreshPosts(BazookaManager.Instance.GetAccountID() ?? 0, BazookaManager.Instance.GetAccountName());
|
||||
}
|
||||
}
|
||||
|
||||
async Task DeletePost(GameObject entryObject, BigInteger targetId) {
|
||||
using UnityWebRequest request = UnityWebRequest.Delete(Endpoints.PROFILE_POSTS_ENDPOINT + "?id=" + targetId.ToString());
|
||||
request.SetRequestHeader("Authorization", BazookaManager.Instance.GetAccountSession());
|
||||
request.SetRequestHeader("Requester", "BerryDashClient");
|
||||
request.SetRequestHeader("ClientVersion", Application.version);
|
||||
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
||||
await request.SendWebRequest();
|
||||
if (request.result == UnityWebRequest.Result.Success && request.responseCode == 200) {
|
||||
Destroy(entryObject);
|
||||
}
|
||||
}
|
||||
|
||||
void Update() {
|
||||
if (Keyboard.current.escapeKey.wasPressedThisFrame && exitButton.interactable) exitButton.onClick.Invoke();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6923be8c4608e4af893f64b3729b9f1a
|
||||
@@ -0,0 +1,146 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
using UnityEngine.SceneManagement;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class SettingsMenu : MonoBehaviour {
|
||||
[SerializeField] private GameObject settingsMenu;
|
||||
[SerializeField] private ColorPanel colorMenu;
|
||||
[SerializeField] private Button exitButton;
|
||||
[SerializeField] private Button toggleButton;
|
||||
|
||||
[SerializeField] private Toggle setting1toggle;
|
||||
[SerializeField] private Toggle setting2toggle;
|
||||
[SerializeField] private Toggle setting3toggle;
|
||||
[SerializeField] private Toggle setting4toggle;
|
||||
[SerializeField] private Toggle setting5toggle;
|
||||
[SerializeField] private Slider musicSlider;
|
||||
[SerializeField] private Slider sfxSlider;
|
||||
[SerializeField] private GameObject settingsUI;
|
||||
|
||||
[SerializeField] private Button switchColorTypeButton;
|
||||
[SerializeField] private int colorType = 0;
|
||||
[SerializeField] private bool colorCanSave = true;
|
||||
|
||||
private void Start() {
|
||||
colorMenu.Init(Color.white, Color.white);
|
||||
colorMenu.OnColorChanged += color => {
|
||||
if (!colorCanSave) return;
|
||||
|
||||
if (colorType == 0) BazookaManager.Instance.SetColorSettingBackground(color);
|
||||
else if (colorType == 1) BazookaManager.Instance.SetColorSettingMenuBackground(color);
|
||||
else if (colorType == 2) BazookaManager.Instance.SetColorSettingButton(color);
|
||||
else if (colorType == 3) BazookaManager.Instance.SetColorSettingButtonContent(color);
|
||||
else if (colorType == 4) BazookaManager.Instance.SetColorSettingText(color);
|
||||
|
||||
foreach (CustomColorObject customColorObject in FindObjectsByType<CustomColorObject>(FindObjectsSortMode.None)) customColorObject.SetColor();
|
||||
};
|
||||
exitButton.onClick.AddListener(() => Destroy(gameObject));
|
||||
toggleButton.onClick.AddListener(() => {
|
||||
settingsMenu.SetActive(!settingsMenu.activeSelf);
|
||||
colorMenu.gameObject.SetActive(!colorMenu.gameObject.activeSelf);
|
||||
SwitchColorType(4);
|
||||
foreach (CustomColorObject customColorObject in FindObjectsByType<CustomColorObject>(FindObjectsSortMode.None)) customColorObject.SetColor();
|
||||
});
|
||||
switchColorTypeButton.onClick.AddListener(() => SwitchColorType());
|
||||
|
||||
musicSlider.value = BazookaManager.Instance.GetSettingMusicVolume();
|
||||
sfxSlider.value = BazookaManager.Instance.GetSettingSFXVolume();
|
||||
if (!Application.isMobilePlatform) {
|
||||
setting1toggle.isOn = BazookaManager.Instance.GetSettingFullScreen() == true;
|
||||
setting2toggle.isOn = BazookaManager.Instance.GetSettingShowFPS() == true;
|
||||
setting3toggle.isOn = BazookaManager.Instance.GetSettingVsync() == true;
|
||||
setting4toggle.isOn = BazookaManager.Instance.GetSettingHideSocials() == true;
|
||||
setting5toggle.isOn = BazookaManager.Instance.GetSettingRandomMusic() == true;
|
||||
setting1toggle.onValueChanged.AddListener(value => {
|
||||
BazookaManager.Instance.SetSettingFullScreen(value);
|
||||
var width = Display.main.systemWidth;
|
||||
var height = Display.main.systemHeight;
|
||||
Screen.SetResolution(width, height, value);
|
||||
});
|
||||
setting3toggle.onValueChanged.AddListener(value => {
|
||||
BazookaManager.Instance.SetSettingVsync(value);
|
||||
QualitySettings.vSyncCount = value ? 1 : -1;
|
||||
});
|
||||
} else {
|
||||
setting1toggle.gameObject.SetActive(false);
|
||||
setting2toggle.isOn = BazookaManager.Instance.GetSettingShowFPS() == true;
|
||||
setting3toggle.gameObject.SetActive(false);
|
||||
setting4toggle.isOn = BazookaManager.Instance.GetSettingHideSocials() == true;
|
||||
setting5toggle.isOn = BazookaManager.Instance.GetSettingRandomMusic() == true;
|
||||
}
|
||||
setting2toggle.onValueChanged.AddListener(value => {
|
||||
BazookaManager.Instance.SetSettingShowFPS(value);
|
||||
});
|
||||
setting4toggle.onValueChanged.AddListener(value => {
|
||||
BazookaManager.Instance.SetSettingHideSocials(value);
|
||||
|
||||
DontDestroyOnLoad(gameObject);
|
||||
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
|
||||
SceneManager.sceneLoaded += OnSceneLoaded;
|
||||
});
|
||||
setting5toggle.onValueChanged.AddListener(value => BazookaManager.Instance.SetSettingRandomMusic(value));
|
||||
musicSlider.onValueChanged.AddListener(value => {
|
||||
BazookaManager.Instance.SetSettingMusicVolume(value);
|
||||
MenuMusic.Instance.GetComponent<AudioSource>().volume = value;
|
||||
});
|
||||
sfxSlider.onValueChanged.AddListener(value => BazookaManager.Instance.SetSettingSFXVolume(value));
|
||||
Tools.RefreshHierarchy(setting1toggle.transform.parent.gameObject);
|
||||
}
|
||||
|
||||
void SwitchColorType(int color = -1) {
|
||||
var type = color == -1 ? colorType : color;
|
||||
var text = colorMenu.transform.GetChild(0).GetComponent<TMP_Text>();
|
||||
var colorToSet = new JArray(255, 255, 255);
|
||||
switch (type) {
|
||||
case 0: //IGBGColor
|
||||
text.text = "Menu background color";
|
||||
colorType = 1;
|
||||
colorToSet = BazookaManager.Instance.GetColorSettingMenuBackground();
|
||||
colorMenu.defaultColor = new(24f / 255f, 24f / 255f, 24f / 255f);
|
||||
break;
|
||||
case 1: //MBGColor
|
||||
text.text = "Button color";
|
||||
colorType = 2;
|
||||
colorToSet = BazookaManager.Instance.GetColorSettingButton();
|
||||
colorMenu.defaultColor = new(1f, 1f, 1f);
|
||||
break;
|
||||
case 2: //BCColor
|
||||
text.text = "Button content color";
|
||||
colorType = 3;
|
||||
colorToSet = BazookaManager.Instance.GetColorSettingButtonContent();
|
||||
colorMenu.defaultColor = new(0f, 0f, 0f);
|
||||
break;
|
||||
case 3: //TColor
|
||||
text.text = "Text color";
|
||||
colorType = 4;
|
||||
colorToSet = BazookaManager.Instance.GetColorSettingText();
|
||||
colorMenu.defaultColor = new(1f, 1f, 1f);
|
||||
break;
|
||||
case 4: //IGColor
|
||||
text.text = "In game background color";
|
||||
colorType = 0;
|
||||
colorToSet = BazookaManager.Instance.GetColorSettingBackground();
|
||||
colorMenu.defaultColor = new(58f / 255f, 58f / 255f, 58f / 255f);
|
||||
break;
|
||||
}
|
||||
colorCanSave = false;
|
||||
colorMenu.SetColor(new Color((int)colorToSet[0] / 255f, (int)colorToSet[1] / 255f, (int)colorToSet[2] / 255f));
|
||||
colorCanSave = true;
|
||||
}
|
||||
|
||||
void Update() {
|
||||
if (Keyboard.current.escapeKey.wasPressedThisFrame && exitButton.interactable) exitButton.onClick.Invoke();
|
||||
}
|
||||
|
||||
void OnSceneLoaded(Scene scene, LoadSceneMode mode) {
|
||||
SceneManager.MoveGameObjectToScene(gameObject, scene);
|
||||
SceneManager.sceneLoaded -= OnSceneLoaded;
|
||||
|
||||
var canvas = GetComponentInChildren<Canvas>();
|
||||
canvas.enabled = false;
|
||||
canvas.enabled = true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: daf792cf8b2068a48ae031a87590a1da
|
||||
@@ -0,0 +1,99 @@
|
||||
using System;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class StatsPrefab : MonoBehaviour {
|
||||
[SerializeField] private GameObject panel;
|
||||
|
||||
[SerializeField] private TMP_Text normalBerryStat;
|
||||
[SerializeField] private TMP_Text poisonBerryStat;
|
||||
[SerializeField] private TMP_Text slowBerryStat;
|
||||
[SerializeField] private TMP_Text ultraBerryStat;
|
||||
[SerializeField] private TMP_Text speedyBerryStat;
|
||||
[SerializeField] private TMP_Text coinBerryStat;
|
||||
[SerializeField] private TMP_Text randomBerryStat;
|
||||
[SerializeField] private TMP_Text antiBerryStat;
|
||||
[SerializeField] private TMP_Text goldenBerryStat;
|
||||
[SerializeField] private TMP_Text coinStat;
|
||||
|
||||
[SerializeField] private Image playerIcon;
|
||||
[SerializeField] private Image playerOverlay;
|
||||
|
||||
[SerializeField] private TMP_Text xpUsernameText;
|
||||
[SerializeField] private TMP_Text xpText;
|
||||
[SerializeField] private TMP_Text xpLevelText;
|
||||
|
||||
[SerializeField] private RectTransform progressFilledRect;
|
||||
|
||||
[SerializeField] private Button exitButton;
|
||||
|
||||
void Start() {
|
||||
normalBerryStat.text = Tools.FormatWithCommas(BazookaManager.Instance.GetGameStoreTotalNormalBerries());
|
||||
poisonBerryStat.text = Tools.FormatWithCommas(BazookaManager.Instance.GetGameStoreTotalPoisonBerries());
|
||||
slowBerryStat.text = Tools.FormatWithCommas(BazookaManager.Instance.GetGameStoreTotalSlowBerries());
|
||||
ultraBerryStat.text = Tools.FormatWithCommas(BazookaManager.Instance.GetGameStoreTotalUltraBerries());
|
||||
speedyBerryStat.text = Tools.FormatWithCommas(BazookaManager.Instance.GetGameStoreTotalSpeedyBerries());
|
||||
coinBerryStat.text = Tools.FormatWithCommas(BazookaManager.Instance.GetGameStoreTotalCoinBerries());
|
||||
randomBerryStat.text = Tools.FormatWithCommas(BazookaManager.Instance.GetGameStoreTotalRandomBerries());
|
||||
antiBerryStat.text = Tools.FormatWithCommas(BazookaManager.Instance.GetGameStoreTotalAntiBerries());
|
||||
goldenBerryStat.text = Tools.FormatWithCommas(BazookaManager.Instance.GetGameStoreTotalGoldenBerries());
|
||||
coinStat.text = Tools.FormatWithCommas(BazookaManager.Instance.GetCustomBirdIconData().Balance);
|
||||
|
||||
var customIcon = BazookaManager.Instance.GetCustomBirdIconData().Selected;
|
||||
if (customIcon == null) {
|
||||
int icon = BazookaManager.Instance.GetBirdIcon();
|
||||
int overlay = BazookaManager.Instance.GetBirdOverlay();
|
||||
var iconColor = BazookaManager.Instance.GetColorSettingIcon();
|
||||
var overlayColor = BazookaManager.Instance.GetColorSettingOverlay();
|
||||
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon);
|
||||
if (icon == 1) playerIcon.sprite = Tools.GetIconForUser(BazookaManager.Instance.GetAccountID() ?? 0);
|
||||
playerOverlay.sprite = Resources.Load<Sprite>("Icons/Overlays/overlay_" + overlay);
|
||||
if (overlay != 0) playerOverlay.gameObject.SetActive(true);
|
||||
if (overlay == 8) playerOverlay.rectTransform.localPosition = new Vector3(-27.6232f, 23.42824f, 0f);
|
||||
else if (overlay == 11) playerOverlay.rectTransform.localPosition = new Vector3(-24.5611f, 32.250931f, 0f);
|
||||
else if (overlay == 13) playerOverlay.rectTransform.localPosition = new Vector3(-27.56624f, 23.25544f, 0f);
|
||||
try {
|
||||
playerIcon.color = new Color(
|
||||
int.Parse(iconColor[0].ToString()) / 255f,
|
||||
int.Parse(iconColor[1].ToString()) / 255f,
|
||||
int.Parse(iconColor[2].ToString()) / 255f
|
||||
);
|
||||
playerOverlay.color = new Color(
|
||||
int.Parse(overlayColor[0].ToString()) / 255f,
|
||||
int.Parse(overlayColor[1].ToString()) / 255f,
|
||||
int.Parse(overlayColor[2].ToString()) / 255f
|
||||
);
|
||||
}
|
||||
catch {
|
||||
playerIcon.color = Color.white;
|
||||
playerOverlay.color = Color.white;
|
||||
}
|
||||
} else {
|
||||
var waitingForCustomIcon = playerIcon.gameObject.AddComponent<WaitingForCustomIcon>();
|
||||
waitingForCustomIcon.ID = customIcon;
|
||||
CustomIconLoader.Init(new[] { waitingForCustomIcon });
|
||||
}
|
||||
|
||||
var (_, level, currentXpInLevel, totalXpForLevel, percentDone) = Tools.GetLevelInfo();
|
||||
xpUsernameText.text = BazookaManager.Instance.GetAccountName() ?? "";
|
||||
xpText.text = $"{Tools.FormatWithCommas(currentXpInLevel.ToString())}/{Tools.FormatWithCommas(totalXpForLevel.ToString())} xp";
|
||||
xpLevelText.text = "Level " + Tools.FormatWithCommas(level.ToString());
|
||||
SetXPProgressFilled((int)percentDone);
|
||||
|
||||
Tools.RefreshHierarchy(panel);
|
||||
|
||||
exitButton.onClick.AddListener(() => Destroy(gameObject));
|
||||
}
|
||||
|
||||
void Update() {
|
||||
if (Keyboard.current.escapeKey.wasPressedThisFrame && exitButton.interactable) exitButton.onClick.Invoke();
|
||||
}
|
||||
|
||||
void SetXPProgressFilled(int progress) {
|
||||
int newProgress = Math.Clamp(progress, 0, 100);
|
||||
progressFilledRect.sizeDelta = new Vector2(newProgress * 3, progressFilledRect.sizeDelta.y);
|
||||
progressFilledRect.anchoredPosition = new Vector2((newProgress * 3 - 300f) * 0.5f, progressFilledRect.anchoredPosition.y);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 56e4845943127672f8cbd4e3137aa5ba
|
||||
Reference in new issue
Block a user