From d92c9f52c23ab02d1e2268b1e5041555c0da8972 Mon Sep 17 00:00:00 2001 From: AyakorK Date: Fri, 25 Oct 2024 14:16:58 +0200 Subject: [PATCH 1/5] feat: Instantiate waiting room when arriving in the corridor 0 --- .../RoomSystem/Corridor/CorridorX7.prefab | 15 +------- Assets/Scenes/EmptyRoom_2.unity | 5 +++ Assets/Scripts/GameTracker.cs | 17 ++++++++++ Assets/Scripts/WaitingTrapper.cs | 34 +++++++++++-------- 4 files changed, 42 insertions(+), 29 deletions(-) diff --git a/Assets/Prefabs/RoomSystem/Corridor/CorridorX7.prefab b/Assets/Prefabs/RoomSystem/Corridor/CorridorX7.prefab index dd3987aa..6c06b6e8 100644 --- a/Assets/Prefabs/RoomSystem/Corridor/CorridorX7.prefab +++ b/Assets/Prefabs/RoomSystem/Corridor/CorridorX7.prefab @@ -1286,7 +1286,7 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: -1791178601 - m_SortingLayer: 3 + m_SortingLayer: 4 m_SortingOrder: 0 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} @@ -1341,7 +1341,6 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 3022020511561805294} - - component: {fileID: 1349095506272017240} m_Layer: 0 m_Name: CorridorX7 m_TagString: Map @@ -1369,18 +1368,6 @@ Transform: - {fileID: 417082257302647601} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1349095506272017240 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6369746937129949933} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9880ea29492da44c995f334244a5d19e, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1 &7452483412117750499 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/EmptyRoom_2.unity b/Assets/Scenes/EmptyRoom_2.unity index 166f4796..9c7e3042 100644 --- a/Assets/Scenes/EmptyRoom_2.unity +++ b/Assets/Scenes/EmptyRoom_2.unity @@ -374,6 +374,7 @@ MonoBehaviour: stageText: {fileID: 1219144881} blacksmithPrefab: {fileID: 181369798890271941, guid: e4326c266f4d3fc4482daabdf57ea4f3, type: 3} altarPrefab: {fileID: 4671168421616932687, guid: 52d0b7df8b3db394988157e997abbc1f, type: 3} + waitingRoomPrefab: {fileID: 6577988205983815687, guid: 56b8e144977b94114b4eb95ac32bfe84, type: 3} --- !u!4 &1052255987 stripped Transform: m_CorrespondingSourceObject: {fileID: 2407411435886637468, guid: b95a2840877394746b9c857ec618031d, type: 3} @@ -387,6 +388,10 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 0} m_Modifications: + - target: {fileID: 1151693853599494121, guid: a29b258ccf5dc90498df6e925ee2a3e5, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 4239213568335062079, guid: a29b258ccf5dc90498df6e925ee2a3e5, type: 3} propertyPath: m_LocalPosition.x value: 503.8351 diff --git a/Assets/Scripts/GameTracker.cs b/Assets/Scripts/GameTracker.cs index 1aa199ca..c6312155 100644 --- a/Assets/Scripts/GameTracker.cs +++ b/Assets/Scripts/GameTracker.cs @@ -19,6 +19,8 @@ public class GameTracker : MonoBehaviour public GameObject blacksmithPrefab; public GameObject altarPrefab; + public GameObject waitingRoomPrefab; + // Points de spawn (ils seront trouvés dynamiquement) private Transform blacksmithSpawnPoint; private Transform altarSpawnPoint; @@ -27,6 +29,8 @@ public class GameTracker : MonoBehaviour private GameObject currentBlacksmith; private GameObject currentAltar; + private GameObject waitingRoom; + void Start() { stageText.text = "Stage: " + stageCounter; @@ -44,10 +48,23 @@ void Update() public void NextStage() { + if (stageCounter == 0) + { + instantiateWaitingRoom(); + } stageCounter++; stageText.text = "Stage: " + stageCounter; } + private void instantiateWaitingRoom() + { + waitingRoom = GameObject.Find("WaitingRoom"); + if (waitingRoom == null && waitingRoomPrefab != null) + { + Instantiate(waitingRoomPrefab, new Vector3(0, 0, 0), Quaternion.identity); + } + } + public void SpawnCorridorEvents() { diff --git a/Assets/Scripts/WaitingTrapper.cs b/Assets/Scripts/WaitingTrapper.cs index 130a5144..79684c30 100644 --- a/Assets/Scripts/WaitingTrapper.cs +++ b/Assets/Scripts/WaitingTrapper.cs @@ -23,20 +23,28 @@ public class WaitingTrapper : MonoBehaviour private bool codeChanged = false; private bool coroutineStarted = false; + private bool gameStart = false; + void Start() { clientSocket = SocketManager.Instance.ClientSocket; CreateOverlay(); - BlockPlayerMovement(); RegisterSocketEvents(); } private void RegisterSocketEvents() { clientSocket.On("trapper:join", _ => OnTrapperJoin()); + clientSocket.On("rooms:start", _ => OnStartGame()); clientSocket.On("rooms:create", response => OnRoomCreate(response)); } + private void OnStartGame() + { + gameStart = true; + ResumePlayerMovement(); + } + private void OnTrapperJoin() { Debug.Log("Trapper joined the room!"); @@ -122,15 +130,6 @@ private Text CreateTextObject(GameObject parent, string text, int fontSize, Colo return textComponent; } - private void BlockPlayerMovement() - { - gamePaused = true; - if (playerMovement != null) - { - playerMovement.enabled = false; - } - } - private void ResumePlayerMovement() { gamePaused = false; @@ -146,8 +145,7 @@ private IEnumerator StartCountdown(int countdownTime) { while (countdownTime > 0) { - Debug.Log("Countdown: " + countdownTime); - messageText.text = $"Trapper joined! Time to place traps: {countdownTime}s"; + messageText.text = $"Game Started ! Time to place traps: {countdownTime}s"; yield return new WaitForSecondsRealtime(1); countdownTime--; } @@ -156,16 +154,22 @@ private IEnumerator StartCountdown(int countdownTime) void Update() { - if (trapperJoined) + if (gameStart) { - trapperJoined = false; // Reset the flag + gameStart = false; coroutineStarted = true; StartCoroutine(StartCountdown(5)); // Start countdown for traps } + if (trapperJoined && gamePaused && !coroutineStarted) + { + trapperJoined = false; + messageText.text = "Waiting for the game to start..."; + } + if (gamePaused && !coroutineStarted) { - messageText.text = "Waiting for trapper to join..."; + messageText.text = "Waiting for trappers to join..."; } if (codeChanged) From 975d0de83c60aedea6ca6d702d5c7f34e5f1a75a Mon Sep 17 00:00:00 2001 From: AyakorK Date: Fri, 25 Oct 2024 14:31:11 +0200 Subject: [PATCH 2/5] fix: Add a flag to change message one time and avoid repetition of it --- Assets/Scripts/WaitingTrapper.cs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/Assets/Scripts/WaitingTrapper.cs b/Assets/Scripts/WaitingTrapper.cs index 79684c30..abeeeb53 100644 --- a/Assets/Scripts/WaitingTrapper.cs +++ b/Assets/Scripts/WaitingTrapper.cs @@ -24,6 +24,7 @@ public class WaitingTrapper : MonoBehaviour private bool coroutineStarted = false; private bool gameStart = false; + private bool messageSet = false; void Start() { @@ -49,6 +50,7 @@ private void OnTrapperJoin() { Debug.Log("Trapper joined the room!"); trapperJoined = true; + messageSet = false; // Reset flag to update the message } private void OnRoomCreate(SocketIOResponse response) @@ -161,15 +163,10 @@ void Update() StartCoroutine(StartCountdown(5)); // Start countdown for traps } - if (trapperJoined && gamePaused && !coroutineStarted) + if (gamePaused && !coroutineStarted && !messageSet) { - trapperJoined = false; - messageText.text = "Waiting for the game to start..."; - } - - if (gamePaused && !coroutineStarted) - { - messageText.text = "Waiting for trappers to join..."; + messageText.text = trapperJoined ? "Waiting for the game to start..." : "Waiting for trappers to join..."; + messageSet = true; } if (codeChanged) From ddff81607b3c49d6f85bedea0fa39703e79441fc Mon Sep 17 00:00:00 2001 From: AyakorK Date: Fri, 25 Oct 2024 17:22:49 +0200 Subject: [PATCH 3/5] feat: Add the creation of the room when instanciating the WaitingRoom process --- Assets/Scripts/Map Control/DoorSystem.cs | 8 ++++++++ Assets/Scripts/UI/MainMenu.cs | 2 -- Assets/Scripts/WaitingTrapper.cs | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Assets/Scripts/Map Control/DoorSystem.cs b/Assets/Scripts/Map Control/DoorSystem.cs index 1d9378fa..d10fd3f5 100644 --- a/Assets/Scripts/Map Control/DoorSystem.cs +++ b/Assets/Scripts/Map Control/DoorSystem.cs @@ -12,6 +12,8 @@ public class RoomManager : MonoBehaviour private SocketIOUnity clientSocket; public static bool isInCorridorX7 = false; + private bool isGameCreated = false; + private void Start() { clientSocket = SocketManager.Instance.ClientSocket; @@ -56,6 +58,12 @@ private void OnTriggerEnter2D(Collider2D other) } if (newRoom.name.Contains("CorridorX7")) { + if (!isGameCreated) + { + isGameCreated = true; + clientSocket.Emit("rooms:create"); + } + gameTracker.SpawnCorridorEvents(); gameTracker.NextStage(); isInCorridorX7 = true; diff --git a/Assets/Scripts/UI/MainMenu.cs b/Assets/Scripts/UI/MainMenu.cs index d0fe65b9..e978a109 100644 --- a/Assets/Scripts/UI/MainMenu.cs +++ b/Assets/Scripts/UI/MainMenu.cs @@ -23,8 +23,6 @@ public void QuitGame() public async void StartRoom() { - await clientSocket.EmitAsync("rooms:create"); - SceneManager.LoadScene(selectedScene); } } diff --git a/Assets/Scripts/WaitingTrapper.cs b/Assets/Scripts/WaitingTrapper.cs index abeeeb53..764cf74c 100644 --- a/Assets/Scripts/WaitingTrapper.cs +++ b/Assets/Scripts/WaitingTrapper.cs @@ -37,7 +37,7 @@ private void RegisterSocketEvents() { clientSocket.On("trapper:join", _ => OnTrapperJoin()); clientSocket.On("rooms:start", _ => OnStartGame()); - clientSocket.On("rooms:create", response => OnRoomCreate(response)); + clientSocket.On("rooms:code", response => OnRoomCreate(response)); } private void OnStartGame() From b3c971e83b50cd21c0c9f7608473893123d4c683 Mon Sep 17 00:00:00 2001 From: AyakorK Date: Fri, 25 Oct 2024 19:41:58 +0200 Subject: [PATCH 4/5] feat: Try to remove the Door collider before game has started --- Assets/Prefabs/RoomSystem/Doors/Door.prefab | 4 ++-- Assets/Scripts/WaitingTrapper.cs | 24 ++++++++++++++++++++- ProjectSettings/TagManager.asset | 1 + 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/Assets/Prefabs/RoomSystem/Doors/Door.prefab b/Assets/Prefabs/RoomSystem/Doors/Door.prefab index d110ad41..b3d5a566 100644 --- a/Assets/Prefabs/RoomSystem/Doors/Door.prefab +++ b/Assets/Prefabs/RoomSystem/Doors/Door.prefab @@ -13,7 +13,7 @@ GameObject: - component: {fileID: 3423160260848129340} m_Layer: 0 m_Name: point_of_spawn - m_TagString: Untagged + m_TagString: SpawnPoint m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 2147483647 @@ -163,7 +163,7 @@ SpriteRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: -1791178601 - m_SortingLayer: 3 + m_SortingLayer: 4 m_SortingOrder: 60 m_Sprite: {fileID: 1393557473, guid: 839b37de7ba78b044b490bdf2ac7c489, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Scripts/WaitingTrapper.cs b/Assets/Scripts/WaitingTrapper.cs index 764cf74c..7afb64da 100644 --- a/Assets/Scripts/WaitingTrapper.cs +++ b/Assets/Scripts/WaitingTrapper.cs @@ -44,6 +44,7 @@ private void OnStartGame() { gameStart = true; ResumePlayerMovement(); + unlockDoor(); } private void OnTrapperJoin() @@ -55,7 +56,7 @@ private void OnTrapperJoin() private void OnRoomCreate(SocketIOResponse response) { - Debug.Log("Room created!"); + lockDoor(); JArray roomDataArray = JArray.Parse(response.ToString()); roomCode = roomDataArray[0]["code"].Value(); @@ -65,6 +66,27 @@ private void OnRoomCreate(SocketIOResponse response) } } + private void lockDoor() + { + Debug.Log("Locking door..."); + GameObject spawnOfPoint = GameObject.FindWithTag("SpawnPoint"); + if (spawnOfPoint == null) + { + Debug.LogError("Spawn point not found!"); + return; + } + spawnOfPoint.GetComponent().enabled = false; + Debug.Log("Door locked"); + Debug.Log(spawnOfPoint.GetComponent().enabled); + } + + + private void unlockDoor() + { + GameObject spawnOfPoint = GameObject.FindWithTag("SpawnPoint"); + spawnOfPoint.GetComponent().enabled = true; + } + private void CopyRoomCodeToClipboard() { try diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index 8f7fda8f..45faae1a 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -11,6 +11,7 @@ TagManager: - Props - Dialogue - Temporary + - SpawnPoint layers: - Default - TransparentFX From dbb09c856917b7569d985dc4367d13da7b838820 Mon Sep 17 00:00:00 2001 From: Thomlam Date: Fri, 25 Oct 2024 20:42:58 +0200 Subject: [PATCH 5/5] fix: fix lock and door system, add waiting room, last fix for dialogue system for pity --- Assets/Prefabs/Main Camera.prefab | 15 ------- .../RoomSystem/Corridor/CorridorX7.prefab | 8 ++++ .../UI/DialogueBox/Dialogue_vertical.prefab | 2 +- Assets/Scenes/EmptyRoom_2.unity | 5 --- Assets/Scenes/UI/Menu.unity | 45 +++++++++++++++++++ Assets/Scripts/UI/Dialogue/DialogueManager.cs | 3 +- Assets/Scripts/WaitingTrapper.cs | 25 ++++++----- 7 files changed, 69 insertions(+), 34 deletions(-) diff --git a/Assets/Prefabs/Main Camera.prefab b/Assets/Prefabs/Main Camera.prefab index edcedeb6..cf56eff5 100644 --- a/Assets/Prefabs/Main Camera.prefab +++ b/Assets/Prefabs/Main Camera.prefab @@ -894,7 +894,6 @@ GameObject: m_Component: - component: {fileID: 588703733079249260} - component: {fileID: 7693705571979151744} - - component: {fileID: 8154041069363273802} - component: {fileID: 6680414142456925996} m_Layer: 0 m_Name: Main Camera @@ -970,20 +969,6 @@ Camera: m_OcclusionCulling: 0 m_StereoConvergence: 10 m_StereoSeparation: 0.022 ---- !u!114 &8154041069363273802 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4190906850344886629} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b169decaa258d8040aa25a280b495cad, type: 3} - m_Name: - m_EditorClassIdentifier: - mainCamera: {fileID: 7693705571979151744} - gridObject: {fileID: 0} --- !u!114 &6680414142456925996 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/RoomSystem/Corridor/CorridorX7.prefab b/Assets/Prefabs/RoomSystem/Corridor/CorridorX7.prefab index 6c06b6e8..09757c83 100644 --- a/Assets/Prefabs/RoomSystem/Corridor/CorridorX7.prefab +++ b/Assets/Prefabs/RoomSystem/Corridor/CorridorX7.prefab @@ -2245,6 +2245,10 @@ PrefabInstance: propertyPath: newRoomPrefab value: objectReference: {fileID: 6459706332820108789, guid: 35bed5d2a54129845bcff6b3abaa746b, type: 3} + - target: {fileID: 6515928562466559834, guid: 7c74a234ff40ec9449b23765de7189b9, type: 3} + propertyPath: m_TagString + value: SpawnPoint + objectReference: {fileID: 0} - target: {fileID: 6885118029593512627, guid: 7c74a234ff40ec9449b23765de7189b9, type: 3} propertyPath: m_LocalPosition.x value: -0.5 @@ -2289,6 +2293,10 @@ PrefabInstance: propertyPath: m_Name value: Door objectReference: {fileID: 0} + - target: {fileID: 8481200938870355337, guid: 7c74a234ff40ec9449b23765de7189b9, type: 3} + propertyPath: m_TagString + value: Untagged + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] diff --git a/Assets/Prefabs/UI/DialogueBox/Dialogue_vertical.prefab b/Assets/Prefabs/UI/DialogueBox/Dialogue_vertical.prefab index 1d71abca..bfadd6cb 100644 --- a/Assets/Prefabs/UI/DialogueBox/Dialogue_vertical.prefab +++ b/Assets/Prefabs/UI/DialogueBox/Dialogue_vertical.prefab @@ -38,7 +38,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1292551081983489310, guid: 2915528a48cff2a4f972254b123a3e0b, type: 3} propertyPath: m_PresetInfoIsWorld - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1675780870698966960, guid: 2915528a48cff2a4f972254b123a3e0b, type: 3} propertyPath: m_SizeDelta.y diff --git a/Assets/Scenes/EmptyRoom_2.unity b/Assets/Scenes/EmptyRoom_2.unity index e98e490e..ad378ae3 100644 --- a/Assets/Scenes/EmptyRoom_2.unity +++ b/Assets/Scenes/EmptyRoom_2.unity @@ -171,11 +171,6 @@ MonoBehaviour: blacksmithPrefab: {fileID: 181369798890271941, guid: e4326c266f4d3fc4482daabdf57ea4f3, type: 3} altarPrefab: {fileID: 4671168421616932687, guid: 52d0b7df8b3db394988157e997abbc1f, type: 3} waitingRoomPrefab: {fileID: 6577988205983815687, guid: 56b8e144977b94114b4eb95ac32bfe84, type: 3} ---- !u!4 &1052255987 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 2407411435886637468, guid: b95a2840877394746b9c857ec618031d, type: 3} - m_PrefabInstance: {fileID: 5122644399039610851} - m_PrefabAsset: {fileID: 0} --- !u!1001 &1122242796 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/UI/Menu.unity b/Assets/Scenes/UI/Menu.unity index 957fefe7..8763dd0e 100644 --- a/Assets/Scenes/UI/Menu.unity +++ b/Assets/Scenes/UI/Menu.unity @@ -1134,6 +1134,7 @@ GameObject: - component: {fileID: 1617862431} - component: {fileID: 1617862430} - component: {fileID: 1617862429} + - component: {fileID: 1617862432} m_Layer: 0 m_Name: Main Camera m_TagString: MainCamera @@ -1215,6 +1216,50 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1617862432 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1617862428} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 0 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 --- !u!1 &1905536008 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/UI/Dialogue/DialogueManager.cs b/Assets/Scripts/UI/Dialogue/DialogueManager.cs index fe6fdb13..c9bcfcc5 100644 --- a/Assets/Scripts/UI/Dialogue/DialogueManager.cs +++ b/Assets/Scripts/UI/Dialogue/DialogueManager.cs @@ -80,6 +80,7 @@ public void Update() if (godPrefabDictionary.TryGetValue(godId, out GodInfo godInfo)) { + Debug.Log("NTR"); EnqueueMessage(godInfo.godSprite, messageText, godInfo.godName); } else @@ -102,7 +103,7 @@ private IEnumerator ProcessMessageQueue() if (messageQueue.Count > 0 && !isDisplayingMessage) { GodMessage nextMessage = messageQueue.Dequeue(); - + Debug.Log("NTR"); DisplayDialogue(nextMessage.godSprite, nextMessage.dialogue, nextMessage.title); isDisplayingMessage = true; diff --git a/Assets/Scripts/WaitingTrapper.cs b/Assets/Scripts/WaitingTrapper.cs index 7afb64da..9fa5734f 100644 --- a/Assets/Scripts/WaitingTrapper.cs +++ b/Assets/Scripts/WaitingTrapper.cs @@ -26,8 +26,11 @@ public class WaitingTrapper : MonoBehaviour private bool gameStart = false; private bool messageSet = false; + public GameObject spawnOfPoint; + void Start() { + clientSocket = SocketManager.Instance.ClientSocket; CreateOverlay(); RegisterSocketEvents(); @@ -43,7 +46,6 @@ private void RegisterSocketEvents() private void OnStartGame() { gameStart = true; - ResumePlayerMovement(); unlockDoor(); } @@ -56,35 +58,32 @@ private void OnTrapperJoin() private void OnRoomCreate(SocketIOResponse response) { - lockDoor(); JArray roomDataArray = JArray.Parse(response.ToString()); roomCode = roomDataArray[0]["code"].Value(); - if (!string.IsNullOrEmpty(roomCode)) { codeChanged = true; } + lockDoor(); + } private void lockDoor() { - Debug.Log("Locking door..."); - GameObject spawnOfPoint = GameObject.FindWithTag("SpawnPoint"); if (spawnOfPoint == null) { Debug.LogError("Spawn point not found!"); return; } spawnOfPoint.GetComponent().enabled = false; - Debug.Log("Door locked"); - Debug.Log(spawnOfPoint.GetComponent().enabled); } private void unlockDoor() { - GameObject spawnOfPoint = GameObject.FindWithTag("SpawnPoint"); spawnOfPoint.GetComponent().enabled = true; + Destroy(overlay.transform.parent.gameObject); + Destroy(this); } private void CopyRoomCodeToClipboard() @@ -161,8 +160,7 @@ private void ResumePlayerMovement() { playerMovement.enabled = true; } - Destroy(overlay.transform.parent.gameObject); - Destroy(this); + } private IEnumerator StartCountdown(int countdownTime) @@ -173,18 +171,21 @@ private IEnumerator StartCountdown(int countdownTime) yield return new WaitForSecondsRealtime(1); countdownTime--; } - ResumePlayerMovement(); + unlockDoor(); } void Update() { + spawnOfPoint = GameObject.FindGameObjectWithTag("SpawnPoint"); if (gameStart) { gameStart = false; coroutineStarted = true; StartCoroutine(StartCountdown(5)); // Start countdown for traps } - + if ( spawnOfPoint == GameObject.FindGameObjectWithTag("SpawnPoint") && !coroutineStarted){ + lockDoor(); + } if (gamePaused && !coroutineStarted && !messageSet) { messageText.text = trapperJoined ? "Waiting for the game to start..." : "Waiting for trappers to join...";