@runox-game/game-engine
Version:
RunoX game engine
49 lines (48 loc) • 2.37 kB
TypeScript
import { IGameState } from './models/game-state.model';
import { IPlayer } from './models/player.model';
import { GameEvent } from './events/game-event.enum';
import { ICard } from './models/card.model';
import { GameModes } from './models/game-modes';
import { Observable } from 'rxjs';
import { ILog } from './log/log.factory';
import { LogLevel } from './log/log-levels.enum';
export declare class GameEngine {
private readonly state;
private readonly commandService;
private readonly gameEvents;
constructor();
get events(): {
afterGameStart: Observable<void>;
afterPlayCard: Observable<import("./events/after-play-card.event").AfterPlayCardEvent>;
afterTakeCards: Observable<import("./events/after-take-cards.event").AfterTakeCardsEvent>;
afterYellUno: Observable<import("./events/after-yell-uno.event").AfterYellUnoEvent>;
beforeTurn: Observable<import("./events/before-turn.event").BeforeTurnEvent>;
gameEnd: Observable<import("./events/game-end.event").GameEndEvent>;
changeColor: Observable<import("./events/color-change.event").ChangeColorEvent>;
skip: Observable<import("./events/skip.event").SkipEvent>;
reverse: Observable<import("./events/reverse.event").ReverseEvent>;
error: Observable<any>;
specialCard: Observable<ICard>;
stateChanged: Observable<IGameState>;
};
get players(): IPlayer[];
get playerTurn(): IPlayer | undefined;
get stackCard(): ICard | undefined;
get modes(): GameModes;
get gameStateAsJSON(): IGameState;
start(gameModes?: GameModes): Observable<void>;
reset(gameModes?: GameModes): Observable<void>;
join(players: IPlayer[]): Observable<void>;
remove(player: IPlayer): Observable<void>;
playCard(playerId: string, card: ICard, toPlayerId?: string): Observable<void>;
takeCard(): Observable<void>;
takeCardToRandomPlayer(): Observable<void>;
uno(yellerId?: string): Observable<void>;
switchHands(player1: IPlayer, player2: IPlayer): Observable<void>;
overrideInternalState(externalState: any): void;
logs(level?: LogLevel): Observable<ILog>;
onSpecialCardPlayed(): Observable<ICard>;
onCardPlayed(): Observable<ICard>;
onStateChanged(): Observable<IGameState>;
private handleError;
}