Files
source/Assets/Scripts/LoadingMenu.cs

116 lines
3.9 KiB
C#

using System;
using TMPro;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class LoadingMenu : MonoBehaviour
{
public TMP_Text text;
public Button updateButton;
public Button continueButton;
void Awake()
{
if (PlayerPrefs.GetString("latestVersion", Application.version) == "1.4.0-beta1")
{
PlayerPrefs.DeleteKey("Setting2");
PlayerPrefs.DeleteKey("Setting3");
PlayerPrefs.SetInt("Setting2", PlayerPrefs.GetInt("Setting4", 0));
PlayerPrefs.SetInt("Setting3", PlayerPrefs.GetInt("Setting5", 0));
PlayerPrefs.SetString("latestVersion", "1.4.0");
}
if (PlayerPrefs.HasKey("HighScore"))
{
PlayerPrefs.SetString("HighScoreV2", Math.Max(PlayerPrefs.GetInt("HighScore"), 0).ToString());
PlayerPrefs.DeleteKey("HighScore");
}
QualitySettings.vSyncCount = PlayerPrefs.GetInt("Setting3", 1) == 1 ? 1 : -1;
if (!Application.isMobilePlatform && Application.platform != RuntimePlatform.WebGLPlayer)
{
SetIfNone("Setting1", 1);
SetIfNone("Setting2", 0);
SetIfNone("Setting3", 1);
SetIfNone("Setting4", 0);
Screen.fullScreen = PlayerPrefs.GetInt("Setting1", 1) == 1;
}
else
{
SetIfNone("Setting1", 1, true);
SetIfNone("Setting2", 0);
SetIfNone("Setting3", 1, true);
SetIfNone("Setting4", 0);
Application.targetFrameRate = 360;
QualitySettings.vSyncCount = 0;
if (Application.platform == RuntimePlatform.WebGLPlayer) {
Screen.fullScreen = false;
}
}
PlayerPrefs.SetString("latestVersion", Application.version);
updateButton.onClick.AddListener(() =>
{
Application.OpenURL("https://berrydash.lncvrt.xyz/download");
});
continueButton.onClick.AddListener(async () =>
{
await SceneManager.LoadSceneAsync("MainMenu");
});
}
void Start()
{
CheckUpdate();
}
async void CheckUpdate()
{
string response;
if (Application.platform != RuntimePlatform.WebGLPlayer)
{
using UnityWebRequest request = UnityWebRequest.Get(SensitiveInfo.SERVER_DATABASE_PREFIX + "canLoadClient.php");
request.SetRequestHeader("Requester", "BerryDashClient");
request.SetRequestHeader("ClientVersion", Application.version);
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
await request.SendWebRequest();
if (request.result != UnityWebRequest.Result.Success)
{
text.text = "Failed to check version";
return;
}
response = request.downloadHandler.text;
}
else
{
response = "1";
}
if (response == "1")
{
await SceneManager.LoadSceneAsync("MainMenu");
}
else if (response == "2")
{
text.text = "Outdated client! You can still load into the game, but online features may not be available.";
var updateButtonPos = updateButton.transform.localPosition;
updateButtonPos.x = -135;
updateButton.transform.localPosition = updateButtonPos;
updateButton.gameObject.SetActive(true);
continueButton.gameObject.SetActive(true);
}
else
{
text.text = "Outdated client! Please update your client to play";
updateButton.gameObject.SetActive(true);
}
}
void SetIfNone(string key, int value, bool overrideValue = false)
{
if (!PlayerPrefs.HasKey(key) || overrideValue)
{
PlayerPrefs.SetInt(key, value);
}
}
}