diff --git a/Assets/Prefabs/Phone.prefab b/Assets/Prefabs/Phone.prefab index 5201d42..5e36a11 100644 --- a/Assets/Prefabs/Phone.prefab +++ b/Assets/Prefabs/Phone.prefab @@ -551,7 +551,7 @@ MonoBehaviour: ThrowVelocityBoostMinSpeed: 1 ThrowVelocityBoostScale: 1 currentlyHeldBy: {fileID: 0} - pickupable: 1 + pickupable: 0 proximity: 0.5 --- !u!114 &7664069034163716319 MonoBehaviour: @@ -582,7 +582,7 @@ MonoBehaviour: lateLooper: {fileID: 637467565593588835} rigid: {fileID: 4575308875957934130} pickup: {fileID: 3019992558134816461} - respawnHeight: -10 + respawnHeight: -1.5 smoothingTime: -0.25 allowTheftFromSelf: 1 allowTheftWhenAttachedToPlayer: 1 diff --git a/Assets/Scenes/witwics.unity b/Assets/Scenes/witwics.unity index 24389fc..af67204 100644 --- a/Assets/Scenes/witwics.unity +++ b/Assets/Scenes/witwics.unity @@ -79507,6 +79507,16 @@ PrefabInstance: value: objectReference: {fileID: 7348467109636049180, guid: 60bb1d81845055844877bdeecb84a129, type: 3} + - target: {fileID: 7664069034163716319, guid: 60bb1d81845055844877bdeecb84a129, + type: 3} + propertyPath: lastPickupable + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7664069034163716319, guid: 60bb1d81845055844877bdeecb84a129, + type: 3} + propertyPath: pickupableFlag + value: 0 + objectReference: {fileID: 0} - target: {fileID: 7664069034163716319, guid: 60bb1d81845055844877bdeecb84a129, type: 3} propertyPath: serializationData.Prefab diff --git a/Assets/UdonSharp/Game Managers/CaseManager.asset b/Assets/UdonSharp/Game Managers/CaseManager.asset index 2a91d1d..e319f05 100644 --- a/Assets/UdonSharp/Game Managers/CaseManager.asset +++ b/Assets/UdonSharp/Game Managers/CaseManager.asset @@ -44,7 +44,7 @@ MonoBehaviour: Data: - Name: Entry: 12 - Data: 24 + Data: 23 - Name: Entry: 7 Data: @@ -1379,19 +1379,19 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _HostOwner + Data: _CaseFileDictionary - Name: $v Entry: 7 Data: 89|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _HostOwner + Data: _CaseFileDictionary - Name: k__BackingField Entry: 7 Data: 90|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: VRC.SDKBase.VRCPlayerApi, VRCSDKBase + Data: VRC.SDK3.Data.DataDictionary, VRCSDK3 - Name: Entry: 8 Data: @@ -1428,60 +1428,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: _CaseFileDictionary - - Name: $v - Entry: 7 - Data: 92|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: k__BackingField - Entry: 1 - Data: _CaseFileDictionary - - Name: k__BackingField - Entry: 7 - Data: 93|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: VRC.SDK3.Data.DataDictionary, VRCSDK3 - - Name: - Entry: 8 - Data: - - Name: k__BackingField - Entry: 9 - Data: 93 - - Name: k__BackingField - Entry: 7 - Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - - Name: - Entry: 6 - Data: - - Name: - Entry: 8 - Data: - - Name: k__BackingField - Entry: 5 - Data: false - - Name: _fieldAttributes - Entry: 7 - Data: 94|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 0 - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - Name: Entry: 13 Data: diff --git a/Assets/UdonSharp/Game Managers/CaseManager.cs b/Assets/UdonSharp/Game Managers/CaseManager.cs index f81803d..ae81124 100644 --- a/Assets/UdonSharp/Game Managers/CaseManager.cs +++ b/Assets/UdonSharp/Game Managers/CaseManager.cs @@ -60,8 +60,6 @@ public class CaseManager : UdonSharpBehaviour [UdonSynced] private string[] _CurrentWinningPlayers = new string[3]; - private VRCPlayerApi _HostOwner; - private DataDictionary _CaseFileDictionary; @@ -77,8 +75,6 @@ public class CaseManager : UdonSharpBehaviour public override void OnOwnershipTransferred(VRCPlayerApi Player) { - _HostOwner = Player; - _Round1Manager.SetOwnershipOfObjects(Player); _Round2Manager.SetOwnershipOfObjects(Player); _Round3Manager.SetOwnershipOfObjects(Player); @@ -88,7 +84,7 @@ public class CaseManager : UdonSharpBehaviour public VRCPlayerApi GetHostOwner() { - return _HostOwner; + return Networking.GetOwner(gameObject); } diff --git a/Assets/UdonSharp/Game Managers/GameManagerBase.cs b/Assets/UdonSharp/Game Managers/GameManagerBase.cs index 44410d1..8892086 100644 --- a/Assets/UdonSharp/Game Managers/GameManagerBase.cs +++ b/Assets/UdonSharp/Game Managers/GameManagerBase.cs @@ -97,6 +97,8 @@ public class GameManagerBase : UdonSharpBehaviour public virtual void InitialiseGameMode() { + SetOwnershipOfObjects(_CaseManager.GetHostOwner()); + _AllowInteractionFromHostCard = true; EnablePlayerMicrophone(true); diff --git a/Assets/UdonSharp/Game Managers/GameManagerRound2.cs b/Assets/UdonSharp/Game Managers/GameManagerRound2.cs index 01640ad..c7c8df1 100644 --- a/Assets/UdonSharp/Game Managers/GameManagerRound2.cs +++ b/Assets/UdonSharp/Game Managers/GameManagerRound2.cs @@ -1,7 +1,6 @@  using UdonSharp; using UnityEngine; -using UnityEngine.Video; using VRC.SDK3.Data; using VRC.SDK3.UdonNetworkCalling; using VRC.SDKBase; diff --git a/Assets/UdonSharp/JailPhone.asset b/Assets/UdonSharp/JailPhone.asset index a5b58f4..c17b88d 100644 --- a/Assets/UdonSharp/JailPhone.asset +++ b/Assets/UdonSharp/JailPhone.asset @@ -44,7 +44,7 @@ MonoBehaviour: Data: - Name: Entry: 12 - Data: 3 + Data: 4 - Name: Entry: 7 Data: @@ -182,25 +182,79 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _CurrentOwner + Data: _CallHasBeenPlayed - Name: $v Entry: 7 Data: 12|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _CurrentOwner + Data: _CallHasBeenPlayed + - Name: k__BackingField + Entry: 9 + Data: 8 + - Name: k__BackingField + Entry: 9 + Data: 8 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 3 + Data: 1 + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - 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|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime + - 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: _ObjectSync + - Name: $v + Entry: 7 + Data: 15|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _ObjectSync - Name: k__BackingField Entry: 7 - Data: 13|System.RuntimeType, mscorlib + Data: 16|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: VRC.SDKBase.VRCPlayerApi, VRCSDKBase + Data: MMMaellon.LightSync.LightSync, com.mmmaellon.lightsync - Name: Entry: 8 Data: - Name: k__BackingField Entry: 9 - Data: 13 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -215,7 +269,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 14|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 17|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 diff --git a/Assets/UdonSharp/JailPhone.cs b/Assets/UdonSharp/JailPhone.cs index d6a73e5..2f6754e 100644 --- a/Assets/UdonSharp/JailPhone.cs +++ b/Assets/UdonSharp/JailPhone.cs @@ -1,6 +1,8 @@  +using MMMaellon.LightSync; using UdonSharp; using UnityEngine; +using VRC.SDK3.Components; using VRC.SDKBase; using VRC.Udon.Common.Interfaces; @@ -11,42 +13,53 @@ public class JailPhone : UdonSharpBehaviour [SerializeField] private GameManagerRound2 _GameManager; [UdonSynced, FieldChangeCallback(nameof(Activate))] private bool _Activate = false; + [UdonSynced] private bool _CallHasBeenPlayed = false; - private VRCPlayerApi _CurrentOwner; + private LightSync _ObjectSync; + void Start() + { + _ObjectSync = GetComponent(); + } + public void Initialise() { - _CurrentOwner = _GameManager.GetHostOwner(); + _ObjectSync.TeleportToLocalSpace(Vector3.zero, Quaternion.identity, false); - transform.localPosition = Vector3.zero; - transform.localRotation = Quaternion.identity; + Activate = false; + _CallHasBeenPlayed = false; + + RequestSerialization(); + } + + public override void OnPickup() + { + if (Networking.LocalPlayer != _GameManager.GetHostOwner()) + { + PlayJailCall(); + } + base.OnPickup(); } public override void OnPickupUseDown() { - if (Activate && _CurrentOwner == _GameManager.GetHostOwner()) + if (Networking.LocalPlayer == _GameManager.GetHostOwner()) { PlayJailCall(); } base.OnPickupUseDown(); } - public override void OnOwnershipTransferred(VRCPlayerApi Player) - { - _CurrentOwner = Player; - if (Activate && Player != _GameManager.GetHostOwner()) - { - PlayJailCall(); - } - base.OnOwnershipTransferred(Player); - } - private void PlayJailCall() { - _GameManager.SendCustomEventDelayedSeconds("PlayJailCall", 0.75f); - Activate = false; + if (Activate && !_CallHasBeenPlayed) + { + _GameManager.SendCustomEventDelayedSeconds("PlayJailCall", 0.75f); + _CallHasBeenPlayed = true; + RequestSerialization(); + } } @@ -57,9 +70,10 @@ public class JailPhone : UdonSharpBehaviour _Activate = value; if (_Activate) { - _CurrentOwner = _GameManager.GetHostOwner(); _GameManager.PhoneRing(); } + _ObjectSync.pickup.pickupable = _Activate; + Debug.Log("[JailPhone] Pickupable status is now " + (_ObjectSync.pickup.pickupable ? "true" : "false")); RequestSerialization(); } get => _Activate; diff --git a/Assets/UdonSharp/UtilityScripts/BoneFollower.asset b/Assets/UdonSharp/UtilityScripts/BoneFollower.asset index b946757..036a370 100644 --- a/Assets/UdonSharp/UtilityScripts/BoneFollower.asset +++ b/Assets/UdonSharp/UtilityScripts/BoneFollower.asset @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Name: BoneFollower m_EditorClassIdentifier: - serializedUdonProgramAsset: {fileID: 11400000, guid: ccbda9bf23e2f714c9226283c77a92e5, + serializedUdonProgramAsset: {fileID: 11400000, guid: 52ecc8a73071e8e40928c3609699fcf4, type: 2} udonAssembly: assemblyError: diff --git a/Assets/UdonSharp/UtilityScripts/InteractToggle.asset b/Assets/UdonSharp/UtilityScripts/InteractToggle.asset index b35639e..13d78db 100644 --- a/Assets/UdonSharp/UtilityScripts/InteractToggle.asset +++ b/Assets/UdonSharp/UtilityScripts/InteractToggle.asset @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Name: InteractToggle m_EditorClassIdentifier: - serializedUdonProgramAsset: {fileID: 11400000, guid: 405e38d3dfb2f514daeed0e28fbb4864, + serializedUdonProgramAsset: {fileID: 11400000, guid: 873dfce61b1514e429c92e0d2fded7de, type: 2} udonAssembly: assemblyError: diff --git a/Assets/UdonSharp/UtilityScripts/PlayerModSetter.asset b/Assets/UdonSharp/UtilityScripts/PlayerModSetter.asset index 1def3de..d89a1a4 100644 --- a/Assets/UdonSharp/UtilityScripts/PlayerModSetter.asset +++ b/Assets/UdonSharp/UtilityScripts/PlayerModSetter.asset @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Name: PlayerModSetter m_EditorClassIdentifier: - serializedUdonProgramAsset: {fileID: 11400000, guid: f938e6c4ff027a74da405a1f9353fd2b, + serializedUdonProgramAsset: {fileID: 11400000, guid: e81558796a212ab4d88e305e2010f24b, type: 2} udonAssembly: assemblyError: diff --git a/Assets/UdonSharp/UtilityScripts/Synced/GlobalToggleObject.asset b/Assets/UdonSharp/UtilityScripts/Synced/GlobalToggleObject.asset index 8101274..ea98aa4 100644 --- a/Assets/UdonSharp/UtilityScripts/Synced/GlobalToggleObject.asset +++ b/Assets/UdonSharp/UtilityScripts/Synced/GlobalToggleObject.asset @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Name: GlobalToggleObject m_EditorClassIdentifier: - serializedUdonProgramAsset: {fileID: 11400000, guid: c49c9265a3ef24642a6a4465d0a78872, + serializedUdonProgramAsset: {fileID: 11400000, guid: 2fe8ced6184000f49bca526cd2c5891c, type: 2} udonAssembly: assemblyError: diff --git a/Assets/UdonSharp/UtilityScripts/Synced/MasterToggleObject.asset b/Assets/UdonSharp/UtilityScripts/Synced/MasterToggleObject.asset index 901d05e..b4b3ede 100644 --- a/Assets/UdonSharp/UtilityScripts/Synced/MasterToggleObject.asset +++ b/Assets/UdonSharp/UtilityScripts/Synced/MasterToggleObject.asset @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Name: MasterToggleObject m_EditorClassIdentifier: - serializedUdonProgramAsset: {fileID: 11400000, guid: 04024a76ab1924042ba521e11cb76d91, + serializedUdonProgramAsset: {fileID: 11400000, guid: a2d01d9f36ac6df49831be249e48ecc4, type: 2} udonAssembly: assemblyError: diff --git a/Assets/UdonSharp/UtilityScripts/TrackingDataFollower.asset b/Assets/UdonSharp/UtilityScripts/TrackingDataFollower.asset index da92932..c624599 100644 --- a/Assets/UdonSharp/UtilityScripts/TrackingDataFollower.asset +++ b/Assets/UdonSharp/UtilityScripts/TrackingDataFollower.asset @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Name: TrackingDataFollower m_EditorClassIdentifier: - serializedUdonProgramAsset: {fileID: 11400000, guid: 17f8fbbe6cc186d4f8dbb057b01a4ec2, + serializedUdonProgramAsset: {fileID: 11400000, guid: 1b89d4552983c0448a7389decec3b555, type: 2} udonAssembly: assemblyError: diff --git a/Assets/UdonSharp/UtilityScripts/WorldAudioSettings.asset b/Assets/UdonSharp/UtilityScripts/WorldAudioSettings.asset index ee4621f..5226f4f 100644 --- a/Assets/UdonSharp/UtilityScripts/WorldAudioSettings.asset +++ b/Assets/UdonSharp/UtilityScripts/WorldAudioSettings.asset @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Name: WorldAudioSettings m_EditorClassIdentifier: - serializedUdonProgramAsset: {fileID: 11400000, guid: 128d924a3066b7546b2d1c73e61006ab, + serializedUdonProgramAsset: {fileID: 11400000, guid: 994b559b0f158b4499f8937980ed8694, type: 2} udonAssembly: assemblyError: