- Modem and destination sign now correctly sync for all players.

- Case Manager now ensures proper ownership for whoever loads the case file.
This commit is contained in:
2025-08-18 21:30:16 -04:00
parent fb3106efcb
commit 5f9b1bad15
26 changed files with 631 additions and 247 deletions
@@ -69,6 +69,12 @@ public class CaseManager : UdonSharpBehaviour
public void LoadCaseFile(CaseManagerListEntry CaseFile)
{
Networking.SetOwner(Networking.LocalPlayer, gameObject);
Networking.SetOwner(Networking.LocalPlayer, _Round1Manager.gameObject);
Networking.SetOwner(Networking.LocalPlayer, _Round2Manager.gameObject);
Networking.SetOwner(Networking.LocalPlayer, _Round3Manager.gameObject);
Networking.SetOwner(Networking.LocalPlayer, _HostCard.gameObject);
_CaseFileCluesURL = CaseFile.CaseFileURL;
_CaseFileLootImage = CaseFile.LootImage;
_CaseFileMaps = CaseFile.MapFiles;
@@ -63,11 +63,13 @@ public class GameManagerRound1 : GameManagerBase
_PlayerBuzzInAllowed = new bool[_PlayerPodiums.Length];
_Modem.ResetModem();
_Modem.gameObject.SetActive(false);
_ArrivalDisplay.gameObject.SetActive(false);
Networking.SetOwner(Networking.GetOwner(gameObject), _Modem.gameObject);
_Modem.Activate(false);
_LightningRoundAnimator.SetBool("Lightning", false);
Networking.SetOwner(Networking.GetOwner(gameObject), _ArrivalDisplay.gameObject);
_ArrivalDisplay.Activate(false);
SendCustomNetworkEvent(NetworkEventTarget.All, nameof(ResetLightningRoundAnimation));
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All, "PlayMusic", MusicEventType.WhereInTheWorld);
SendCustomEventDelayedSeconds(nameof(PlaySecondPartOfThemeMusic), 3.6666666666f);
@@ -515,7 +517,7 @@ public class GameManagerRound1 : GameManagerBase
private void BeginLightningRound()
{
_LightningRoundAnimator.SetBool("Lightning", true);
SendCustomNetworkEvent(NetworkEventTarget.All, nameof(PlayLightningRoundAnimation));
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All, "PlaySFX", SFXEventType.Thunder);
HostCardLightningRoundInterface Interface =
@@ -532,6 +534,16 @@ public class GameManagerRound1 : GameManagerBase
EnableInteraction("First Question");
}
[NetworkCallable]
public void PlayLightningRoundAnimation()
{
_LightningRoundAnimator.SetBool("Lightning", true);
}
[NetworkCallable]
public void ResetLightningRoundAnimation()
{
_LightningRoundAnimator.SetBool("Lightning", false);
}
private void LightningRoundCluesLoop()
{
@@ -1146,15 +1158,15 @@ public class GameManagerRound1 : GameManagerBase
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All,
"PlayMusicLoop", MusicEventType.CapitalLoop);
_Modem.gameObject.SetActive(true);
_ArrivalDisplay.gameObject.SetActive(true);
_Modem.Activate(true);
_ArrivalDisplay.Activate(true);
EnableInteraction("Activate Modem");
}
private void ActivateModem()
{
_Modem.BeginTeleportProcess();
_Modem.Teleport();
SendCustomEventDelayedSeconds(nameof(_ContinueToRound2_Private), 5.0f);
}
public void _ContinueToRound2_Private()
@@ -367,7 +367,7 @@ public class GameManagerRound2 : GameManagerBase
set
{
_Location = value;
_ArrivalDisplay.SetDisplay(_Location);
_ArrivalDisplay.SetDisplayText(_Location);
}
get => _Location;
}