diff options
author | chai <chaifix@163.com> | 2020-12-30 20:59:04 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2020-12-30 20:59:04 +0800 |
commit | e9ea621b93fbb58d9edfca8375918791637bbd52 (patch) | |
tree | 19ce3b1c1f2d51eda6878c9d0f2c9edc27f13650 /Client/Assembly-CSharp/CreateGameOptions.cs |
+init
Diffstat (limited to 'Client/Assembly-CSharp/CreateGameOptions.cs')
-rw-r--r-- | Client/Assembly-CSharp/CreateGameOptions.cs | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/Client/Assembly-CSharp/CreateGameOptions.cs b/Client/Assembly-CSharp/CreateGameOptions.cs new file mode 100644 index 0000000..23251d4 --- /dev/null +++ b/Client/Assembly-CSharp/CreateGameOptions.cs @@ -0,0 +1,104 @@ +using System; +using System.Collections; +using InnerNet; +using PowerTools; +using UnityEngine; + +public class CreateGameOptions : MonoBehaviour, IConnectButton +{ + public AudioClip IntroMusic; + + public GameObject Content; + + public SpriteRenderer Foreground; + + public SpriteAnim connectIcon; + + public AnimationClip connectClip; + + public void Show() + { + if (NameTextBehaviour.Instance.ShakeIfInvalid()) + { + return; + } + if (StatsManager.Instance.AmBanned) + { + AmongUsClient.Instance.LastDisconnectReason = DisconnectReasons.IntentionalLeaving; + DestroyableSingleton<DisconnectPopup>.Instance.Show(); + return; + } + base.gameObject.SetActive(true); + this.Content.SetActive(false); + base.StartCoroutine(this.CoShow()); + } + + private IEnumerator CoShow() + { + yield return Effects.ColorFade(this.Foreground, Color.clear, Color.black, 0.1f); + this.Content.SetActive(true); + yield return Effects.ColorFade(this.Foreground, Color.black, Color.clear, 0.1f); + yield break; + } + + public void StartIcon() + { + if (!this.connectIcon) + { + return; + } + this.connectIcon.Play(this.connectClip, 1f); + } + + public void StopIcon() + { + if (!this.connectIcon) + { + return; + } + this.connectIcon.Stop(); + this.connectIcon.GetComponent<SpriteRenderer>().sprite = null; + } + + public void Hide() + { + base.StartCoroutine(this.CoHide()); + } + + private IEnumerator CoHide() + { + yield return Effects.ColorFade(this.Foreground, Color.clear, Color.black, 0.1f); + this.Content.SetActive(false); + yield return Effects.ColorFade(this.Foreground, Color.black, Color.clear, 0.1f); + base.gameObject.SetActive(false); + yield break; + } + + public void Confirm() + { + if (!DestroyableSingleton<MatchMaker>.Instance.Connecting(this)) + { + return; + } + base.StartCoroutine(this.CoStartGame()); + } + + private IEnumerator CoStartGame() + { + SoundManager.Instance.CrossFadeSound("MainBG", null, 0.5f, 1.5f); + yield return Effects.ColorFade(this.Foreground, Color.clear, Color.black, 0.2f); + AmongUsClient.Instance.GameMode = GameModes.OnlineGame; + AmongUsClient.Instance.SetEndpoint(DestroyableSingleton<ServerManager>.Instance.OnlineNetAddress, 22023); + AmongUsClient.Instance.MainMenuScene = "MMOnline"; + AmongUsClient.Instance.OnlineScene = "OnlineGame"; + AmongUsClient.Instance.Connect(MatchMakerModes.HostAndClient); + yield return AmongUsClient.Instance.WaitForConnectionOrFail(); + DestroyableSingleton<MatchMaker>.Instance.NotConnecting(); + if (AmongUsClient.Instance.mode == MatchMakerModes.None) + { + SoundManager.Instance.CrossFadeSound("MainBG", this.IntroMusic, 0.5f, 1.5f); + yield return Effects.ColorFade(this.Foreground, Color.black, Color.clear, 0.2f); + } + yield break; + } +} |