Boutons de démarrage du jeu fonctionnels
This commit is contained in:
@ -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
|
||||
|
Reference in New Issue
Block a user