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/client/index.ts
T

61 lines
1.6 KiB
TypeScript

import type { ICard, IEffect, IGame, ILobby, IPlayer, ITeam, ITurn, IUser } from "../generic/index.js"
import type { ISLobby } from "../server/index.js"
export interface ICEffect extends IEffect {
}
export interface ICCard extends ICard {
}
export interface ICTurn extends ITurn {
onCardLock: (card: ICard) => void
}
export interface ICPlayer extends IPlayer {
onReadyStateChange: (ready: boolean) => void
}
export interface ICTeam extends ITeam {
damage: (amount: number) => void
join: () => void
onTakeDamage: (amount: number) => void
onPlayerAdd: (player: IPlayer) => void
onPlayerRemove: (player: IPlayer) => void
onStartTurn: () => void
onEndTurn: () => void
onDie: () => void
}
export interface ICGame extends IGame {
join: () => void
kick: (player: IPlayer) => void
leave: () => void
start: () => void
request_join: () => void
request_kick: (player: ICPlayer) => void
request_leave: () => void
request_start: () => void
request_changeRules: () => void
request_gameEnd: () => void
onRulesChange: () => void
onAddTeam: (team: ITeam) => void
onRemoveTeam: (team: ITeam) => void
onGameStart: () => void
onGameEnd: () => void
}
export interface ICUser extends IUser {
}
export interface ICLobby extends ILobby {
request_createGame: () => Promise<ReturnType<ISLobby["request_createGame"]>>
// request_login: () => Promise<ReturnType<ISLobby["request_login"]>>
onAddGame: (args: ReturnType<ISLobby["createGame"]>) => void
onRemoveGame: (args: ReturnType<ISLobby["removeGame"]>) => void
}