@haelp/teto
Version:
A typescript-based controllable TETR.IO client.
81 lines (80 loc) • 2.09 kB
TypeScript
import { RNG } from "../utils";
export interface GarbageQueueInitializeParams {
cap: {
value: number;
marginTime: number;
increase: number;
absolute: number;
max: number;
};
messiness: {
change: number;
within: number;
nosame: boolean;
timeout: number;
center: boolean;
};
garbage: {
speed: number;
holeSize: number;
};
multiplier: {
value: number;
increase: number;
marginTime: number;
};
bombs: boolean;
seed: number;
boardWidth: number;
rounding: "down" | "rng";
openerPhase: number;
specialBonus: boolean;
}
export interface Garbage {
frame: number;
amount: number;
size: number;
}
export interface IncomingGarbage extends Garbage {
cid: number;
gameid: number;
confirmed: boolean;
}
export interface OutgoingGarbage extends Garbage {
id: number;
column: number;
}
export interface GarbageQueueSnapshot {
seed: number;
lastTankTime: number;
lastColumn: number | null;
sent: number;
hasChangedColumn: boolean;
lastReceivedCount: number;
queue: IncomingGarbage[];
}
export declare class GarbageQueue {
#private;
options: GarbageQueueInitializeParams;
queue: IncomingGarbage[];
lastTankTime: number;
lastColumn: number | null;
hasChangedColumn: boolean;
lastReceivedCount: number;
rng: RNG;
sent: number;
constructor(options: GarbageQueueInitializeParams);
snapshot(): GarbageQueueSnapshot;
fromSnapshot(snapshot: GarbageQueueSnapshot): void;
rngex(): number;
get size(): number;
resetReceivedCount(): void;
receive(...args: IncomingGarbage[]): void;
confirm(cid: number, gameid: number, frame: number): boolean;
cancel(amount: number, pieceCount: number, legacy?: {
openerPhase?: boolean;
}): readonly [number, IncomingGarbage[]];
tank(frame: number, cap: number, hard: boolean): OutgoingGarbage[];
round(amount: number): number;
}
export * from "./legacy";