UNPKG

programming-game

Version:

The client for programming game, an mmorpg that you interact with entirely through code.

42 lines (41 loc) 1.39 kB
import { ClientSideUnit, GameObject, Intent, PlayersSeekingParty, Position, UniqueItemId } from "./types"; import { ItemDefinition, Items } from "./items"; import { OnEvent, OnTickCurrentPlayer } from "./base-client"; export type { OnTickCurrentPlayer } from "./base-client"; interface BasicHeartbeat { time: number; inArena: boolean; instanceId: string; player?: OnTickCurrentPlayer; playersSeekingParty: PlayersSeekingParty; units: Record<string, ClientSideUnit>; items: Record<UniqueItemId | Items, ItemDefinition>; gameObjects: Record<string, GameObject>; boundary?: { xMin: number; xMax: number; yMin: number; yMax: number; }; } export type TickHeartbeat = OverworldHeartBeat | ArenaHeartBeat; interface OverworldHeartBeat extends BasicHeartbeat { inArena: false; player: OnTickCurrentPlayer; } interface ArenaHeartBeat extends BasicHeartbeat { inArena: true; arenaTimeRemaining: number; player?: OnTickCurrentPlayer; } export declare const distance: (pos1: Position, pos2: Position) => number; export type OnTick = (heartbeat: TickHeartbeat) => Intent | void; type ConnectProps = { credentials: { id: string; key: string; }; onTick: OnTick; onEvent?: OnEvent; }; export declare const connect: ({ credentials, onTick, onEvent, }: ConnectProps) => (() => void);