UNPKG

typed-adventureland

Version:
170 lines (169 loc) 5.8 kB
import type { GameKey } from "../games/Games"; import type { ImagesetKey } from "../imagesets/Imagesets"; import type { DungeonKeyKey, ItemKey } from "../items"; import type { MonsterKey } from "../monsters/Monsters"; import type { NpcKey } from "../npcs/Npcs"; import type { TilesetKey } from "../tilesets/Tilesets"; import type { Tuple } from "../utils"; import { EventKey } from "../events"; import { GGeometry } from "../geometry"; export type MapKey = "abtesting" | "arena" | "bank" | "bank_b" | "bank_u" | "batcave" | "cave" | "cgallery" | "crypt" | "cyberland" | "d_e" | "d2" | "desertland" | "duelland" | "dungeon0" | "gateway" | "goobrawl" | "halloween" | "hut" | "jail" | "level1" | "level2" | "level2e" | "level2n" | "level2s" | "level2w" | "level3" | "level4" | "main" | "mansion" | "mforest" | "mtunnel" | "old_bank" | "old_main" | "original_main" | "resort" | "resort_e" | "shellsisland" | "ship0" | "spider_instance" | "spookytown" | "tavern" | "test" | "tomb" | "tunnel" | "ucliffs" | "uhills" | "winter_cave" | "winter_cove" | "winter_inn" | "winter_inn_rooms" | "winter_instance" | "winterland" | "woffice"; export type MapZoneKey = "fishing" | "mining"; export interface GMap { animatables?: { the_door?: { position: string; x: number; y: number; }; the_lever?: { position: string; x: number; y: number; }; }; burn_multiplier?: number; code?: string; day?: boolean; data: GGeometry; doors: Array<[number, number, number, number, MapKey, number] | [number, number, number, number, MapKey, number, number] | [number, number, number, number, MapKey, number, number, "key", DungeonKeyKey] | [number, number, number, number, MapKey, number, number, "ulocked", "complicated"] | [number, number, number, number, MapKey, number, number, "protected" | "ulocked"]>; drop_norm?: number; event?: EventKey | "pirateship"; freeze_multiplier?: number; fx?: string; ignore?: boolean; instance?: boolean; irregular?: boolean; key: string; loss?: boolean; lux?: number; machines?: Array<{ set: ImagesetKey; y: number; x: number; frames: Array<[number, number, number, number]>; subframes?: Array<[number, number, number, number]>; type: GameKey; }>; /** * Merchants on the map that sell validates against */ merchants?: Array<{ /** The map the merchant currently is on */ map: MapKey; /** The unique id of the instance you are in, else a `MapKey` */ in: MapKey | string; x: number; y: number; id: NpcKey; }>; monsters?: Array<{ boundaries?: Array<[MapKey, number, number, number, number]>; boundary?: [number, number, number, number]; count: number; gatekeeper?: boolean; grow?: boolean; polygon?: Array<[number, number]>; position?: [number, number]; rage?: [number, number, number, number]; random?: boolean; roam?: boolean; radius?: number; stype?: string; special?: boolean; type: MonsterKey; }>; mount?: boolean; name: string; no_bounds?: boolean; npcs: Array<{ position?: [x: number, y: number] | [number, number, number]; id: NpcKey; name?: string; boundary?: [number, number, number, number]; positions?: [[number, number], [number, number, number]]; }>; old_monsters?: Tuple<{ count: number; boundary: [number, number, number, number]; type: MonsterKey; }, 12>; on_death?: [MapKey, number]; on_exit?: [MapKey, number]; outside?: boolean; pvp?: boolean; quirks?: Array<[ number, number, number, number, string, string ] | [number, number, number, number, string]>; ref?: { c_mid?: [number, number]; cx?: [number, number, number, number]; poof?: { in: MapKey; map: MapKey; x: number; y: number; }; u_mid?: [number, number]; }; safe?: boolean; safe_pvp?: boolean; small_steps?: boolean; /** * direction is the way the character spawns 0 down,1 right, 2 bottom ,3 left. * size indicates an area you could spawn in with x,y as the center. */ spawns: Array<[x: number, y: number] | [x: number, y: number, direction: number] | [x: number, y: number, direction: number, size: number]>; traps?: [ { polygon?: Tuple<[number, number], 60>; position?: [number, number]; type: string; } ]; unlist?: boolean; /** * The position of the upgrade station where you can upgrade */ upgrade?: { map: MapKey; in: MapKey | string; x: number; y: number; id: NpcKey; }; /** * The position of the compound station where you can compound */ compound?: { map: MapKey; in: MapKey | string; x: number; y: number; id: NpcKey; }; /** * Positions where the item is sold. */ items?: Partial<Record<ItemKey, Array<{ map: MapKey; in: MapKey | string; x: number; y: number; id: NpcKey; }>>>; weather?: string; world?: TilesetKey; zones?: [ { drop: string; polygon: Array<[number, number]>; type: MapZoneKey; } ]; }