Archived
65 lines
1.6 KiB
TypeScript
65 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: () => string
|
|
removeGame: (game: ISGame) => void
|
|
|
|
request_createGame: (query: ISQuery) => void
|
|
request_login: (query: ISQuery) => void
|
|
} |