@battle-racing/br-common-lib
Version:
Common library for all Battle Racing Repositorios
98 lines (97 loc) • 3.3 kB
TypeScript
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 {};