fix lorsque l'on doit poser un carré
continuous-integration/drone/push Build is passing Details

pull/91/head
Thomas Chazot 1 year ago
parent b380f7d927
commit 3b09b39a12

@ -28,13 +28,15 @@ interface MyGraphComponentProps {
setNetwork: (network: Network) => void setNetwork: (network: Network) => void
showLast: boolean showLast: boolean
setNetworkEnigme: (networkEnigme: Map<number, Pair<Indice, boolean>[]>) => void setNetworkEnigme: (networkEnigme: Map<number, Pair<Indice, boolean>[]>) => void
askedWrong: boolean
setAskedWrong: (askedWrong: boolean) => void
setPlayerIndex: (playerIndex: number) => void setPlayerIndex: (playerIndex: number) => void
} }
let lastAskingPlayer = 0 let lastAskingPlayer = 0
let lastNodeId = -1 let lastNodeId = -1
let first = true let first = true
let askedWrong = false let askedWrongLocal = false
let mapIndexPersons: Map<number, Person[]> = new Map<number, Person[]>() let mapIndexPersons: Map<number, Person[]> = new Map<number, Person[]>()
let touchedPlayer = -1 let touchedPlayer = -1
let botIndex = -1 let botIndex = -1
@ -50,7 +52,7 @@ let endgame= false
let firstHistory = true let firstHistory = true
const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleShowTurnBar, handleTurnBarTextChange, playerTouched, setPlayerTouched, changecptTour, solo, isDaily, isEasy, addToHistory, showLast, setNetwork, setNetworkEnigme, setPlayerIndex}) => { const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleShowTurnBar, handleTurnBarTextChange, playerTouched, setPlayerTouched, changecptTour, solo, isDaily, isEasy, addToHistory, showLast, setNetwork, setNetworkEnigme, setPlayerIndex, askedWrong, setAskedWrong}) => {
let cptTour: number = 0 let cptTour: number = 0
//* Gestion du temps : //* Gestion du temps :
@ -85,12 +87,12 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
useEffect(() =>{ useEffect(() =>{
touchedPlayer=playerTouched touchedPlayer=playerTouched
if (touchedPlayer == -1){ if (touchedPlayer == -1){
if (!askedWrong){ if (!askedWrongLocal){
socket.emit("put correct background", socket.id) socket.emit("put correct background", socket.id)
} }
} }
else if (touchedPlayer < players.length && touchedPlayer>=0){ else if (touchedPlayer < players.length && touchedPlayer>=0){
if(!askedWrong){ if(!askedWrongLocal){
socket.emit("put correct background", socket.id) socket.emit("put correct background", socket.id)
socket.emit("put grey background", socket.id, touchedPlayer) socket.emit("put grey background", socket.id, touchedPlayer)
} }
@ -432,7 +434,8 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
}) })
socket.on("asked wrong", () =>{ socket.on("asked wrong", () =>{
askedWrong = true askedWrongLocal= true
setAskedWrong(true)
askedWrongBot=true askedWrongBot=true
handleShowTurnBar(true) handleShowTurnBar(true)
handleTurnBarTextChange("Mauvais choix, posez un carré !") handleTurnBarTextChange("Mauvais choix, posez un carré !")
@ -566,7 +569,8 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
first = true first = true
cptHistory = 0 cptHistory = 0
askedWrong=false askedWrongLocal=false
setAskedWrong(false)
askedWrongBot=false askedWrongBot=false
endgame = true endgame = true
firstHistory=true firstHistory=true
@ -647,8 +651,7 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
setNodeIdData(params.nodes[0]) setNodeIdData(params.nodes[0])
// addToHistory("Le joueur a cliqué") //! TEST DEBUG // addToHistory("Le joueur a cliqué") //! TEST DEBUG
if (!solo){ if (!solo){
if (askedWrong){ if (askedWrongLocal){
//@ts-ignore
const person = personNetwork?.getPersons().find((p) => p.getId() == params.nodes[0]) const person = personNetwork?.getPersons().find((p) => p.getId() == params.nodes[0])
if (person !== undefined && indice !== null){ if (person !== undefined && indice !== null){
const tester = IndiceTesterFactory.Create(indice) const tester = IndiceTesterFactory.Create(indice)
@ -661,7 +664,8 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
socket.emit("put correct background", socket.id) socket.emit("put correct background", socket.id)
touchedPlayer=-1 touchedPlayer=-1
askedPersons.push(person) askedPersons.push(person)
askedWrong = false askedWrongLocal=false
setAskedWrong(false)
} }
} }
} }

@ -18,11 +18,12 @@ interface PlayerStatusProps {
playerTouched: number playerTouched: number
showCircle: boolean showCircle: boolean
playerIndex: number playerIndex: number
askedWrong: boolean
} }
let touchedPlayer = -1 let touchedPlayer = -1
//@ts-ignore //@ts-ignore
const PersonStatus: React.FC<PlayerStatusProps> = ({img = Person, state= Person, name = "Dummy", index, playerTouched, setPlayerTouched, showCircle, playerIndex}) => { const PersonStatus: React.FC<PlayerStatusProps> = ({img = Person, state= Person, name = "Dummy", index, playerTouched, setPlayerTouched, showCircle, playerIndex, askedWrong}) => {
const theme=useTheme(); const theme=useTheme();
const {players, actualPlayerIndex} = useGame() const {players, actualPlayerIndex} = useGame()
if (players[index] instanceof Bot){ if (players[index] instanceof Bot){
@ -48,7 +49,7 @@ const PersonStatus: React.FC<PlayerStatusProps> = ({img = Person, state= Person,
}, [playerIndex]) }, [playerIndex])
function onTouch(){ function onTouch(){
if (IsActualPlayer){ if (IsActualPlayer && !askedWrong){
setPlayerTouched(index) setPlayerTouched(index)
} }
} }

@ -15,11 +15,18 @@ interface PlayerListProps {
playerTouched: number playerTouched: number
setPlayerTouched: (newPlayerTouch: number) => void; setPlayerTouched: (newPlayerTouch: number) => void;
playerIndex: number playerIndex: number
askedWrong: boolean
} }
const PlayerList: React.FC<PlayerListProps> = ({ players, playerTouched, setPlayerTouched, playerIndex}) => { const PlayerList: React.FC<PlayerListProps> = ({ players, playerTouched, setPlayerTouched, playerIndex, askedWrong}) => {
const theme = useTheme(); const theme = useTheme();
function askEveryone(){
if (!askedWrong){
setPlayerTouched(players.length)
}
}
return ( return (
<div> <div>
<div style={{ display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: '16px' }}> <div style={{ display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: '16px' }}>
@ -37,7 +44,8 @@ const PlayerList: React.FC<PlayerListProps> = ({ players, playerTouched, setPlay
setPlayerTouched={setPlayerTouched} setPlayerTouched={setPlayerTouched}
index={index} index={index}
showCircle={true} showCircle={true}
playerIndex={playerIndex}/> playerIndex={playerIndex}
askedWrong={askedWrong}/>
)) ))
} }
</div> </div>
@ -57,7 +65,7 @@ const PlayerList: React.FC<PlayerListProps> = ({ players, playerTouched, setPlay
border: "solid 1px", border: "solid 1px",
textAlign: "center", textAlign: "center",
padding: "10px"}} padding: "10px"}}
onClick={() => setPlayerTouched(players.length)}>Ask everyone</button> onClick={() => askEveryone()}>Ask everyone</button>
): ):
( (
<button style={{ <button style={{
@ -67,7 +75,7 @@ const PlayerList: React.FC<PlayerListProps> = ({ players, playerTouched, setPlay
border: "solid 1px", border: "solid 1px",
textAlign: "center", textAlign: "center",
padding: "10px"}} padding: "10px"}}
onClick={() => setPlayerTouched(players.length)}>Ask everyone</button> onClick={() => askEveryone()}>Ask everyone</button>
) )
} }
</div> </div>

@ -150,7 +150,7 @@ function EndGame() {
<div className="playerContainer" key={index}> <div className="playerContainer" key={index}>
{player.id !== winner?.id && ( {player.id !== winner?.id && (
<div> <div>
<PersonStatus img={Person} state={Person} key={index} name={player.pseudo} playerTouched={1} setPlayerTouched={() => {}} index={index} playerIndex={-2} showCircle={false}/> <PersonStatus img={Person} state={Person} key={index} name={player.pseudo} playerTouched={1} setPlayerTouched={() => {}} index={index} playerIndex={-2} showCircle={false} askedWrong={false}/>
{!indicenull && (<h6 className='indiceDisplay'>{indices[players.findIndex((p) => p.id == player?.id)].ToString("fr")}</h6>)} {!indicenull && (<h6 className='indiceDisplay'>{indices[players.findIndex((p) => p.id == player?.id)].ToString("fr")}</h6>)}
</div> </div>
)} )}

@ -81,6 +81,7 @@ const InGame = ({locale, changeLocale}) => {
//* Historique //* Historique
const [history, setHistory] = useState<string[]>([]); const [history, setHistory] = useState<string[]>([]);
const [showLast, setShowLast] = useState(false) const [showLast, setShowLast] = useState(false)
const [askedWrong, setAskedWrong] = useState(false)
// Fonction pour ajouter un élément à l'historique // Fonction pour ajouter un élément à l'historique
const addToHistory = (message: string) => { const addToHistory = (message: string) => {
@ -92,6 +93,10 @@ const InGame = ({locale, changeLocale}) => {
setShowLast(!showLast); setShowLast(!showLast);
} }
const setAskedWrongData = (askedWrong: boolean) => {
setAskedWrong(askedWrong)
}
useEffect(() => { useEffect(() => {
const historyContainer = document.getElementById('history-container'); const historyContainer = document.getElementById('history-container');
if (historyContainer) { if (historyContainer) {
@ -276,7 +281,9 @@ const InGame = ({locale, changeLocale}) => {
setNetwork={setNetworkData} setNetwork={setNetworkData}
setNetworkEnigme={setNetworkEnigmeData} setNetworkEnigme={setNetworkEnigmeData}
showLast={showLast} showLast={showLast}
setPlayerIndex={setPlayerIndexData}/> setPlayerIndex={setPlayerIndexData}
askedWrong={askedWrong}
setAskedWrong={setAskedWrongData}/>
</div> </div>
@ -405,7 +412,7 @@ const InGame = ({locale, changeLocale}) => {
{ !IsSolo && { !IsSolo &&
<div className='playerlistDiv'> <div className='playerlistDiv'>
<PlayerList players={players} setPlayerTouched={handleSetPlayerTouched} playerTouched={playerTouched} playerIndex={playerIndex}/> <PlayerList players={players} setPlayerTouched={handleSetPlayerTouched} playerTouched={playerTouched} playerIndex={playerIndex} askedWrong={askedWrong}/>
</div> </div>
} }

Loading…
Cancel
Save