UNPKG

belote

Version:

A TypeScript library for playing Belote card game with bot support.

50 lines (49 loc) 2.21 kB
import { GameState, CardColor, Player, Card, GameOptions, BeloteEvents, AllowedPlayerKeys } from './types'; import { EventEmitter } from 'events'; export declare class Belote extends EventEmitter { private timeoutId; readonly options: GameOptions; readonly gameState: GameState; constructor(init?: Partial<GameOptions>); private createPlayer; playerJoin(playerName?: string, options?: Partial<Pick<Player, AllowedPlayerKeys>>): Player; playerLeave(playerId: string): void; addBot(botName?: string, options?: Partial<Pick<Player, AllowedPlayerKeys>>): Player; removeBot(botId: string): void; updatePlayer(playerId: string, updates: Partial<Player> | ((player: Player) => Partial<Player>)): void; switchPlayerTeam(playerId: string, newTeamId: number): void; setPlayerReady(playerId: string, isReady: boolean): void; private clearTimer; private startTimer; private safeBotAction; startGame(): void; startNextRound(): void; private dealInitialCards; getCurrentPlayer(): Player; private startBidding; bid(playerId: string, call: CardColor | 'pass'): void; private advanceBidding; private dealTalon; private startCallingPhase; makeCall(playerId: string, cards: Card[]): void; private resolveCalls; private startPlayingPhase; playCard(playerId: string, card: Card): void; private completeTrick; private determineTrickWinner; private completeRound; private calculateRoundScores; private getLastTrickOverall; private areTricksEqual; getPlayerById(playerId: string): Player | null; getPlayersByTeam(teamId: number): Player[]; destroy(): void; } export interface Belote { on<K extends keyof BeloteEvents>(event: K, listener: BeloteEvents[K]): this; emit<K extends keyof BeloteEvents>(event: K, ...args: Parameters<BeloteEvents[K]>): boolean; off<K extends keyof BeloteEvents>(event: K, listener: BeloteEvents[K]): this; removeAllListeners<K extends keyof BeloteEvents>(event?: K): this; addListener<K extends keyof BeloteEvents>(event: K, listener: BeloteEvents[K]): this; once<K extends keyof BeloteEvents>(event: K, listener: BeloteEvents[K]): this; }