Boutons de démarrage du jeu fonctionnels

This commit is contained in:
2024-12-11 21:33:51 +01:00
parent c28097d443
commit 61b0cd51ae
9 changed files with 116 additions and 41 deletions

View File

@ -1,13 +1,28 @@
import { createSlice, PayloadAction } from '@reduxjs/toolkit'
export interface RunPayload {
id: number
gameId: number
runnerId: number
start: string
end: string | null
}
export interface GamePayload {
id: number
started: boolean
currentRunId: number | null
currentRun: RunPayload | null
}
export interface GameState {
playerId: number | null
gameStarted: boolean
money: number
currentRunner: boolean
chaseFreeTime: Date | null
penaltyStart: Date | null
penaltyEnd: Date | null
chaseFreeTime: number | null // date
penaltyStart: number | null // date
penaltyEnd: number | null // date
}
const initialState: GameState = {
@ -30,9 +45,18 @@ export const gameSlice = createSlice({
updateMoney: (state, action: PayloadAction<number>) => {
state.money = action.payload
},
updateGameState: (state, action: PayloadAction<GamePayload>) => {
const game: GamePayload = action.payload
state.gameStarted = game.started
state.currentRunner = state.playerId === game.currentRun?.runnerId
if (state.currentRunner)
state.chaseFreeTime = null
else if (game.currentRun)
state.chaseFreeTime = new Date(game.currentRun?.start).getTime() + 45 * 60 * 1000
}
},
})
export const { setPlayerId, updateMoney } = gameSlice.actions
export const { setPlayerId, updateMoney, updateGameState } = gameSlice.actions
export default gameSlice.reducer