diff --git a/cryptide_project/server/server.js b/cryptide_project/server/server.js index f1a5414..faee172 100644 --- a/cryptide_project/server/server.js +++ b/cryptide_project/server/server.js @@ -48,15 +48,23 @@ io.on('connection', (socket) => { }) socket.on("lobby created", () =>{ - io.to(socket.id).emit("lobby created", 134) + io.to(socket.id).emit("lobby created", Math.floor(Math.random() * 10000)) }) socket.on("already asked", (nodeId, askingPlayer, askedPlayer) =>{ io.to(askingPlayer.id).emit("already asked", nodeId, askedPlayer) }) - socket.on("ask player", (nodeId, playerId, askingPlayer) =>{ - io.to(playerId).emit("asked", nodeId, askingPlayer) + socket.on("ask player", (nodeId, playerId, askingPlayer, askingPlayerIndex) =>{ + io.to(playerId).emit("asked", nodeId, askingPlayer, askingPlayerIndex) + }) + + socket.on("asked all 1by1", (id, playerId) =>{ + io.to(playerId).emit("asked all", id) + }) + + socket.on("asked wrong", (askingPlayer) =>{ + io.to(askingPlayer.id).emit("asked wrong") }) socket.on("disconnect", () =>{ diff --git a/cryptide_project/src/Components/ChoiceBar.tsx b/cryptide_project/src/Components/ChoiceBar.tsx index 74e22bd..96422d2 100644 --- a/cryptide_project/src/Components/ChoiceBar.tsx +++ b/cryptide_project/src/Components/ChoiceBar.tsx @@ -13,11 +13,11 @@ const ChoiceBar = () => { function askPlayer(playerId: string){ if (nodeId !== null){ - socket.emit("ask player", nodeId, playerId, players.find((p) => p.id === socket.id)) + socket.emit("ask player", nodeId, playerId, players.find((p) => p.id === socket.id, actualPlayerIndex)) } } - function askEveryone(){ + async function askEveryone(){ if (nodeId !== null){ const person = personNetwork?.getPersons().find((p) => p.getId() == nodeId) if (person != undefined){ @@ -36,6 +36,8 @@ const ChoiceBar = () => { } const tester = IndiceTesterFactory.Create(indices[playerIndex]) const works = tester.Works(person) + await delay(500); + socket.emit("asked all 1by1", person.getId(), players[playerIndex].id) socket.emit("node checked", nodeId, works, positionToColor(playerIndex), room, nextPlayerIndex) if(!works){ return @@ -47,11 +49,15 @@ const ChoiceBar = () => { } } + function delay(ms: number) { + return new Promise(resolve => setTimeout(resolve, ms)); + } + return (

Quel joueur voulez-vous interroger ?

- + {players.map((player, index) => ( player.id !== socket.id &&
diff --git a/cryptide_project/src/Components/TurnBar.tsx b/cryptide_project/src/Components/TurnBar.tsx index 155bbce..dae6c18 100644 --- a/cryptide_project/src/Components/TurnBar.tsx +++ b/cryptide_project/src/Components/TurnBar.tsx @@ -1,7 +1,11 @@ import React from "react"; import { useTheme } from "../Style/ThemeContext"; -const TurnBar = () => { +interface TurnBarProps{ + text: string +} + +const TurnBar: React.FC = ({text})=> { const theme = useTheme(); return (
{ borderColor: theme.colors.secondary }}> {/* texte changeable et a traduire */} -

Dummy, à vous de jouer !

+

{text}

); }; diff --git a/cryptide_project/src/Contexts/GameContext.tsx b/cryptide_project/src/Contexts/GameContext.tsx index a725498..380d7d3 100644 --- a/cryptide_project/src/Contexts/GameContext.tsx +++ b/cryptide_project/src/Contexts/GameContext.tsx @@ -15,6 +15,7 @@ interface GameContextProps { actualPlayerIndex: number; turnPlayerIndex: number; room: string; + onlyFalse: boolean setIndicesData: (newIndices: Indice[]) => void; setIndiceData: (newIndice: Indice) => void; setPersonData: (newPerson: Person) => void; @@ -25,6 +26,7 @@ interface GameContextProps { setActualPlayerIndexData: (newActualPlayerIndex: number) => void; setTurnPlayerIndexData: (newTurnPlayerIndex: number) => void; setRoomData: (newRoom: string) => void; + setOnlyFalseData: (newOnlyFalse: boolean) => void } const GameContext = createContext(undefined); @@ -44,6 +46,7 @@ export const GameProvider: React.FC = ({ children }) => { const [actualPlayerIndex, setActualPlayerIndex] = useState(-1) const [turnPlayerIndex, setTurnPlayerIndex] = useState(-1) const [room, setRoom] = useState("") + const [onlyFalse, setOnlyFalse] = useState(false) const setIndicesData = (newIndices: Indice[]) => { @@ -87,8 +90,12 @@ export const GameProvider: React.FC = ({ children }) => { setRoom(newRoom) } + const setOnlyFalseData = (newOnlyFalse: boolean) =>{ + setOnlyFalse(newOnlyFalse) + } + return ( - + {children} ); diff --git a/cryptide_project/src/Pages/InGame.tsx b/cryptide_project/src/Pages/InGame.tsx index ea3b1c2..db37efe 100644 --- a/cryptide_project/src/Pages/InGame.tsx +++ b/cryptide_project/src/Pages/InGame.tsx @@ -42,7 +42,7 @@ const InGame = ({locale, changeLocale}) => { const [showChoiceBar, setShowChoiceBar] = useState(false); const [showTurnBar, setShowTurnBar] = useState(false); - + const [turnBarText, setTurnBarText] = useState(""); const handleNodeClick = (shouldShowChoiceBar: boolean) => { setShowChoiceBar(shouldShowChoiceBar); @@ -50,9 +50,12 @@ const InGame = ({locale, changeLocale}) => { const handleShowTurnBar = (shouldShowTurnBar: boolean) => { - console.log("je passe bien ici avec : " + shouldShowTurnBar) setShowTurnBar(shouldShowTurnBar); }; + + const handleTurnBarTextChange = (newTurnBarText: string) =>{ + setTurnBarText(newTurnBarText) + } /* offcanvas */ //? faire une fonction pour close et show en fonction de l'etat du canva ? @@ -109,9 +112,9 @@ const InGame = ({locale, changeLocale}) => { return (
- {showTurnBar && } + {showTurnBar && }
- +