UNPKG

@battle-racing/br-common-lib

Version:

Common library for all Battle Racing Repositorios

98 lines (97 loc) 3.3 kB
import { Game, GameType } from '../../game'; import { GameTrack, GameTrackKartConfig } from '../../gameTrack'; import { PlaySoundOptions, ShowLightsColorParams, ShowLightsEffectParams } from '../../hardware'; import { Kart, KartStatus } from '../../kart'; import { CheckpointEvent } from '../../kartTracking'; import { Response } from '../../response'; import { MacAddressGameTrackConnections } from '../inputs'; import { SocketHardwareModulesEventsParams } from '../SocketHardware.types'; import { SocketPowerUpEventsParams } from '../SocketPowerUp.types'; export type SocketGameTrackEventsParams = { 'game-track:init:response': Response<GameTrack>; }; export type SocketGameTrackEventParams = { 'game-track:emergency:activate': undefined; 'game-track:emergency:deactivate': undefined; 'game-track:lights:showEffect': ShowLightsEffectParams; 'game-track:lights:showColor': ShowLightsColorParams; 'game-track:sound:play': PlaySoundOptions; }; export type SocketGameTrackServerToClientEventsParams = SocketGameTrackEventsParams & SocketGameTrackEventParams; type SocketKartPowerUpEventsParams = { [K in keyof SocketPowerUpEventsParams as `kart:${K}`]: SocketPowerUpEventsParams[K]; }; export type SocketKartEventsParams = { 'kart:init:response': Response<{ kart: Kart; gameTrack: GameTrack; }>; 'kart:gameTrack:updated': { gameTrack: GameTrack; config: GameTrackKartConfig; }; 'kart:gameTrack:emergency:started': undefined; 'kart:gameTrack:emergency:stopped': undefined; 'kart:status:change': { status: KartStatus; }; }; export type SocketGameEventParams = { 'kart:game:selected': { gameId: string; gameType: GameType; }; 'kart:game:eliminated': { gameId: string; gameType: GameType; }; 'kart:game:yellow-flag:started': { gameId: string; gameType: GameType; }; 'kart:game:yellow-flag:stopped': { gameId: string; gameType: GameType; }; 'kart:game:red-flag:started': { gameId: string; gameType: GameType; }; 'kart:game:red-flag:stopped': { gameId: string; gameType: GameType; }; 'kart:game:started': { game: Game; }; 'kart:game:finished': { game: Game; isWinner: boolean; }; 'kart:game:sync': { game: Game; }; }; export type SocketKartServerToClientEventsParams = SocketKartEventsParams & SocketGameEventParams & SocketKartPowerUpEventsParams; export type SocketWebAppServerToClientEventsParams = { 'karts:authenticate:response': Response<void>; 'karts:list:response': Response<Kart[]>; 'karts:onKartsUpdated': Kart[]; 'karts:onHardwareData': { kartGuid: string; socketEvent: keyof SocketHardwareModulesEventsParams; payload: SocketHardwareModulesEventsParams[keyof SocketHardwareModulesEventsParams]; }; 'karts:tracking:checkpointEvent': { checkpointEvent: CheckpointEvent; }; 'game:changed': { game: Game; }; 'gameTracks:onGameTrackUpdated': GameTrack[]; 'gameTracks:connectedRasperries': { macAddress: string; }[]; 'gameTracks:list:response': Response<MacAddressGameTrackConnections>; }; export {};