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.
49 lines (48 loc) • 1.85 kB
TypeScript
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 } 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 parseNewMap(data: NewMapData): void;
protected updatePositions(): void;
sendPing(log?: boolean): Promise<number>;
}