@haelp/teto
Version:
A typescript-based controllable TETR.IO client.
214 lines • 6.62 kB
TypeScript
import type { Game as GameTypes } from "../..";
export interface Game {
"game.ready": GameTypes.Ready;
"game.abort": void;
"game.match": {
gamemode: GameTypes.GameMode;
modename: string;
rb: {
type: string;
options: {
ft: number;
wb: number;
gp: number;
};
leaderboard: GameTypes.Leaderboard[];
};
rrb: {
type: string;
options: {};
scoreboard: {
id: string;
username: string;
active: boolean;
naturalorder: number;
shadows: any[];
shadowedBy: (null | string)[];
alive: boolean;
lifetime: number;
stats: {
apm: number | null;
pps: number | null;
vsscore: number | null;
garbagesent: number;
garbagereceived: number;
kills: number;
altitude: number;
rank: number;
targetingfactor: number;
targetinggrace: number;
btb: number;
revives: number;
escapeartist: number;
blockrationing_app: number;
blockrationing_final: number;
};
}[];
};
};
"game.start": void;
"game.advance": {
scoreboard: {
id: string;
username: string;
active: boolean;
naturalorder: number;
shadows: [];
shadowedBy: [null, null];
alive: boolean;
lifetime: number;
stats: {
apm: number;
pps: number;
vsscore: number;
garbagesent: number;
garbagereceived: number;
kills: 1;
altitude: 0;
rank: 1;
targetingfactor: 3;
targetinggrace: 0;
};
}[];
};
"game.score": {
refereedata: {
ft: number;
wb: number;
modename: string;
};
leaderboard: GameTypes.Leaderboard[];
victor: string;
};
"game.end": {
leaderboard: GameTypes.Leaderboard[];
currentboard: GameTypes.Leaderboard[];
xpPerUser: number;
};
"game.replay.state": {
gameid: number;
data: "early" | "wait";
};
"game.replay.ige": {
gameid: number;
iges: GameTypes.IGE[];
};
"game.replay.board": {
boards: {
0: {
board: {
/** Board state */
b: GameTypes.BoardSquare[][];
/** Frame number or turn */
f: number;
/** Game status or flag */
g: number;
/** Board width */
w: number;
/** Board height */
h: number;
};
gameid: number;
};
1: {
board: {
/** Board state */
b: GameTypes.BoardSquare[][];
/** Frame number or turn */
f: number;
/** Game status or flag */
g: number;
/** Board width */
w: number;
/** Board height */
h: number;
};
gameid: number;
};
};
};
"game.replay": {
gameid: number;
provisioned: number;
frames: GameTypes.Replay.Frame[];
};
"game.replay.end": {
gameid: number;
data: {
gameoverreason: GameTypes.GameOverReason;
killer: {
gameid: number;
type: "sizzle";
username: null | string;
};
};
};
"game.spectate": {
id: number;
data: {
players: {
userid: string;
gameid: number;
alive: boolean;
naturalorder: number;
options: GameTypes.ReadyOptions;
}[];
match: {
gamemode: string;
modename: string;
rb: {
type: "elimination";
options: {
ft: number;
wb: number;
gp: number;
};
leaderboard: {
id: string;
username: string;
active: boolean;
naturalorder: number;
shadows: any[];
shadowedBy: (null | any)[];
wins: number;
stats: {
apm: number | null;
pps: number | null;
vsscore: number | null;
garbagesent: number;
garbagereceived: number;
kills: number;
altitude: number;
rank: number;
targetingfactor: number;
targetinggrace: number;
btb: number;
revives: number;
};
}[];
};
rrb: {
type: string;
options: Record<string, unknown>;
scoreboard: {
sb: {
stats: {
rank: number;
altitude: number;
btb: number;
revives: number;
};
allies: any[];
gameid: number;
specCount: number;
speedrun: boolean;
nearWR: boolean;
lovers: boolean;
}[];
};
};
};
};
};
}
//# sourceMappingURL=game.d.ts.map