@ -66,6 +66,8 @@ let firstPlayer = 0
let cptBug = 0
let cptBug = 0
let cptUseEffect = 0
let cptUseEffect = 0
let testPlayers : Player [ ] = [ ]
let testPlayers : Player [ ] = [ ]
let testTemps = 0
let testFirst = false
const MyGraphComponent : React.FC < MyGraphComponentProps > = ( { onNodeClick , handleShowTurnBar , handleTurnBarTextChange , playerTouched , setPlayerTouched , changecptTour , solo , isDaily , isEasy , addToHistory , showLast , setNetwork , setNetworkEnigme , setPlayerIndex , askedWrong , setAskedWrong , importToPdf , setImportToPdf } ) = > {
const MyGraphComponent : React.FC < MyGraphComponentProps > = ( { onNodeClick , handleShowTurnBar , handleTurnBarTextChange , playerTouched , setPlayerTouched , changecptTour , solo , isDaily , isEasy , addToHistory , showLast , setNetwork , setNetworkEnigme , setPlayerIndex , askedWrong , setAskedWrong , importToPdf , setImportToPdf } ) = > {
@ -75,7 +77,7 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
let initMtn = 0
let initMtn = 0
const { isLoggedIn , user , manager } = useAuth ( ) ;
const { isLoggedIn , user , manager } = useAuth ( ) ;
const { indices , indice , person , personNetwork , setNodeIdData , players , setPlayersData , askedPersons , setActualPlayerIndexData , room , actualPlayerIndex , turnPlayerIndex , setTurnPlayerIndexData , setWinnerData , dailyEnigme , setNbCoupData , settempsData , setNetworkDataData , setSeedData , nodesC } = useGame ( ) ;
const { indices , indice , person , personNetwork , setNodeIdData , players , setPlayersData , askedPersons , setActualPlayerIndexData , room , actualPlayerIndex , turnPlayerIndex , setTurnPlayerIndexData , setWinnerData , dailyEnigme , setNbCoupData , settempsData , setNetworkDataData , setSeedData , nodesC , temps } = useGame ( ) ;
const params = new URLSearchParams ( window . location . search ) ;
const params = new URLSearchParams ( window . location . search ) ;
const navigate = useNavigate ( ) ;
const navigate = useNavigate ( ) ;
@ -84,10 +86,16 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
const [ elapsedTime , setElapsedTime ] = useState ( 0 ) ;
const [ elapsedTime , setElapsedTime ] = useState ( 0 ) ;
useEffect ( ( ) = > {
useEffect ( ( ) = > {
if ( testFirst ) {
testTemps = 0
endgame = false
testFirst = false
}
// Démarrez le timer au montage du composant
// Démarrez le timer au montage du composant
const intervalId = setInterval ( ( ) = > {
const intervalId = setInterval ( ( ) = > {
setElapsedTime ( ( prevElapsedTime ) = > prevElapsedTime + 0.5 ) ;
setElapsedTime ( ( prevElapsedTime ) = > prevElapsedTime + 0.5 ) ;
settempsData ( elapsedTime )
settempsData ( elapsedTime )
testTemps += 0.5
cptBug ++
cptBug ++
if ( cptBug > 10 ) {
if ( cptBug > 10 ) {
@ -99,6 +107,7 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
// Vérifiez si la durée est écoulée, puis arrêtez le timer
// Vérifiez si la durée est écoulée, puis arrêtez le timer
if ( endgame ) {
if ( endgame ) {
clearInterval ( intervalId ) ;
clearInterval ( intervalId ) ;
testTemps = 0
}
}
} , 500 ) ;
} , 500 ) ;
@ -762,7 +771,7 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
setLastIndex ( - 1 )
setLastIndex ( - 1 )
setPlayerTouched ( - 1 )
setPlayerTouched ( - 1 )
setWinnerData ( winner )
setWinnerData ( winner )
setElapsedTime ( 0 )
first = true
first = true
cptHistory = 0
cptHistory = 0
@ -779,10 +788,10 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
// console.log("nbGames: " + user.onlineStats.nbGames + " nbWins: " + user.onlineStats.nbWins);
// console.log("nbGames: " + user.onlineStats.nbGames + " nbWins: " + user.onlineStats.nbWins);
if ( winner . id === currentPlayer . id ) {
if ( winner . id === currentPlayer . id ) {
// Ajouter une victoire
// Ajouter une victoire
manager . userService . addOnlineStats ( user . pseudo , 1 , elapsedTime ) ;
manager . userService . addOnlineStats ( user . pseudo , 1 , testTemps - 0.5 ) ;
}
}
else {
else {
manager . userService . addOnlineStats ( user . pseudo , 0 , elapsedTime ) ;
manager . userService . addOnlineStats ( user . pseudo , 0 , testTemps - 0.5 ) ;
}
}
}
}
else {
else {
@ -795,6 +804,7 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
console . log ( e ) ;
console . log ( e ) ;
}
}
finally {
finally {
setElapsedTime ( 0 )
socket . off ( "end game" )
socket . off ( "end game" )
socket . off ( "asked all" )
socket . off ( "asked all" )
socket . off ( "opacity activated" )
socket . off ( "opacity activated" )
@ -970,6 +980,7 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
if ( person != undefined ) {
if ( person != undefined ) {
let index = 0
let index = 0
let works = true
let works = true
const statsTime = elapsedTime ;
for ( const i of indices ) {
for ( const i of indices ) {
const tester = IndiceTesterFactory . Create ( i )
const tester = IndiceTesterFactory . Create ( i )
const test = tester . Works ( person )
const test = tester . Works ( person )
@ -990,26 +1001,25 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
}
}
cptTour ++ ;
cptTour ++ ;
setNbCoupData ( cptTour )
setNbCoupData ( cptTour )
setElapsedTime ( 0 )
endgame = true
try {
try {
console . log ( "time: " + testTemps )
if ( user && isLoggedIn ) {
if ( user && isLoggedIn ) {
if ( solo ) {
if ( solo ) {
if ( isDaily ) {
if ( isDaily ) {
// TODO: verif difficulté et add les stats
// TODO: verif difficulté et add les stats
// TODO: verif pour facile et difficile, si réussi en one shot ou non
// TODO: verif pour facile et difficile, si réussi en one shot ou non
if ( isEasy ) {
if ( isEasy ) {
manager . userService . addEasyEnigmaStats ( user . pseudo , 1 , elapsedTime ) ;
manager . userService . addEasyEnigmaStats ( user . pseudo , 1 , testTemps - 0.5 ) ;
}
}
else {
else {
manager . userService . addHardEnigmaStats ( user . pseudo , 1 , elapsedTime ) ;
manager . userService . addHardEnigmaStats ( user . pseudo , 1 , testTemps - 0.5 ) ;
}
}
}
}
else {
else {
// add stats mastermind
// add stats mastermind
if ( user && user . mastermindStats ) {
if ( user && user . mastermindStats ) {
manager . userService . addMastermindStats ( user . pseudo , cptTour , elapsedTime ) ;
manager . userService . addMastermindStats ( user . pseudo , cptTour , testTemps - 0.5 ) ;
}
}
}
}
}
}
@ -1018,7 +1028,9 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
catch ( error ) {
catch ( error ) {
console . log ( error ) ;
console . log ( error ) ;
}
}
testFirst = true
setElapsedTime ( 0 )
endgame = true
navigate ( "/endgame?solo=true&daily=" + isDaily )
navigate ( "/endgame?solo=true&daily=" + isDaily )
}
}