UNPKG

goban-engine

Version:

This contains the built Go engine that is used by the Goban package. There are no display components in this package, only the logic for playing the game of Go, making it suitable for usage in node.js or other server-side environments.

66 lines (65 loc) 3 kB
import { GobanInteractive, MoveCommand } from "./InteractiveBase"; import { GobanConfig } from "../GobanBase"; import { AdHocClock, AdHocPlayerClock, IGobanSocket, 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: IGobanSocket; 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: IGobanSocket): 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 {};