diff options
Diffstat (limited to 'Client/Assembly-CSharp/FindGameButton.cs')
-rw-r--r-- | Client/Assembly-CSharp/FindGameButton.cs | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/Client/Assembly-CSharp/FindGameButton.cs b/Client/Assembly-CSharp/FindGameButton.cs new file mode 100644 index 0000000..4b3eef9 --- /dev/null +++ b/Client/Assembly-CSharp/FindGameButton.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections; +using InnerNet; +using PowerTools; +using UnityEngine; +using UnityEngine.SceneManagement; + +public class FindGameButton : MonoBehaviour, IConnectButton +{ + public SpriteAnim connectIcon; + + public AnimationClip connectClip; + + public void OnClick() + { + if (NameTextBehaviour.Instance.ShakeIfInvalid()) + { + return; + } + if (StatsManager.Instance.AmBanned) + { + AmongUsClient.Instance.LastDisconnectReason = DisconnectReasons.IntentionalLeaving; + DestroyableSingleton<DisconnectPopup>.Instance.Show(); + return; + } + if (!DestroyableSingleton<MatchMaker>.Instance.Connecting(this)) + { + return; + } + AmongUsClient.Instance.GameMode = GameModes.OnlineGame; + AmongUsClient.Instance.MainMenuScene = "MMOnline"; + base.StartCoroutine(this.ConnectForFindGame()); + } + + private IEnumerator ConnectForFindGame() + { + AmongUsClient.Instance.SetEndpoint(DestroyableSingleton<ServerManager>.Instance.OnlineNetAddress, 22023); + AmongUsClient.Instance.OnlineScene = "OnlineGame"; + AmongUsClient.Instance.mode = MatchMakerModes.Client; + yield return AmongUsClient.Instance.CoConnect(); + if (AmongUsClient.Instance.LastDisconnectReason != DisconnectReasons.ExitGame) + { + DestroyableSingleton<MatchMaker>.Instance.NotConnecting(); + } + else + { + AmongUsClient.Instance.HostId = AmongUsClient.Instance.ClientId; + SceneManager.LoadScene("FindAGame"); + } + yield break; + } + + public void StartIcon() + { + this.connectIcon.Play(this.connectClip, 1f); + } + + public void StopIcon() + { + this.connectIcon.Stop(); + this.connectIcon.GetComponent<SpriteRenderer>().sprite = null; + } +} |