Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using UnityEngine.UI;
- using System.Collections;
- public class MainMenu : MonoBehaviour
- {
- #region UI
- private GameObject m_MenuEffects;
- //Screens
- private GameObject m_MenuScreen;
- private GameObject m_LoginScreen;
- private GameObject m_GameScreen;
- private GameObject m_HostServerScreen;
- private GameObject m_ServerStartedScreen;
- private GameObject m_NormalGameScreen;
- //Buttons
- private Button m_LoginButton;
- //Dialogs
- private GameObject m_ExitDialog;
- private GameObject m_BannedDialog;
- private GameObject m_RenewDialog;
- private GameObject m_OptionsDialog;
- //Option Overlays
- private GameObject m_GraphicOptionsOverlay;
- //Details
- private Text m_LoginDetails;
- private Text m_ConnectionDetails;
- private Text m_HostDetails;
- #endregion
- public enum MenuScreenStatus
- {
- LoginScreen,
- GameScreen,
- HostServerScreen,
- ServerStartedScreen,
- NormalGameScreen
- }
- public enum DialogScreenStatus
- {
- }
- #region Database Connection Details
- private string m_Url = "http://46.105.118.169/~uklifega/jksadj1328.php";
- private InputField m_Username;
- private InputField m_Password;
- private enum LoginStatus
- {
- UsernamePasswordNull,
- UserBanned,
- UserInactive,
- IncorrectUsernamePassword,
- UserMember,
- UserServerOwner
- }
- private enum LoginConnectionStatus
- {
- AttemptLogin,
- WaitingForResponse,
- ResponseRecieved,
- CheckingUsernamePassword
- }
- //private LoginStatus m_LoginStatus;
- #endregion
- private bool m_Server = false;
- private void Awake()
- {
- m_MenuEffects = GameObject.Find("MenuEffects");
- //Assign all Screen Variables
- m_MenuScreen = GameObject.Find("Menu_Screen"); m_LoginScreen = GameObject.Find("Login_Screen"); m_GameScreen = GameObject.Find("Game_Screen");
- m_HostServerScreen = GameObject.Find("HostServer_Screen"); m_ServerStartedScreen = GameObject.Find("ServerStarted_Screen");
- m_NormalGameScreen = GameObject.Find("NormalGame_Screen");
- //Assign all Button Variables
- m_LoginButton = GameObject.Find("Login_Button").GetComponent<Button>();
- //Assign all Dialog Variables
- m_ExitDialog = GameObject.Find("Exit_Dialog"); m_BannedDialog = GameObject.Find("Banned_Dialog"); m_RenewDialog = GameObject.Find("Renew_Dialog");
- m_OptionsDialog = GameObject.Find("Options_Dialog");
- //Assign all Overlay Variables
- m_GraphicOptionsOverlay = GameObject.Find("GraphicOptions_Overlay");
- //Assign all Details Variables
- m_ConnectionDetails = GameObject.Find("Connection_Details").GetComponent<Text>(); m_HostDetails = GameObject.Find("Host_Details").GetComponent<Text>();
- m_LoginDetails = GameObject.Find("Login_Details").GetComponent<Text>();
- //Assign Username and Password Input Field
- m_Username = GameObject.Find("Username_Input").GetComponent<InputField>(); m_Password = GameObject.Find("Password_Input").GetComponent<InputField>();
- //Disable all that arnt needed
- m_GameScreen.SetActive(false); m_HostServerScreen.SetActive(false); m_ServerStartedScreen.SetActive(false); m_NormalGameScreen.SetActive(false);
- m_ExitDialog.SetActive(false); m_BannedDialog.SetActive(false); m_RenewDialog.SetActive(false); m_OptionsDialog.SetActive(false);
- m_GraphicOptionsOverlay.SetActive(false);
- }
- #region Switch Statements
- private void LoginStatusDetailed(LoginStatus loginStatus)
- {
- switch (loginStatus)
- {
- case LoginStatus.IncorrectUsernamePassword://Incorrect Username or Password
- DisplayLoginStatus("Incorrect Username/Password");
- m_LoginButton.interactable = true;
- break;
- case LoginStatus.UserBanned://Banned
- DisplayLoginStatus("Account Banned");
- m_LoginButton.interactable = true;
- break;
- case LoginStatus.UserInactive://Inactive Membership
- DisplayLoginStatus("Inactive Account");
- m_LoginButton.interactable = true;
- break;
- case LoginStatus.UserMember://Active Membership
- DisplayLoginStatus("Logged In");
- m_LoginButton.interactable = true;
- break;
- case LoginStatus.UsernamePasswordNull://Username or Password is Null
- DisplayLoginStatus("Username/Password Field is Empty");
- m_LoginButton.interactable = true;
- break;
- case LoginStatus.UserServerOwner://Can Host a Server
- DisplayLoginStatus("Server Account");
- m_LoginButton.interactable = true;
- break;
- }
- }
- private void LoginConnectionState(LoginConnectionStatus loginConnectionStatus)
- {
- switch(loginConnectionStatus)
- {
- case LoginConnectionStatus.AttemptLogin:
- DisplayLoginStatus("Attempting to Login");
- break;
- case LoginConnectionStatus.CheckingUsernamePassword:
- DisplayLoginStatus("Checking Username and Password");
- break;
- case LoginConnectionStatus.ResponseRecieved:
- DisplayLoginStatus("Response Recieved");
- break;
- case LoginConnectionStatus.WaitingForResponse:
- DisplayLoginStatus("Waiting for Response");
- break;
- }
- }
- private void CheckCredentials(string text)
- {
- switch (text)
- {
- case "null":
- LoginStatusDetailed(LoginStatus.UsernamePasswordNull);
- break;
- case "banned":
- LoginStatusDetailed(LoginStatus.UserBanned);
- break;
- case "server":
- m_Server = true;
- MenuSwap("ServerMenu");
- LoginStatusDetailed(LoginStatus.UserServerOwner);
- break;
- case "member":
- m_Server = false;
- MenuSwap("GameMenu");
- LoginStatusDetailed(LoginStatus.UserMember);
- break;
- case "inactive":
- LoginStatusDetailed(LoginStatus.UserInactive);
- break;
- case "unsuccess":
- LoginStatusDetailed(LoginStatus.IncorrectUsernamePassword);
- break;
- }
- }
- #endregion
- private void DisplayLoginStatus(string message)
- {
- m_LoginDetails.text = message;
- }
- #region ButtonPress
- public void MenuSwap(string buttonType)
- {
- switch(buttonType)
- {
- case "Menu":
- ShowMenu(MenuScreenStatus.LoginScreen);
- break;
- case "Login":
- //Attempt to Login
- StartCoroutine(AttemptLogin());
- break;
- case "ServerMenu":
- ShowMenu(MenuScreenStatus.HostServerScreen);
- //PhotonNetwork.ConnectUsingSettings("0.01");
- break;
- case "GameMenu":
- ShowMenu(MenuScreenStatus.NormalGameScreen);
- //PhotonNetwork.ConnectUsingSettings("0.01");
- break;
- }
- }
- public void DialogSwap(string Function)
- {
- switch(Function)
- {
- case "Exit":
- //Open the Exit Dialog
- m_ExitDialog.SetActive(true);
- break;
- case "Options":
- //Open the Options Dialog
- m_OptionsDialog.SetActive(true);
- m_GraphicOptionsOverlay.SetActive(true);
- break;
- case "Credits":
- //Open the Credits Dialog
- //None-existant
- break;
- }
- }
- public void ShowMenu(MenuScreenStatus menuScreenStatus)
- {
- switch (menuScreenStatus)
- {
- case MenuScreenStatus.GameScreen:
- ShowGameMenu();
- break;
- case MenuScreenStatus.HostServerScreen:
- ShowServerMenu();
- break;
- case MenuScreenStatus.LoginScreen:
- ShowLoginMenu();
- break;
- case MenuScreenStatus.NormalGameScreen:
- ShowNormalGameMenu();
- break;
- case MenuScreenStatus.ServerStartedScreen:
- ShowServerStartedMenu();
- break;
- }
- }
- #endregion
- #region ShowMenus
- private void ShowLoginMenu()
- {
- m_LoginScreen.SetActive(true);
- m_HostServerScreen.SetActive(false);
- m_GameScreen.SetActive(false);
- m_NormalGameScreen.SetActive(false);
- m_ServerStartedScreen.SetActive(false);
- m_ExitDialog.SetActive(false);
- m_BannedDialog.SetActive(false);
- m_RenewDialog.SetActive(false);
- m_OptionsDialog.SetActive(false);
- }
- private void ShowServerMenu()
- {
- m_LoginScreen.SetActive(false);
- m_HostServerScreen.SetActive(true);
- m_GameScreen.SetActive(false);
- m_NormalGameScreen.SetActive(false);
- m_ServerStartedScreen.SetActive(false);
- m_ExitDialog.SetActive(false);
- m_BannedDialog.SetActive(false);
- m_RenewDialog.SetActive(false);
- m_OptionsDialog.SetActive(false);
- }
- private void ShowGameMenu()
- {
- m_LoginScreen.SetActive(false);
- m_HostServerScreen.SetActive(false);
- m_GameScreen.SetActive(true);
- m_NormalGameScreen.SetActive(false);
- m_ServerStartedScreen.SetActive(false);
- m_ExitDialog.SetActive(false);
- m_BannedDialog.SetActive(false);
- m_RenewDialog.SetActive(false);
- m_OptionsDialog.SetActive(false);
- }
- private void ShowNormalGameMenu()
- {
- m_LoginScreen.SetActive(false);
- m_HostServerScreen.SetActive(false);
- m_GameScreen.SetActive(false);
- m_NormalGameScreen.SetActive(true);
- m_ServerStartedScreen.SetActive(false);
- m_ExitDialog.SetActive(false);
- m_BannedDialog.SetActive(false);
- m_RenewDialog.SetActive(false);
- m_OptionsDialog.SetActive(false);
- }
- private void ShowServerStartedMenu()
- {
- m_LoginScreen.SetActive(false);
- m_HostServerScreen.SetActive(false);
- m_GameScreen.SetActive(false);
- m_NormalGameScreen.SetActive(false);
- m_ServerStartedScreen.SetActive(true);
- m_ExitDialog.SetActive(false);
- m_BannedDialog.SetActive(false);
- m_RenewDialog.SetActive(false);
- m_OptionsDialog.SetActive(false);
- }
- #endregion
- #region DialogMenus
- private void ExitDialog()
- {
- m_ExitDialog.SetActive(true);
- m_BannedDialog.SetActive(false);
- m_RenewDialog.SetActive(false);
- m_OptionsDialog.SetActive(false);
- }
- private void BannedDialog()
- {
- m_ExitDialog.SetActive(false);
- m_BannedDialog.SetActive(true);
- m_RenewDialog.SetActive(false);
- m_OptionsDialog.SetActive(false);
- }
- private void RenewDialog()
- {
- m_ExitDialog.SetActive(false);
- m_BannedDialog.SetActive(false);
- m_RenewDialog.SetActive(true);
- m_OptionsDialog.SetActive(false);
- }
- private void OptionsDialog()
- {
- m_ExitDialog.SetActive(false);
- m_BannedDialog.SetActive(false);
- m_RenewDialog.SetActive(false);
- m_OptionsDialog.SetActive(true);
- }
- private void CloseDialog()
- {
- m_ExitDialog.SetActive(false);
- m_BannedDialog.SetActive(false);
- m_RenewDialog.SetActive(false);
- m_OptionsDialog.SetActive(false);
- }
- #endregion
- #region ConnectToDatabase
- private IEnumerator AttemptLogin()
- {
- m_LoginButton.interactable = false;
- LoginConnectionState(LoginConnectionStatus.AttemptLogin);
- yield return new WaitForSeconds(.5f);
- WWWForm form = new WWWForm();
- form.AddField("name", m_Username.text);
- form.AddField("password", m_Password.text);
- WWW url = new WWW(m_Url, form);
- LoginConnectionState(LoginConnectionStatus.WaitingForResponse);
- yield return new WaitForSeconds(.5f);
- yield return url;
- if (url.error == null)
- {//No errors
- LoginConnectionState(LoginConnectionStatus.ResponseRecieved);
- yield return new WaitForSeconds(.5f);
- CheckCredentials(url.text);
- }
- else
- {//Error
- DisplayLoginStatus(url.error);
- }
- }
- string ConnectionState()
- {/*
- switch (PhotonNetwork.connectionStateDetailed)
- {
- case PeerState.Authenticated:
- return "Authenticated";
- case PeerState.Authenticating:
- return "Authenticating";
- case PeerState.ConnectedToGameserver:
- return "Connected To Gameserver";
- case PeerState.ConnectedToMaster:
- return "Connected To Masterserver";
- case PeerState.ConnectedToNameServer:
- return "Connected To Nameserver";
- case PeerState.ConnectingToGameserver:
- return "Connecting To Gameserver";
- case PeerState.ConnectingToMasterserver:
- return "Connecting To Masterserver";
- case PeerState.ConnectingToNameServer:
- return "Connecting To NameServer";
- case PeerState.Disconnected:
- return "Disconnected";
- case PeerState.Disconnecting:
- return "Disconnecting";
- case PeerState.DisconnectingFromGameserver:
- return "Disconnecting From Gameserver";
- case PeerState.DisconnectingFromMasterserver:
- return "Disconnecting From Masterserver";
- case PeerState.DisconnectingFromNameServer:
- return "Disconnecting From NameServer";
- case PeerState.Joined:
- return "Joined";
- case PeerState.JoinedLobby:
- return "Joined Lobby";
- case PeerState.Joining:
- return "Joining";
- case PeerState.Leaving:
- return "Leaving";
- case PeerState.PeerCreated:
- return "Peer Created";
- case PeerState.Queued:
- return "Queued";
- case PeerState.QueuedComingFromGameserver:
- return "Queued Coming From Gameserver";
- case PeerState.Uninitialized:
- return "Uninitialized";
- }*/
- return null;
- }
- void Update()
- {
- // if (PhotonNetwork.connectionStateDetailed == PeerState.PeerCreated)
- // m_ConnectionDetails.text = "";
- // else
- // m_ConnectionDetails.text = "Connection Status: " + ConnectionState();
- }
- #endregion
- }
Add Comment
Please, Sign In to add comment