UNPKG

warscript

Version:

A typescript library for Warcraft III using Warpack.

44 lines (43 loc) 2.65 kB
/// <reference types="warpack-types/warpack" /> /** @noSelfInFile */ export type LevelFieldValueProvider<T> = T | T[] | ((level: number, value: T) => T); export declare namespace ObjectDefinition { type TargetType = "air" | "alive" | "allies" | "ancient" | "dead" | "debris" | "decoration" | "enemies" | "friend" | "ground" | "hero" | "invulnerable" | "item" | "mechanical" | "neutral" | "nonancient" | "none" | "nonhero" | "nonsapper" | "notself" | "organic" | "player" | "sapper" | "self" | "structure" | "terrain" | "tree" | "vulnerable" | "wall" | "ward"; } export declare class ObjectDefinition { protected readonly object: WarObject; protected constructor(object: WarObject); protected setBooleanField(field: string, value: boolean): void; protected getBooleanField(field: string): boolean; protected setNumberField(field: string, value: number): void; protected getNumberField(field: string): number; protected setStringField(field: string, value: string): void; protected getStringField(field: string): string; protected getStringListField(field: string): string[]; protected setBooleanLevelField(field: string, values: boolean | boolean[] | ((level: number, value: boolean) => boolean)): void; protected getBooleanLevelField(field: string): boolean[]; protected setNumberLevelField(field: string, values: number | number[] | ((level: number, value: number) => number)): void; protected getNumberLevelField(field: string): number[]; protected setStringLevelField(field: string, values: string | string[] | ((level: number, value: string) => string)): void; protected getStringLevelField(field: string): string[]; protected getStringListLevelField(field: string): string[][]; private getLevelField; private setLevelField; protected static getLevelFieldValue<T extends ObjectDefinition | string | number | boolean | undefined>(level: number, value: T, values: LevelFieldValueProvider<T>): T; protected static getLevelArrayFieldValue<T extends ObjectDefinition | string | number | boolean | undefined>(level: number, value: T[], values: LevelFieldValueProvider<T[]>): T[]; } interface ObjectConstructor { [index: string]: string | number | undefined; } export declare enum ObjectType { ABILITY = 0, ITEM = 1, UNIT = 2, DESTRUCTABLE = 3, DOODAD = 4, BUFF = 5, UPGRADE = 6 } export declare function createObject(objectType: ObjectType, newId: string, base: string, ctor?: ObjectConstructor): WarObject; export declare function createObject(objectType: ObjectType, base: string, ctor?: ObjectConstructor): WarObject; export {};