Jamie Greunbaum 1f921988ef - Foghorn and Crook In Jail animations implemented
- GameManager initialisation now also enables interactions no matter what
- Markers are no longer unnecessarily deactivated at the end of a round
- Markers have better physics when dropped and disabled
- Attempted to add fallback support to video players
2025-08-23 23:02:39 -04:00

252 lines
6.0 KiB
C#

using TMPro;
using UdonSharp;
using UnityEngine;
using UnityEngine.UI;
using VRC.SDK3.UdonNetworkCalling;
using VRC.Udon.Common.Interfaces;
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
public class HostPanelInterface : UdonSharpBehaviour
{
[SerializeField] private HostCardManager _HostCard;
[Space]
[SerializeField] private GameObject _GameConfigPanel;
[SerializeField] private GameObject _CamerasPanel;
[SerializeField] private GameObject _Round1Panel;
[SerializeField] private GameObject _Round2Panel;
[SerializeField] private GameObject _Round3Panel;
[Space]
[SerializeField] private Image _GameConfigButtonImage;
[SerializeField] private Image _CamerasButtonImage;
[SerializeField] private Image _Round1ButtonImage;
[SerializeField] private Image _Round2ButtonImage;
[SerializeField] private Image _Round3ButtonImage;
[Space]
[SerializeField] private TextMeshProUGUI _GameConfigButtonText;
[SerializeField] private TextMeshProUGUI _CamerasButtonText;
[SerializeField] private TextMeshProUGUI _Round1ButtonText;
[SerializeField] private TextMeshProUGUI _Round2ButtonText;
[SerializeField] private TextMeshProUGUI _Round3ButtonText;
[Space]
[SerializeField] private CaseManager _CaseManager;
[SerializeField] private PlayerPodium[] _PlayerPodiums;
private readonly Color _SelectedTabColour = new Color(0.0f, 0.5f, 0.0f);
public void ShowPlayersAdminView()
{
_GameConfigPanel.SetActive(true);
_CamerasPanel.SetActive(false);
_GameConfigButtonImage.color = _SelectedTabColour;
_CamerasButtonImage.color = Color.white;
_GameConfigButtonText.color = Color.white;
_CamerasButtonText.color = Color.black;
}
public void ShowCamerasAdminView()
{
_GameConfigPanel.SetActive(false);
_CamerasPanel.SetActive(true);
_GameConfigButtonImage.color = Color.white;
_CamerasButtonImage.color = _SelectedTabColour;
_GameConfigButtonText.color = Color.black;
_CamerasButtonText.color = Color.white;
}
public void GameConfig_ShowRound1Panel()
{
_Round1Panel.SetActive(true);
_Round2Panel.SetActive(false);
_Round3Panel.SetActive(false);
_Round1ButtonImage.color = _SelectedTabColour;
_Round2ButtonImage.color = Color.white;
_Round3ButtonImage.color = Color.white;
_Round1ButtonText.color = Color.white;
_Round2ButtonText.color = Color.black;
_Round3ButtonText.color = Color.black;
}
public void GameConfig_ShowRound2Panel()
{
_Round1Panel.SetActive(false);
_Round2Panel.SetActive(true);
_Round3Panel.SetActive(false);
_Round1ButtonImage.color = Color.white;
_Round2ButtonImage.color = _SelectedTabColour;
_Round3ButtonImage.color = Color.white;
_Round1ButtonText.color = Color.black;
_Round2ButtonText.color = Color.white;
_Round3ButtonText.color = Color.black;
}
public void GameConfig_ShowRound3Panel()
{
_Round1Panel.SetActive(false);
_Round2Panel.SetActive(false);
_Round3Panel.SetActive(true);
_Round1ButtonImage.color = Color.white;
_Round2ButtonImage.color = Color.white;
_Round3ButtonImage.color = _SelectedTabColour;
_Round1ButtonText.color = Color.black;
_Round2ButtonText.color = Color.black;
_Round3ButtonText.color = Color.white;
}
public void Round1_Player1_ResetPodiumOwner()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[0],
NetworkEventTarget.All,
"ResetOwner");
}
public void Round1_Player2_ResetPodiumOwner()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[1],
NetworkEventTarget.All,
"ResetOwner");
}
public void Round1_Player3_ResetPodiumOwner()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[2],
NetworkEventTarget.All,
"ResetOwner");
}
public void Round1_Player1_DecreaseScoreBy5()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[0],
NetworkEventTarget.All,
"DecreaseScoreBy5");
}
public void Round1_Player2_DecreaseScoreBy5()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[1],
NetworkEventTarget.All,
"DecreaseScoreBy5");
}
public void Round1_Player3_DecreaseScoreBy5()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[2],
NetworkEventTarget.All,
"DecreaseScoreBy5");
}
public void Round1_Player1_IncreaseScoreBy5()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[0],
NetworkEventTarget.All,
"IncreaseScoreBy5");
}
public void Round1_Player2_IncreaseScoreBy5()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[1],
NetworkEventTarget.All,
"IncreaseScoreBy5");
}
public void Round1_Player3_IncreaseScoreBy5()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[2],
NetworkEventTarget.All,
"IncreaseScoreBy5");
}
public void Round1_Player1_ResetPodium()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[0],
NetworkEventTarget.All,
"ResetPodium");
}
public void Round1_Player2_ResetPodium()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[1],
NetworkEventTarget.All,
"ResetPodium");
}
public void Round1_Player3_ResetPodium()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[2],
NetworkEventTarget.All,
"ResetPodium");
}
public void RestartRound1()
{
_CaseManager.ContinueToRound1();
}
public void RestartRound2()
{
_CaseManager.ContinueToRound2();
}
public void RestartRound3()
{
_CaseManager.ContinueToRound3();
}
public void Camera1_Switch()
{
Debug.Log("Camera 1 should go live here.");
}
public void Camera2_Switch()
{
Debug.Log("Camera 2 should go live here.");
}
public void Camera3_Switch()
{
Debug.Log("Camera 3 should go live here.");
}
public void Camera4_Switch()
{
Debug.Log("Camera 4 should go live here.");
}
public void Camera5_Switch()
{
Debug.Log("Camera 5 should go live here.");
}
public void Camera6_Switch()
{
Debug.Log("Camera 6 should go live here.");
}
}