UNPKG

alclient

Version:

A node client for interacting with Adventure Land - The Code MMORPG. This package extends the functionality of 'alclient' by managing a mongo database.

50 lines (49 loc) 1.92 kB
import type { Socket } from "socket.io-client"; import type { GData, MapName } from "./definitions/adventureland-data.js"; import type { ServerData, WelcomeData, ActionData, ServerInfoData, EntitiesData, NewMapData, ServerToClientEvents, ClientToServerEvents, EvalData } from "./definitions/adventureland-server.js"; import { Entity } from "./Entity.js"; import { Player } from "./Player.js"; export declare class Observer { socket: Socket<ServerToClientEvents, ClientToServerEvents>; protected lastAllEntities: number; protected lastPositionUpdate: number; G: GData; entities: Map<string, Entity>; protected secret?: string; protected pingIndex: number; protected pingMap: Map<string, { log: boolean; time: number; }>; protected pingNum: number; private static pingsPerServer; pings: number[]; players: Map<string, Player>; projectiles: Map<string, ActionData & { date: Date; }>; S: ServerInfoData; server: WelcomeData; serverData: ServerData; map: MapName; in: string; x: number; y: number; get ping(): number; get timeout(): number; constructor(serverData: ServerData, g: GData, secret?: string); connect(reconnect?: boolean, start?: boolean): Promise<void>; /** * Removes an entity from the entity map, as well as potentially handling database updates * for special monsters * @param id The ID of the entity to remove * @param death Are we deleting it because it died? * @returns If the entity was successfully deleted from the entities map */ deleteEntity(id: string, death?: boolean): boolean; protected parseEntities(data: EntitiesData): void; protected parseEval(data: EvalData): Promise<boolean>; protected parseNewMap(data: NewMapData): void; protected updatePositions(): void; sendPing(log?: boolean): Promise<number>; }