391 lines
15 KiB
C#
391 lines
15 KiB
C#
|
|
using System;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using TMPro;
|
|
|
|
public class ActionButton
|
|
{
|
|
public static void ButtonPressed(string buttonName)
|
|
{
|
|
AudioManager.Instance.playSound("button_press");
|
|
|
|
if (CharacterPool.ServerToClientIndex.ContainsKey(buttonName))
|
|
{
|
|
Debug.Log(buttonName); buttonName = $"Character_{CharacterPool.ServerToClientIndex[buttonName]}";
|
|
}
|
|
|
|
PacketManager.sendButtonClick(buttonName);
|
|
switch (buttonName)
|
|
{
|
|
case "flipButton_DiviFlipFountainScreen":
|
|
{
|
|
//get number from countInputField
|
|
int count = int.Parse(GameObject.Find("countInputField").GetComponent<TMP_InputField>().text);
|
|
//send command "/fountain"
|
|
PacketManager.sendChatMessage($"/fountain {count}");
|
|
}
|
|
break;
|
|
case "joinlobby_exit_button":
|
|
{
|
|
PacketManager.sendChatMessage("/lobby");
|
|
}
|
|
break;
|
|
case "loginButton_CreateAccount":
|
|
Application.OpenURL("http://siegeworlds.com/signup.php");
|
|
//UIManager.Instance.showInterface("CreateAccountCanvas");
|
|
Debug.Log("Create Account Button Pressed!");
|
|
//System.Diagnostics.Process.Start("https://www.siegeworlds.com/register/");
|
|
break;
|
|
case "LoginScreen_ToggleSound":
|
|
if (PlayerPrefs.GetInt("LoginMusic") == 1)
|
|
{
|
|
|
|
GameObject.Find("LoginScreen_ToggleSound").GetComponent<Image>().sprite = OnDemandLoader.Load<Sprite>("Sprites/musicOn");
|
|
PlayerPrefs.SetInt("LoginMusic", 0);
|
|
AudioManager.Instance.playSong("main_theme", true);
|
|
}
|
|
else
|
|
{
|
|
AudioManager.Instance.stopSong();
|
|
GameObject.Find("LoginScreen_ToggleSound").GetComponent<Image>().sprite = OnDemandLoader.Load<Sprite>("Sprites/musicOff");
|
|
PlayerPrefs.SetInt("LoginMusic", 1);
|
|
}
|
|
break;
|
|
|
|
case "loginButton_LoginScreen":
|
|
if (Input.GetKey(KeyCode.LeftControl))
|
|
{
|
|
loginActionButton(Config.LOCAL_HOST);
|
|
//TestServerLobbyText.Instance.SetWelcomeText("Welcome To \n Local Server!", false, false, true);
|
|
}
|
|
else if (Input.GetKey(KeyCode.LeftShift))
|
|
{
|
|
Debug.Log("Logging into test server.");
|
|
loginActionButton(Config.TEST_SERVER);
|
|
//TestServerLobbyText.Instance.SetWelcomeText("Welcome To \n Test Server!", false, true, false);
|
|
}
|
|
else
|
|
{
|
|
//Debug.Log($"IP is: {UIManager.Instance.ipInputData}");
|
|
loginActionButton(UIManager.Instance.ipInputData);
|
|
//TestServerLobbyText.Instance.SetWelcomeText("", true, false, false);
|
|
}
|
|
//if password or username has an "I" in it, it will toggle the chat input field.
|
|
//when logging in, set chat input field to false so you can open the inventory normally.
|
|
UIManager.Instance.ChatInputField.interactable = false;
|
|
break;
|
|
case "Set_IP_Button":
|
|
UIManager.Instance.SetIPInputData();
|
|
break;
|
|
case "Reset_IP_Button":
|
|
UIManager.Instance.ResetIPToDefault();
|
|
break;
|
|
case "DiscordButton":
|
|
Application.OpenURL("https://discord.gg/invite/siegeworlds");
|
|
break;
|
|
// ESCAPE MENU
|
|
case "ButtonOptions_EscapeMenu":
|
|
UIManager.Instance.hideInterface("EscapeMenu");
|
|
UIManager.Instance.showInterface("OptionsCanvas");
|
|
SettingsMenu.Instance.settingsIsActive = true;
|
|
break;
|
|
case "ButtonStats_EscapeMenu":
|
|
UIManager.Instance.hideInterface("EscapeMenu");
|
|
UIManager.Instance.showInterface("StatsCanvas");
|
|
break;
|
|
case "StatsButton_Return":
|
|
UIManager.Instance.hideInterface("StatsCanvas");
|
|
SettingsMenu.Instance.settingsIsActive = false;
|
|
Player.Instance.UpdatePlayerOnMenuClose();
|
|
break;
|
|
|
|
|
|
case "ButtonMyDiviAccount_EscapeMenu":
|
|
UIManager.Instance.hideInterface("EscapeMenu");
|
|
Application.OpenURL("https://siegeworlds.com/");
|
|
break;
|
|
case "ButtonLogout_EscapeMenu":
|
|
UIManager.Instance.hideInterface("EscapeMenu");
|
|
UIManager.Instance.hideInterface("PreGameCanvas");
|
|
UIManager.Instance.hideInterface("InstanceFinderCanvas");
|
|
|
|
UIManager.Instance.LoginMessage.text = "You have logged out.";
|
|
|
|
Player.Instance.CancelDeathCamera();
|
|
PacketManager.sendLogoutPacket();;
|
|
Player.Instance.updatePlayer = false;
|
|
Client.LocalPlayerLoggedIn = false;
|
|
|
|
GISocket.Instance.close();
|
|
break;
|
|
case "ButtonReturn_EscapeMenu":
|
|
UIManager.Instance.hideInterface("EscapeMenu");
|
|
if (!UIManager.Instance.IsGameLobbyCanvasesActive())
|
|
{
|
|
Player.Instance.UpdatePlayerOnMenuClose();
|
|
}
|
|
break;
|
|
case "ButtonWallet_EscapeMenu":
|
|
UIManager.Instance.hideInterface("EscapeMenu");
|
|
UIManager.Instance.showInterface("CryptoWallet");
|
|
SettingsMenu.Instance.settingsIsActive = true;
|
|
break;
|
|
|
|
|
|
// GRAPHIC SETTINGS
|
|
case "Graphics_ButtonCloseSettings":
|
|
UIManager.Instance.hideInterface("OptionsCanvas");
|
|
Player.Instance.UpdatePlayerOnMenuClose();
|
|
break;
|
|
case "Graphics_ButtonSaveReturn":
|
|
UIManager.Instance.hideInterface("OptionsCanvas");
|
|
SettingsMenu.Instance.SaveGraphicSettings();
|
|
SettingsMenu.Instance.settingsIsActive = false;
|
|
Player.Instance.UpdatePlayerOnMenuClose();
|
|
break;
|
|
case "Graphics_ButtonResetPrefs":
|
|
SettingsMenu.Instance.ResetGraphicSettings();
|
|
UIManager.Instance.hideInterface("OptionsCanvas");
|
|
SettingsMenu.Instance.settingsIsActive = false;
|
|
Player.Instance.UpdatePlayerOnMenuClose();
|
|
break;
|
|
|
|
//AUDIO SETTINGS
|
|
case "Audio_ButtonCloseSettings":
|
|
UIManager.Instance.hideInterface("OptionsCanvas");
|
|
Player.Instance.UpdatePlayerOnMenuClose();
|
|
break;
|
|
case "Audio_ButtonSaveReturn":
|
|
UIManager.Instance.hideInterface("OptionsCanvas");
|
|
SettingsMenu.Instance.SaveAudioSettings();
|
|
SettingsMenu.Instance.settingsIsActive = false;
|
|
Player.Instance.UpdatePlayerOnMenuClose();
|
|
break;
|
|
case "Audio_ButtonResetPrefs":
|
|
SettingsMenu.Instance.ResetAudioSettings();
|
|
UIManager.Instance.hideInterface("OptionsCanvas");
|
|
SettingsMenu.Instance.settingsIsActive = false;
|
|
Player.Instance.UpdatePlayerOnMenuClose();
|
|
break;
|
|
|
|
//GAMEPLAY MENU
|
|
case "Gameplay_ButtonSaveReturn":
|
|
UIManager.Instance.hideInterface("OptionsCanvas");
|
|
SettingsMenu.Instance.SaveGameplaySettings();
|
|
SettingsMenu.Instance.settingsIsActive = false;
|
|
Player.Instance.UpdatePlayerOnMenuClose();
|
|
break;
|
|
case "Gameplay_ButtonResetPrefs":
|
|
SettingsMenu.Instance.ResetGameplaySettings();
|
|
UIManager.Instance.hideInterface("OptionsCanvas");
|
|
SettingsMenu.Instance.settingsIsActive = false;
|
|
Player.Instance.UpdatePlayerOnMenuClose();
|
|
break;
|
|
|
|
//CONTROLS MENU
|
|
case "Controls_Save":
|
|
UIManager.Instance.hideInterface("OptionsCanvas");
|
|
SettingsMenu.Instance.settingsIsActive = false;
|
|
Player.Instance.UpdatePlayerOnMenuClose();
|
|
break;
|
|
|
|
//Crypto Wallet Menu
|
|
case "CryptoWallet_Return_Button":
|
|
UIManager.Instance.hideInterface("CryptoWallet");
|
|
SettingsMenu.Instance.settingsIsActive = false;
|
|
Player.Instance.UpdatePlayerOnMenuClose();
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
//VictoryOrDefeat Canvas
|
|
case "Victory_EndInstance":
|
|
Player.Instance.UpdatePlayerOnMenuClose();
|
|
break;
|
|
|
|
//Exit Game Canvas
|
|
case "ExitGame_No":
|
|
UIManager.Instance.hideInterface("ExitGameCanvas");
|
|
break;
|
|
case "ExitGame_Yes":
|
|
Debug.Log("QUITTING APPLICATION!");
|
|
Application.Quit();
|
|
break;
|
|
|
|
//Create Account Canvas
|
|
case "CA_RegisterButton":
|
|
Debug.Log("Register Button pressed!");
|
|
break;
|
|
case "CA_BackButton":
|
|
UIManager.Instance.hideInterface("CreateAccountCanvas");
|
|
break;
|
|
|
|
//Bank Vault Close
|
|
case "BankVault_ExitVault_Button":
|
|
UIManager.Instance.ResetDefaultCanvasesOnVaultClose();
|
|
break;
|
|
|
|
//instance finder canvas
|
|
case "Join_Room_Solo_Button":
|
|
UIManager.Instance.GameInstanceType = GameInstanceType.Base;
|
|
UIManager.Instance.OnGameInstancePress?.Invoke();
|
|
Player.Instance.InSoloInstance = true;
|
|
break;
|
|
|
|
case "Join_Room_Solo_Button_2":
|
|
UIManager.Instance.GameInstanceType = GameInstanceType.Zombie;
|
|
UIManager.Instance.OnGameInstancePress?.Invoke();
|
|
break;
|
|
case "Join_Room_Solo_Button_3":
|
|
UIManager.Instance.GameInstanceType = GameInstanceType.Waves;
|
|
UIManager.Instance.OnGameInstancePress?.Invoke();
|
|
break;
|
|
|
|
case "Join_Room_Solo_Button_Fumarole":
|
|
UIManager.Instance.GameInstanceType = GameInstanceType.Fumarole;
|
|
UIManager.Instance.OnGameInstancePress?.Invoke();
|
|
Player.Instance.InSoloInstance = true;
|
|
break;
|
|
case "CreateRoom_Duo":
|
|
UIManager.Instance.GameInstanceType = GameInstanceType.Duo;
|
|
UIManager.Instance.OnGameInstancePress?.Invoke();
|
|
break;
|
|
|
|
case "CreateRoom_Squad":
|
|
UIManager.Instance.GameInstanceType = GameInstanceType.Squad;
|
|
UIManager.Instance.OnGameInstancePress?.Invoke();
|
|
break;
|
|
|
|
case "Exchange_ExitButton":
|
|
|
|
break;
|
|
|
|
case "Game_Store":
|
|
{
|
|
PacketManager.sendChatMessage("/gamestore");
|
|
}
|
|
break;
|
|
|
|
//tutorial
|
|
case "Tutorial_StartPlaying":
|
|
UIManager.Instance.hideInterface("TutorialCanvas");
|
|
Player.Instance.UpdatePlayerOnMenuClose();
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
public static void SliderValueChanged(Slider s)
|
|
{
|
|
switch (s.gameObject.name)
|
|
{
|
|
case "Sensitivity_Slider":
|
|
SettingsMenu.Instance.SetSensitivity(s.value);
|
|
break;
|
|
case "Music_Slider":
|
|
SettingsMenu.Instance.SetMusicVolume(s.value);
|
|
break;
|
|
case "SFX_Slider":
|
|
SettingsMenu.Instance.SetSFXVolume(s.value);
|
|
break;
|
|
case "VoiceChatVolumeSlider":
|
|
SettingsMenu.Instance.SetVoiceVolume(s.value);
|
|
break;
|
|
}
|
|
}
|
|
|
|
public static void ToggleValueChanged(Toggle t)
|
|
{
|
|
switch (t.gameObject.name)
|
|
{
|
|
//aimAssist toggle
|
|
case "AimAssistToggle":
|
|
SettingsMenu.Instance.ToggleAimAssist = t.isOn;
|
|
break;
|
|
case "FPSToggle":
|
|
SettingsMenu.Instance.ToggleFPSCounter = t.isOn;
|
|
break;
|
|
case "PostProcessingToggle":
|
|
SettingsMenu.Instance.TogglePostProcessing = t.isOn;
|
|
break;
|
|
|
|
case "InvertYToggle":
|
|
SettingsMenu.Instance.ToggleInvertY = t.isOn;
|
|
break;
|
|
case "RawInputToggle":
|
|
SettingsMenu.Instance.ToggleRawInput = t.isOn;
|
|
break;
|
|
case "SprintToggle":
|
|
SettingsMenu.Instance.ToggleSprintInput = t.isOn;
|
|
break;
|
|
case "ADSToggle":
|
|
SettingsMenu.Instance.ToggleADS = t.isOn;
|
|
break;
|
|
|
|
}
|
|
}
|
|
|
|
public static void DropdownValueChanged(TMP_Dropdown d)
|
|
{
|
|
switch (d.gameObject.name)
|
|
{
|
|
//graphics settings
|
|
case "Resolution_Dropdown":
|
|
SettingsMenu.Instance.SetResolution(d.value);
|
|
break;
|
|
case "Quality_Dropdown":
|
|
SettingsMenu.Instance.SetQuality(d.value);
|
|
break;
|
|
case "FPS_Dropdown":
|
|
SettingsMenu.Instance.SetFPS(d.value);
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void loginActionButton(string serverIP)
|
|
{
|
|
TextMeshProUGUI loginMessage = GameObject.Find("loginMessage").GetComponent<TextMeshProUGUI>();
|
|
|
|
//trim the inputs to remove ending whitespaces.
|
|
string usernameInput = UIManager.Instance.UserNameInputField.text.Trim();
|
|
string passwordInput = UIManager.Instance.PasswordInputField.text.Trim();
|
|
Client.Instance.myUsername = usernameInput;
|
|
Client.Instance.myPassword = passwordInput;
|
|
Client.Instance.myServerIp = serverIP.Trim();
|
|
|
|
// if radio field checked to remember username, save it to preferences
|
|
if (GameObject.Find("ToggleRememberUsername_LoginScreen").GetComponent<Toggle>().isOn == true)
|
|
{
|
|
PlayerPreferences.WriteRememberLoginDetails(1);
|
|
PlayerPreferences.WriteUsername(usernameInput);
|
|
PlayerPreferences.WritePassword(passwordInput);
|
|
}
|
|
else
|
|
{
|
|
PlayerPreferences.WriteUsername("");
|
|
PlayerPreferences.WritePassword("");
|
|
PlayerPreferences.WriteRememberLoginDetails(0);
|
|
}
|
|
|
|
if (usernameInput == "" || passwordInput == "")
|
|
{
|
|
|
|
loginMessage.text = "Enter a username and password.";
|
|
return;
|
|
}
|
|
|
|
GISocket.Instance.connect(serverIP);
|
|
PacketManager.sendLoginRequest(usernameInput, passwordInput);
|
|
//Client.Instance.pushOutStreamCR();
|
|
|
|
loginMessage.text = "Connecting to server...";
|
|
}
|
|
|
|
}
|