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 dd3987aa..09757c83 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 @@ -2258,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 @@ -2302,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/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/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 9b7bd1d9..ad378ae3 100644 --- a/Assets/Scenes/EmptyRoom_2.unity +++ b/Assets/Scenes/EmptyRoom_2.unity @@ -170,6 +170,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!1001 &1122242796 PrefabInstance: m_ObjectHideFlags: 0 @@ -178,6 +179,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/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/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/Map Control/DoorSystem.cs b/Assets/Scripts/Map Control/DoorSystem.cs index 0f7e33b6..9c198a4c 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/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/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 130a5144..9fa5734f 100644 --- a/Assets/Scripts/WaitingTrapper.cs +++ b/Assets/Scripts/WaitingTrapper.cs @@ -23,36 +23,67 @@ public class WaitingTrapper : MonoBehaviour private bool codeChanged = false; private bool coroutineStarted = false; + private bool gameStart = false; + private bool messageSet = false; + + public GameObject spawnOfPoint; + void Start() { + clientSocket = SocketManager.Instance.ClientSocket; CreateOverlay(); - BlockPlayerMovement(); RegisterSocketEvents(); } private void RegisterSocketEvents() { clientSocket.On("trapper:join", _ => OnTrapperJoin()); - clientSocket.On("rooms:create", response => OnRoomCreate(response)); + clientSocket.On("rooms:start", _ => OnStartGame()); + clientSocket.On("rooms:code", response => OnRoomCreate(response)); + } + + private void OnStartGame() + { + gameStart = true; + unlockDoor(); } private void OnTrapperJoin() { Debug.Log("Trapper joined the room!"); trapperJoined = true; + messageSet = false; // Reset flag to update the message } private void OnRoomCreate(SocketIOResponse response) { - Debug.Log("Room created!"); JArray roomDataArray = JArray.Parse(response.ToString()); roomCode = roomDataArray[0]["code"].Value(); - if (!string.IsNullOrEmpty(roomCode)) { codeChanged = true; } + lockDoor(); + + } + + private void lockDoor() + { + if (spawnOfPoint == null) + { + Debug.LogError("Spawn point not found!"); + return; + } + spawnOfPoint.GetComponent().enabled = false; + } + + + private void unlockDoor() + { + spawnOfPoint.GetComponent().enabled = true; + Destroy(overlay.transform.parent.gameObject); + Destroy(this); } private void CopyRoomCodeToClipboard() @@ -122,15 +153,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; @@ -138,34 +160,36 @@ private void ResumePlayerMovement() { playerMovement.enabled = true; } - Destroy(overlay.transform.parent.gameObject); - Destroy(this); + } 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--; } - ResumePlayerMovement(); + unlockDoor(); } void Update() { - if (trapperJoined) + spawnOfPoint = GameObject.FindGameObjectWithTag("SpawnPoint"); + if (gameStart) { - trapperJoined = false; // Reset the flag + gameStart = false; coroutineStarted = true; StartCoroutine(StartCountdown(5)); // Start countdown for traps } - - if (gamePaused && !coroutineStarted) + if ( spawnOfPoint == GameObject.FindGameObjectWithTag("SpawnPoint") && !coroutineStarted){ + lockDoor(); + } + if (gamePaused && !coroutineStarted && !messageSet) { - messageText.text = "Waiting for trapper to join..."; + messageText.text = trapperJoined ? "Waiting for the game to start..." : "Waiting for trappers to join..."; + messageSet = true; } if (codeChanged) 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