This repository has been archived on 2024-07-02. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
ts-interfaces/server/index.ts
T

66 lines
1.6 KiB
TypeScript

import type { ICard, IEffect, IGame, ILobby, IPlayer, ITeam, ITurn, IUser, ServerMessage } from "../generic/index.js"
import { WebSocket } from "ws"
export interface ISClientProvider {
socket: WebSocket
send: (message: ServerMessage) => void
}
export interface ISQuery {
provider: ISClientProvider
accept: (message: ServerMessage) => void
cancel: (message: ServerMessage) => void
error: (message: string) => void
}
export interface ISEffect extends IEffect {
use: () => void
}
export interface ISCard extends ICard {
}
export interface ISTurn extends ITurn {
lockCard: (card: ICard) => void
}
export interface ISPlayer extends IPlayer {
setReady: (ready: boolean) => void
}
export interface ISTeam extends ITeam {
damage: (amount: number) => void
addPlayer: (player: IPlayer) => void
removePlayer: (player: IPlayer) => void
startTurn: () => void
endTurn: () => void
die: () => void
}
export interface ISGame extends IGame {
addTeam: (team: ISTeam) => void
removeTeam: (team: ISTeam) => void
start: () => void
request_join: (query: ISQuery) => void
request_kick: (query: ISQuery) => void
request_leave: (query: ISQuery) => void
request_start: (query: ISQuery) => void
request_changeRules: (query: ISQuery) => void
request_gameEnd: (query: ISQuery) => void
}
export interface ISUser extends IUser {
}
export interface ISLobby extends ILobby {
createGame: () => void
request_createGame: (query: ISQuery) => void
request_login: (query: ISQuery) => void
removeGame: () => void
subscribe: (query: ISQuery) => any
}