summaryrefslogtreecommitdiff
path: root/Client/Assembly-CSharp/CreateGameOptions.cs
blob: 23251d4f16110230c6a41a15b17cd97b52728500 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
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;
	}
}