/* * This is a TypeScript typings file with definitions an documentation of in-game structures. * * While documenting everything here is optional, the definitions might be picked by IDE, * and, should TypeScript rewrite become a thing in future, would work as a static type check. */ /* Declare commonly used aliases or functions */ declare var V: any; declare var T: any; declare var random: any; // Add our extensions interface ObjectConstructor { hasOwn(object: any, property: any): boolean; deepMerge(...objects): object; find(objects: any): object; } interface NumberConstructor { shuffle(); select(index: number): any; except(): any; formatList(options: any): any; } interface ArrayConstructor { between(min: number, max: number): boolean; } declare interface ClothesItem { index: number; name: string; name_cap: string; name_simple: string; /** * Folder name */ variable: string; integrity: number; integrity_max: number; fabric_strength: number; reveal: number; bustresize: number; one_piece: number; strap: number; open: number; word: "a"; state: string; state_base: string; state_top: string; state_top_base: string; plural: number; /** * key in setup.colours.prefilters identifying preprocessing required for canvas renderer. * default is "clothes" */ prefilter?: string; colour: string|0; colour_options: string[]; colour_sidebar: 0|1; exposed: number; exposed_base: number; vagina_exposed: number; vagina_exposed_base: number; anus_exposed: number; anus_exposed_base: number; type: string[]; set: string; gender: string; femininity: number; warmth: number; cost: number; description: string; shop: string[]; accessory: number; accessory_colour: string|0; accessory_colour_options: string[]; accessory_colour_sidebar: number; /** * if 1, then accessory files are integrity-dependent "acc_(tattered|torn|frayed|full).png" */ accessory_integrity_img?: 0|1; high_img: 0|1; back_img: 0|1; /** * Recolouring of back image * * "" (default) - depending on colour_sidebar * * "no" - do not recolour image * * "primary" - use primary/main colour * * "secondary" - use secondary/accessory colour */ back_img_colour?: ""|"no"|"primary"|"secondary"; /** * (For upper, over_upper, under_upper slots) * 1 if has sleeve images, named (left|right)[_cover].png". * Colouring depends on sleeve_colour property. */ sleeve_img: number; /** * (For upper, over_upper, under_upper slots) * 1 if has sleeve accessory images, named (left|right)[_cover]_acc.png". * These images are not colored. * Requires sleeve_img: 1. */ sleeve_acc_img: number; /** * (For upper, over_upper, under_upper slots) * Recolouring of sleeves images: * * "" (default) - depending on colour_sidebar * * "no" - do not recolour image * * "primary" - use primary/main colour * * "secondary" - use secondary/accessory colour */ sleeve_colour?: ""|"no"|"primary"|"secondary"; breast_img: number; cursed: number; location: number; iconFile: string; accIcon: number; outfitPrimary: object; outfitSecondary: string[]; notuck: number; /** * (For head slots) * if 1, this item has mask.png image to cut out hair & animal ears layers */ mask_img?: number; // TODO list and document other options } declare namespace setup { /** * Slot names */ export let clothes_all_slots: string[]; export namespace clothes { export let over_upper: ClothesItem[]; export let over_lower: ClothesItem[]; export let upper: ClothesItem[]; export let lower: ClothesItem[]; export let under_upper: ClothesItem[]; export let under_lower: ClothesItem[]; export let over_head: ClothesItem[]; export let head: ClothesItem[]; export let face: ClothesItem[]; export let neck: ClothesItem[]; export let hands: ClothesItem[]; export let legs: ClothesItem[]; export let feet: ClothesItem[]; export let genitals: ClothesItem[]; } }