pull/85/head
Pierre Ferreira 1 year ago
commit 5bdeb22490

@ -26,6 +26,7 @@ interface MyGraphComponentProps {
isEasy: boolean isEasy: boolean
setNetwork: (network: Network) => void setNetwork: (network: Network) => void
showLast: boolean showLast: boolean
setPlayerIndex: (playerIndex: number) => void
} }
let lastAskingPlayer = 0 let lastAskingPlayer = 0
@ -42,11 +43,12 @@ let cptHistory = 0
let lastNodes: NodePerson[] = [] let lastNodes: NodePerson[] = []
let cptEndgame = 0 let cptEndgame = 0
let firstEnigme = true let firstEnigme = true
let firstIndex = true
let endgame= false 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}) => { const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleShowTurnBar, handleTurnBarTextChange, playerTouched, setPlayerTouched, changecptTour, solo, isDaily, isEasy, addToHistory, showLast, setNetwork, setPlayerIndex}) => {
let cptTour: number = 0 let cptTour: number = 0
//* Gestion du temps : //* Gestion du temps :
@ -116,6 +118,11 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
}, [showLast]) }, [showLast])
let playerIndex: number = turnPlayerIndex let playerIndex: number = turnPlayerIndex
if (firstIndex){
firstIndex=false
setPlayerIndex(playerIndex)
}
let index = 0 let index = 0
for (let i=0; i<players.length; i++){ for (let i=0; i<players.length; i++){
if(players[i].id == socket.id){ if(players[i].id == socket.id){
@ -340,6 +347,7 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
if (node!=undefined){ if (node!=undefined){
onNodeClick(false) onNodeClick(false)
playerIndex = newPlayerIndex playerIndex = newPlayerIndex
setPlayerIndex(playerIndex)
if (mapIndexPersons.get(askedIndex)?.find((p) => p.getId() == id) == undefined){ if (mapIndexPersons.get(askedIndex)?.find((p) => p.getId() == id) == undefined){
const p = personNetwork.getPersons().find((p)=> p.getId() == id) const p = personNetwork.getPersons().find((p)=> p.getId() == id)
const tab = mapIndexPersons.get(askedIndex) const tab = mapIndexPersons.get(askedIndex)

@ -17,31 +17,45 @@ interface PlayerStatusProps {
setPlayerTouched: (newPlayerTouch: number) => void; setPlayerTouched: (newPlayerTouch: number) => void;
playerTouched: number playerTouched: number
showCircle: boolean showCircle: boolean
IsActualPlayer : boolean playerIndex: number
} }
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, IsActualPlayer}) => { const PersonStatus: React.FC<PlayerStatusProps> = ({img = Person, state= Person, name = "Dummy", index, playerTouched, setPlayerTouched, showCircle, playerIndex}) => {
const theme=useTheme(); const theme=useTheme();
const {players} = useGame() const {players, actualPlayerIndex} = useGame()
if (players[index] instanceof Bot){ if (players[index] instanceof Bot){
img = BotImg img = BotImg
} }
const [buffer, setBuffer] = useState("")
const [touchedPlayer, setTouchedPlayer] = useState(-2) const [touchedPlayer, setTouchedPlayer] = useState(-2)
useEffect(() =>{ useEffect(() =>{
setTouchedPlayer(playerTouched) setTouchedPlayer(playerTouched)
}, [playerTouched]) }, [playerTouched])
let isCurrentPlayer = true let IsActualPlayer = index != actualPlayerIndex
let buffer = ''
if (isCurrentPlayer){ useEffect(() => {
buffer = 'solid 1px green' if (playerIndex===index){
setBuffer('solid 1px green')
}
else{
setBuffer('')
}
}, [playerIndex])
function onTouch(){
if (IsActualPlayer){
setPlayerTouched(index)
}
} }
return ( return (
<div style={{border:buffer}}> <div style={{border:buffer}}>
<div className='centerDivV' onClick={() => setPlayerTouched(index)}> <div className='centerDivV' onClick={() => onTouch()}>
<img src={img} alt="player" height="60" width="60"/> <img src={img} alt="player" height="60" width="60"/>
<h5>{name}</h5> <h5>{name}</h5>

@ -14,9 +14,10 @@ interface PlayerListProps {
players: Player[]; players: Player[];
playerTouched: number playerTouched: number
setPlayerTouched: (newPlayerTouch: number) => void; setPlayerTouched: (newPlayerTouch: number) => void;
playerIndex: number
} }
const PlayerList: React.FC<PlayerListProps> = ({ players, playerTouched, setPlayerTouched}) => { const PlayerList: React.FC<PlayerListProps> = ({ players, playerTouched, setPlayerTouched, playerIndex}) => {
const theme = useTheme(); const theme = useTheme();
return ( return (
@ -36,7 +37,7 @@ const PlayerList: React.FC<PlayerListProps> = ({ players, playerTouched, setPlay
setPlayerTouched={setPlayerTouched} setPlayerTouched={setPlayerTouched}
index={index} index={index}
showCircle={true} showCircle={true}
IsActualPlayer={player.id!=socket.id}/> playerIndex={playerIndex}/>
)) ))
} }
</div> </div>

@ -98,7 +98,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} IsActualPlayer={false} showCircle={false}/> <PersonStatus img={Person} state={Person} key={index} name={player.pseudo} playerTouched={1} setPlayerTouched={() => {}} index={index} playerIndex={-2} showCircle={false}/>
<h6 className='indiceDisplay'>{indices[players.findIndex((p) => p.id == player?.id)].ToString("fr")}</h6> <h6 className='indiceDisplay'>{indices[players.findIndex((p) => p.id == player?.id)].ToString("fr")}</h6>
</div> </div>
)} )}

@ -102,6 +102,8 @@ const InGame = ({locale, changeLocale}) => {
const [showTurnBar, setShowTurnBar] = useState(false); const [showTurnBar, setShowTurnBar] = useState(false);
const [turnBarText, setTurnBarText] = useState(""); const [turnBarText, setTurnBarText] = useState("");
const [playerTouched, setPlayerTouched] = useState(-2) const [playerTouched, setPlayerTouched] = useState(-2)
const [playerIndex, setPlayerIndex] = useState(-2)
const [network, setNetwork] = useState<Network | null>(null) const [network, setNetwork] = useState<Network | null>(null)
@ -126,6 +128,10 @@ const InGame = ({locale, changeLocale}) => {
setTurnBarText(newTurnBarText) setTurnBarText(newTurnBarText)
} }
const setPlayerIndexData = (playerIndex: number) => {
setPlayerIndex(playerIndex)
}
const generateTEX = () => { const generateTEX = () => {
if (network != null && personNetwork != null && person != null){ if (network != null && personNetwork != null && person != null){
const tex = generateLatexCode(personNetwork, person, indices, network) const tex = generateLatexCode(personNetwork, person, indices, network)
@ -229,7 +235,8 @@ const InGame = ({locale, changeLocale}) => {
setPlayerTouched={handleSetPlayerTouched} setPlayerTouched={handleSetPlayerTouched}
playerTouched={playerTouched} playerTouched={playerTouched}
setNetwork={setNetworkData} setNetwork={setNetworkData}
showLast={showLast}/> showLast={showLast}
setPlayerIndex={setPlayerIndexData}/>
</div> </div>
@ -358,7 +365,7 @@ const InGame = ({locale, changeLocale}) => {
{ !IsSolo && { !IsSolo &&
<div className='playerlistDiv'> <div className='playerlistDiv'>
<PlayerList players={players} setPlayerTouched={handleSetPlayerTouched} playerTouched={playerTouched} /> <PlayerList players={players} setPlayerTouched={handleSetPlayerTouched} playerTouched={playerTouched} playerIndex={playerIndex}/>
</div> </div>
} }

Loading…
Cancel
Save