Lightning strike is finally mostly functional, save for a mystery trigger box.

This commit is contained in:
2026-05-13 20:13:47 -04:00
parent 3a7076121b
commit 775c736bab
140 changed files with 31405 additions and 2988 deletions
@@ -129,6 +129,7 @@ public class GameManagerRound2 : GameManagerBase
_PlayerPodiums[i].ResetOwner();
}
_CameraControllerRound2.WinningPlayerCamera_StopFollowingPlayers();
_CameraControllerRound2.DeinitialiseCameras();
_CameraControllerRound2.PlayModemZoom(false);
@@ -396,6 +397,8 @@ public class GameManagerRound2 : GameManagerBase
public void YoureWinnerDelayedFunctions2()
{
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All, "PlayMusic", MusicEventType.YoureWinner);
_JailCallCameraOverlay.EnableOverlayElements(true);
}
[NetworkCallable]
public void YoureWinnerConfettiPlayer()
@@ -593,8 +596,6 @@ public class GameManagerRound2 : GameManagerBase
{
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All, "PlaySFX", SFXEventType.PhoneRing);
_JailCallCameraOverlay.EnableOverlayElements(true);
_CameraControllerRound2.DeactivateHostWinnerCameraTrigger();
_CameraControllerRound2.DisableAllSwitchers();
_CameraControllerRound2.SwitchToHostAndWinnerCamera();
@@ -603,10 +604,7 @@ public class GameManagerRound2 : GameManagerBase
[NetworkCallable]
public void FollowPlayerHoldingPhone(string PlayerToFollow)
{
if (_CaseManager.GetCurrentWinningPlayers()[0] == "")
{
_CameraControllerRound2.WinningPlayerCamera_FollowPlayers(new string[1] { PlayerToFollow });
}
_CameraControllerRound2.WinningPlayerCamera_FollowPlayers(new string[1] { PlayerToFollow });
}
[NetworkCallable]
+19 -9
View File
@@ -41,17 +41,22 @@ public class JailPhone : UdonSharpBehaviour
public override void OnPickupUseDown()
{
if (Networking.LocalPlayer == _GameManager.GetHostOwner())
if (_GameManager.IsRoundInitialised())
{
PlayJailCall();
if (Networking.LocalPlayer == _GameManager.GetHostOwner())
{
PlayJailCall(Networking.LocalPlayer);
}
}
base.OnPickupUseDown();
}
public override void OnOwnershipTransferred(VRCPlayerApi Player)
{
_GameManager.SendCustomNetworkEvent(NetworkEventTarget.Owner, "FollowPlayerHoldingPhone", Player.displayName);
PlayJailCall();
if (_GameManager.IsRoundInitialised())
{
PlayJailCall(Player);
}
base.OnOwnershipTransferred(Player);
}
@@ -66,10 +71,13 @@ public class JailPhone : UdonSharpBehaviour
public void Activate(bool Active)
{
_Active = Active;
_Activate_Synced();
_ObjectSync.pickup.pickupable = _Active;
RequestSerialization();
if (_GameManager.IsRoundInitialised())
{
_Active = Active;
_Activate_Synced();
_ObjectSync.pickup.pickupable = _Active;
RequestSerialization();
}
}
private void _Activate_Synced()
{
@@ -90,10 +98,12 @@ public class JailPhone : UdonSharpBehaviour
}
private void PlayJailCall()
private void PlayJailCall(VRCPlayerApi Player)
{
if (_Active && !_CallHasBeenPlayed)
{
_GameManager.SendCustomNetworkEvent(NetworkEventTarget.Owner, "FollowPlayerHoldingPhone", Player.displayName);
SendCustomEventDelayedSeconds(nameof(PlayJailCall_Delayed), 0.75f);
_CallHasBeenPlayed = true;
RequestSerialization();
@@ -44,7 +44,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 12
Data: 7
Data: 9
- Name:
Entry: 7
Data:
@@ -245,13 +245,13 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: _PersonalRaincloud
Data: _LightningStrikeExplosion
- Name: $v
Entry: 7
Data: 16|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _PersonalRaincloud
Data: _LightningStrikeExplosion
- Name: <UserType>k__BackingField
Entry: 7
Data: 17|System.RuntimeType, mscorlib
@@ -305,19 +305,19 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: _Umbrella
Data: _LightningStrikeStation
- Name: $v
Entry: 7
Data: 20|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _Umbrella
Data: _LightningStrikeStation
- Name: <UserType>k__BackingField
Entry: 7
Data: 21|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: Umbrella, Assembly-CSharp
Data: LightningStrikeStation, Assembly-CSharp
- Name:
Entry: 8
Data:
@@ -365,16 +365,130 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: _Effect
Data: _PersonalRaincloud
- Name: $v
Entry: 7
Data: 24|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _PersonalRaincloud
- Name: <UserType>k__BackingField
Entry: 9
Data: 17
- Name: <SystemType>k__BackingField
Entry: 9
Data: 17
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 25|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 26|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
- Name:
Entry: 13
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: _Umbrella
- Name: $v
Entry: 7
Data: 27|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _Umbrella
- Name: <UserType>k__BackingField
Entry: 7
Data: 28|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: Umbrella, Assembly-CSharp
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 4
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 29|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 30|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
- Name:
Entry: 13
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: _Effect
- Name: $v
Entry: 7
Data: 31|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _Effect
- Name: <UserType>k__BackingField
Entry: 7
Data: 25|System.RuntimeType, mscorlib
Data: 32|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: LightningRoundEffect, Assembly-CSharp
@@ -383,7 +497,7 @@ MonoBehaviour:
Data:
- Name: <SystemType>k__BackingField
Entry: 7
Data: 26|System.RuntimeType, mscorlib
Data: 33|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: System.Int32, mscorlib
@@ -404,13 +518,13 @@ MonoBehaviour:
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 27|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 34|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 28|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
Data: 35|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
- Name:
Entry: 8
Data:
@@ -434,16 +548,16 @@ MonoBehaviour:
Data: _Effect_Cached
- Name: $v
Entry: 7
Data: 29|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
Data: 36|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _Effect_Cached
- Name: <UserType>k__BackingField
Entry: 9
Data: 25
Data: 32
- Name: <SystemType>k__BackingField
Entry: 9
Data: 26
Data: 33
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -458,7 +572,7 @@ MonoBehaviour:
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 30|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 37|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 0
@@ -22,6 +22,8 @@ public class LightningRoundEffectsController : UdonSharpBehaviour
[SerializeField] private Animator _Animator;
[Space]
[SerializeField] private GameObject _LightningBolt;
[SerializeField] private ParticleSystem _LightningStrikeExplosion;
[SerializeField] private LightningStrikeStation _LightningStrikeStation;
[SerializeField] private ParticleSystem _PersonalRaincloud;
[SerializeField] private Umbrella _Umbrella;
@@ -32,6 +34,8 @@ public class LightningRoundEffectsController : UdonSharpBehaviour
public override void OnOwnershipTransferred(VRCPlayerApi Player)
{
Networking.SetOwner(Player, _LightningBolt.gameObject);
Networking.SetOwner(Player, _LightningStrikeStation.gameObject);
Networking.SetOwner(Player, _PersonalRaincloud.gameObject);
Networking.SetOwner(Player, _Umbrella.gameObject);
base.OnOwnershipTransferred(Player);
@@ -54,7 +58,7 @@ public class LightningRoundEffectsController : UdonSharpBehaviour
public void PlayLightningRoundAnimation()
{
_Effect = (LightningRoundEffect)Random.Range(0, (int)LightningRoundEffect.MAX_EFFECTS);
_Effect = LightningRoundEffect.LightningStrike;//(LightningRoundEffect)Random.Range(0, (int)LightningRoundEffect.MAX_EFFECTS);
_PlayLightningRoundAnimation_Synced();
RequestSerialization();
}
@@ -67,26 +71,25 @@ public class LightningRoundEffectsController : UdonSharpBehaviour
switch (_Effect)
{
case LightningRoundEffect.Thunder:
_LightningBolt.SetActive(false);
break;
case LightningRoundEffect.LightningStrike:
_LightningBolt.SetActive(true);
_ActivateLightningStrike();
break;
case LightningRoundEffect.ThunderAndRain:
_LightningBolt.SetActive(false);
_ActivateRain();
_ActivateRainAndUmbrella();
break;
default: // Deactivate everything and leave
_Animator.SetBool("Lightning", false);
_LightningBolt.SetActive(false);
_DeactivateRain();
_DeactivateRainAndUmbrella();
_DeactivateLightningStrike();
return;
}
_AudioManager.PlayMusic(MusicEventType.LightningRound);
_Animator.SetBool("Lightning", true);
SendCustomEventDelayedSeconds(nameof(ResetLightningRoundAnimation), 2.0f);
SendCustomEventDelayedSeconds(nameof(ResetLightningRoundAnimation), 10.0f);
}
}
public void ResetLightningRoundAnimation()
@@ -96,13 +99,40 @@ public class LightningRoundEffectsController : UdonSharpBehaviour
}
private void _ActivateRain()
private void _ActivateLightningStrike()
{
_LightningBolt.SetActive(true);
_LightningStrikeStation.gameObject.SetActive(true);
VRCPlayerApi ActiveHost = Networking.GetOwner(gameObject);
Vector3 Position = ActiveHost.GetPosition();
Quaternion Rotation = ActiveHost.GetRotation();
_LightningStrikeStation.transform.SetPositionAndRotation(Position, Rotation);
_LightningBolt.transform.SetPositionAndRotation(Position, Rotation);
_LightningStrikeExplosion.Play();
if (Networking.IsOwner(gameObject))
{
_LightningStrikeStation.EnterStation();
}
}
private void _DeactivateLightningStrike()
{
_LightningBolt.SetActive(false);
_LightningStrikeStation.gameObject.SetActive(false);
_LightningStrikeExplosion.Stop();
}
private void _ActivateRainAndUmbrella()
{
_Umbrella.gameObject.SetActive(true);
_Umbrella.Respawn();
_PersonalRaincloud.Play();
}
private void _DeactivateRain()
private void _DeactivateRainAndUmbrella()
{
_Umbrella.gameObject.SetActive(false);
_PersonalRaincloud.Stop();
+130 -4
View File
@@ -44,7 +44,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 12
Data: 2
Data: 4
- Name:
Entry: 7
Data:
@@ -158,10 +158,124 @@ MonoBehaviour:
Data: 10|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 2
Data: 1
- Name:
Entry: 7
Data: 11|UnityEngine.SpaceAttribute, UnityEngine.CoreModule
Data: 11|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
- Name:
Entry: 13
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: _Reset
- Name: $v
Entry: 7
Data: 12|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _Reset
- Name: <UserType>k__BackingField
Entry: 9
Data: 8
- Name: <SystemType>k__BackingField
Entry: 9
Data: 9
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 13|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 14|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
- Name:
Entry: 13
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: _DelayBeforeEjecting
- Name: $v
Entry: 7
Data: 15|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _DelayBeforeEjecting
- Name: <UserType>k__BackingField
Entry: 7
Data: 16|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: System.Single, mscorlib
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 16
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 17|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 3
- Name:
Entry: 7
Data: 18|UnityEngine.SpaceAttribute, UnityEngine.CoreModule
- Name: height
Entry: 4
Data: 8
@@ -170,7 +284,19 @@ MonoBehaviour:
Data:
- Name:
Entry: 7
Data: 12|UnityEngine.SerializeField, UnityEngine.CoreModule
Data: 19|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 20|UnityEngine.RangeAttribute, UnityEngine.CoreModule
- Name: min
Entry: 4
Data: 0
- Name: max
Entry: 4
Data: 10
- Name:
Entry: 8
Data:
+9 -12
View File
@@ -2,34 +2,31 @@
using UdonSharp;
using UnityEngine;
using VRC.SDKBase;
using VRC.Udon.Common.Enums;
[UdonBehaviourSyncMode(BehaviourSyncMode.None)]
public class LightningStrikeStation : UdonSharpBehaviour
{
[SerializeField] private CaseManager _CaseManager;
[Space]
[SerializeField] private VRCStation _Station;
[SerializeField] private VRCStation _Reset;
[Space]
[SerializeField, Range(0.0f, 10.0f)] private float _DelayBeforeEjecting = 2.0f;
public void EnterStation()
{
_Station.UseStation(Networking.LocalPlayer);
SendCustomEventDelayedSeconds(nameof(RemoveFromStation), 2.0f);
SendCustomEventDelayedSeconds(nameof(RemoveFromStation), _DelayBeforeEjecting, EventTiming.LateUpdate);
}
public void RemoveFromStation()
{
_Station.ExitStation(Networking.LocalPlayer);
_Reset.UseStation(Networking.LocalPlayer);
SendCustomEventDelayedSeconds(nameof(RemoveFromResetStation), 0.1f, EventTiming.LateUpdate);
}
public override void OnStationEntered(VRCPlayerApi Player)
public void RemoveFromResetStation()
{
base.OnStationEntered(Player);
}
public override void OnStationExited(VRCPlayerApi Player)
{
base.OnStationExited(Player);
_Reset.ExitStation(Networking.LocalPlayer);
}
}
+16 -10
View File
@@ -122,13 +122,19 @@ MonoBehaviour:
Data: 7|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: VRC.SDK3.Components.VRCObjectSync, VRCSDK3
Data: MMMaellon.LightSync.LightSync, com.mmmaellon.lightsync
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 7
Entry: 7
Data: 8|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: VRC.Udon.UdonBehaviour, VRC.Udon
- Name:
Entry: 8
Data:
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -143,13 +149,13 @@ MonoBehaviour:
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 8|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 9|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 9|UnityEngine.SerializeField, UnityEngine.CoreModule
Data: 10|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
@@ -173,13 +179,13 @@ MonoBehaviour:
Data: _Open
- Name: $v
Entry: 7
Data: 10|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
Data: 11|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _Open
- Name: <UserType>k__BackingField
Entry: 7
Data: 11|System.RuntimeType, mscorlib
Data: 12|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: System.Boolean, mscorlib
@@ -188,7 +194,7 @@ MonoBehaviour:
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 11
Data: 12
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -203,13 +209,13 @@ MonoBehaviour:
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 12|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 13|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 13|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
Data: 14|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
- Name:
Entry: 8
Data:
+2 -2
View File
@@ -1,7 +1,7 @@
using MMMaellon.LightSync;
using UdonSharp;
using UnityEngine;
using VRC.SDK3.Components;
using VRC.Udon.Common;
@@ -9,7 +9,7 @@ using VRC.Udon.Common;
public class Umbrella : UdonSharpBehaviour
{
[SerializeField] Animator _Animator;
[SerializeField] VRCObjectSync _ObjectSync;
[SerializeField] LightSync _ObjectSync;
[UdonSynced] private bool _Open = false;