Boutons de démarrage du jeu fonctionnels
This commit is contained in:
@ -7,10 +7,10 @@ export interface ChallengeAction {
|
||||
description: string,
|
||||
reward: number,
|
||||
success: boolean,
|
||||
start: Date,
|
||||
end: Date | null,
|
||||
penaltyStart: Date | null,
|
||||
penaltyEnd: Date | null,
|
||||
start: number, // date
|
||||
end: number | null, // date
|
||||
penaltyStart: number | null, // date
|
||||
penaltyEnd: number | null, // date
|
||||
}
|
||||
|
||||
export interface ActionsState {
|
||||
|
@ -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
|
||||
|
@ -83,8 +83,8 @@ export interface TrainTrip {
|
||||
distance: number,
|
||||
from: string,
|
||||
to: string,
|
||||
departureTime: Date,
|
||||
arrivalTime: Date,
|
||||
departureTime: number,
|
||||
arrivalTime: number,
|
||||
}
|
||||
|
||||
export interface TrainsState {
|
||||
|
Reference in New Issue
Block a user