goban
Version:
[](https://opensource.org/licenses/Apache-2.0)
66 lines (65 loc) • 2.99 kB
TypeScript
import { GobanInteractive, MoveCommand } from "./InteractiveBase";
import { GobanConfig } from "../GobanBase";
import { AdHocClock, AdHocPlayerClock, GobanSocket, GobanSocketEvents, GobanEngine, JGOFPlayerClock, JGOFTimeControl, ReviewMessage } from "../engine";
interface JGOFPlayerClockWithTimedOut extends JGOFPlayerClock {
timed_out: boolean;
}
/**
* This class serves as a functionality layer encapsulating the logic connection
* that manages connections to the online-go.com servers.
*
* We have it as a separate base class simply to help with code organization
* and to keep our Goban class size down.
*/
export declare abstract class OGSConnectivity extends GobanInteractive {
sent_timed_out_message: boolean;
protected socket: GobanSocket;
protected socket_event_bindings: Array<[keyof GobanSocketEvents, () => void]>;
protected connectToReviewSent?: boolean;
constructor(config: GobanConfig, preloaded_data?: GobanConfig);
protected post_config_constructor(): GobanEngine;
destroy(): void;
protected _socket_on<KeyT extends keyof GobanSocketEvents>(event: KeyT, cb: any): void;
protected getClockDrift(): number;
protected getNetworkLatency(): number;
protected connect(server_socket: GobanSocket): void;
protected disconnect(): void;
sendChat(msg_body: string, type: string): void;
/**
* When we think our clock has runout, send a message to the server
* letting it know. Otherwise we have to wait for the server grace
* period to expire for it to time us out.
*/
sendTimedOut(): void;
syncReviewMove(msg_override?: ReviewMessage, node_text?: string): void;
protected sendMove(mv: MoveCommand, cb?: () => void): boolean;
giveReviewControl(player_id: number): void;
saveConditionalMoves(): void;
resign(): void;
protected sendPendingResignation(): void;
protected clearPendingResignation(): void;
cancelGame(): void;
protected annul(): void;
pass(): void;
requestUndo(): void;
acceptUndo(): void;
cancelUndo(): void;
pauseGame(): void;
resumeGame(): void;
deleteBranch(): void;
/** This is a callback that gets called by GobanEngine.setState to load
* previously saved board state. */
setState(): void;
sendPreventStalling(winner: "black" | "white"): void;
sendPreventEscaping(winner: "black" | "white", annul: boolean): void;
performStoneRemovalAutoScoring(): void;
acceptRemovedStones(): void;
rejectRemovedStones(): void;
getPlayerRelativeLatency(player_id: number): number;
getLastReviewMessage(): ReviewMessage;
setLastReviewMessage(m: ReviewMessage): void;
setGameClock(original_clock: AdHocClock | null): void;
protected computeNewPlayerClock(original_player_clock: Readonly<AdHocPlayerClock>, is_current_player: boolean, time_elapsed: number, time_control: Readonly<JGOFTimeControl>): JGOFPlayerClockWithTimedOut;
setStrictSekiMode(tf: boolean): void;
}
export {};