summaryrefslogtreecommitdiff
path: root/Client/Assembly-CSharp/CreateGameOptions.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2020-12-30 20:59:04 +0800
committerchai <chaifix@163.com>2020-12-30 20:59:04 +0800
commite9ea621b93fbb58d9edfca8375918791637bbd52 (patch)
tree19ce3b1c1f2d51eda6878c9d0f2c9edc27f13650 /Client/Assembly-CSharp/CreateGameOptions.cs
+init
Diffstat (limited to 'Client/Assembly-CSharp/CreateGameOptions.cs')
-rw-r--r--Client/Assembly-CSharp/CreateGameOptions.cs104
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;
+ }
+}