DRHPS/code-csharp/en_US/NewMainMenuManager.cs
2025-04-08 11:31:35 +08:00

117 lines
3.3 KiB
C#

using UnityEngine;
public class NewMainMenuManager : MonoBehaviour
{
public enum MainMenuStates
{
None = 0,
Title = 1,
Console = 2,
Hypothetical = 3,
Logs = 4,
Credits = 5,
Extras = 6
}
public static NewMainMenuManager instance;
[SerializeField]
private GameObject FogCylinder;
[SerializeField]
private Light globalLight;
public Animator CameraAnimator;
public AudioSource MenuSource;
public AudioClip SFX_MenuSelect;
public AudioClip SFX_MenuMove;
public AudioClip SFX_MenuDeny;
public AudioClip SFX_MenuClick;
public AudioClip SFX_ComputerBootOff;
[SerializeField]
private GameObject TitleMenu;
[SerializeField]
private GameObject ConsoleMenu;
[SerializeField]
private GameObject HypotheticalMenu;
[SerializeField]
private GameObject LogMenu;
[SerializeField]
private GameObject CreditMenu;
[SerializeField]
private GameObject ExtraMenu;
private void Awake()
{
instance = this;
}
private void Start()
{
if (SettingsManager.Instance.GetBoolSettingValue("SimpleVFX"))
{
Object.Destroy(FogCylinder);
globalLight.shadows = LightShadows.None;
}
UI_LoadingIcon.ToggleLoadingIcon(showIcon: false);
GonerMenu.CurrentActiveHypothesis = null;
GonerMenu.RecoveringFromGameOver = false;
LightworldMenu.Instance.CanOpenMenu = false;
DarkworldMenu.Instance.CanOpenMenu = false;
PartyMemberSystem.Instance.RemoveAllPartyMember();
PlayerPrefs.SetInt("TimesPlayed", PlayerPrefs.GetInt("TimesPlayed", 0) + 1);
}
private void Update()
{
LightworldMenu.Instance.CanOpenMenu = false;
DarkworldMenu.Instance.CanOpenMenu = false;
}
public void SetMainMenuState(MainMenuStates state)
{
switch (state)
{
case MainMenuStates.Console:
TitleMenu.SetActive(value: false);
ConsoleMenu.SetActive(value: true);
CameraAnimator.Play("MainMenu_Camera_MonitorIdle");
break;
case MainMenuStates.Hypothetical:
TitleMenu.SetActive(value: false);
HypotheticalMenu.SetActive(value: true);
CameraAnimator.Play("MainMenu_Camera_MonitorZoomIn", 0, 1f);
break;
case MainMenuStates.Logs:
TitleMenu.SetActive(value: false);
HypotheticalMenu.SetActive(value: true);
CameraAnimator.Play("MainMenu_Camera_MonitorZoomIn", 0, 1f);
break;
case MainMenuStates.Credits:
TitleMenu.SetActive(value: false);
HypotheticalMenu.SetActive(value: true);
CameraAnimator.Play("MainMenu_Camera_MonitorZoomIn", 0, 1f);
break;
case MainMenuStates.Extras:
TitleMenu.SetActive(value: false);
HypotheticalMenu.SetActive(value: true);
CameraAnimator.Play("MainMenu_Camera_MonitorZoomIn", 0, 1f);
break;
case MainMenuStates.Title:
break;
}
}
}