mirror of
https://github.com/randyjc/Rahoot.git
synced 2026-03-13 20:15:35 +01:00
52 lines
1.2 KiB
TypeScript
52 lines
1.2 KiB
TypeScript
import { Socket } from "@rahoot/common/types/game/socket"
|
|
import Game from "@rahoot/socket/services/game"
|
|
import Registry from "@rahoot/socket/services/registry"
|
|
|
|
export const withGame = (
|
|
gameId: string | undefined,
|
|
socket: Socket,
|
|
callback: (_game: Game) => void
|
|
): void => {
|
|
if (!gameId) {
|
|
socket.emit("game:errorMessage", "Game not found")
|
|
|
|
return
|
|
}
|
|
|
|
const registry = Registry.getInstance()
|
|
const game = registry.getGameById(gameId)
|
|
|
|
if (!game) {
|
|
socket.emit("game:errorMessage", "Game not found")
|
|
|
|
return
|
|
}
|
|
|
|
callback(game)
|
|
}
|
|
|
|
export const createInviteCode = (length = 6) => {
|
|
let result = ""
|
|
const characters = "0123456789"
|
|
const charactersLength = characters.length
|
|
|
|
for (let i = 0; i < length; i += 1) {
|
|
const randomIndex = Math.floor(Math.random() * charactersLength)
|
|
result += characters.charAt(randomIndex)
|
|
}
|
|
|
|
return result
|
|
}
|
|
|
|
export const timeToPoint = (startTime: number, secondes: number): number => {
|
|
let points = 1000
|
|
|
|
const actualTime = Date.now()
|
|
const tempsPasseEnSecondes = (actualTime - startTime) / 1000
|
|
|
|
points -= (1000 / secondes) * tempsPasseEnSecondes
|
|
points = Math.max(0, points)
|
|
|
|
return points
|
|
}
|