programming-game
Version:
The client for programming game, an mmorpg that you interact with entirely through code.
42 lines (41 loc) • 1.39 kB
TypeScript
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);