UNPKG

warscript

Version:

A typescript library for Warcraft III using Warpack.

60 lines (59 loc) 2.62 kB
/// <reference types="warpack-types/warpack" /> /** @noSelfInFile */ import { TupleOf } from "../../../utility/types"; import { TechTreeDependency, TechTreeDependencyInput } from "../auxiliary/tech-tree-dependency"; import { ObjectDataEntry, ObjectDataEntryId, ObjectDataEntryLevelFieldValueSupplier } from "../entry"; import { AbilityTypeId } from "./ability-type"; export type UpgradeId = ObjectDataEntryId & { readonly __upgradeId: unique symbol; }; export declare const enum UpgradeEffectType { ABILITY_LEVEL_BONUS = "rlev", ADD_ULTRAVISION = "rauv", APPLY_AUTO_ATTACK_UPGRADE_BONUS = "ratt", APPLY_ARMOR_UPGRADE_BONUS = "rarm", AUTO_ATTACK_TARGET_COUNT_BONUS = "ratc" } export type UpgradeEffect = { type: UpgradeEffectType.ADD_ULTRAVISION | UpgradeEffectType.APPLY_AUTO_ATTACK_UPGRADE_BONUS | UpgradeEffectType.APPLY_ARMOR_UPGRADE_BONUS; bonusBase: undefined; bonusIncrement: undefined; abilityTypeId: undefined; } | { type: UpgradeEffectType.ABILITY_LEVEL_BONUS; bonusBase: number; bonusIncrement: number; abilityTypeId: AbilityTypeId; } | { type: UpgradeEffectType.AUTO_ATTACK_TARGET_COUNT_BONUS; bonusBase: number; bonusIncrement: number; abilityTypeId: undefined; }; export declare abstract class Upgrade extends ObjectDataEntry<UpgradeId> { private static readonly idGenerator; protected static generateId(): number; protected static getObjectData(map: WarMap): WarObjects; get buttonPositionX(): number; set buttonPositionX(buttonPositionX: number); get buttonPositionY(): number; set buttonPositionY(buttonPositionY: number); get iconPath(): string[]; set iconPath(iconPath: ObjectDataEntryLevelFieldValueSupplier<string>); get effects(): TupleOf<UpgradeEffect, 0 | 1 | 2 | 3 | 4>; set effects(effects: TupleOf<UpgradeEffect, 0 | 1 | 2 | 3 | 4>); get levelCount(): number; set levelCount(levelCount: number); get techTreeDependencies(): TechTreeDependency[][]; set techTreeDependencies(techTreeDependencies: ObjectDataEntryLevelFieldValueSupplier<TechTreeDependencyInput[]>); get hotkey(): string[]; set hotkey(hotkey: ObjectDataEntryLevelFieldValueSupplier<string>); get name(): string[]; set name(name: ObjectDataEntryLevelFieldValueSupplier<string>); get tooltipText(): string[]; set tooltipText(tooltipText: ObjectDataEntryLevelFieldValueSupplier<string>); get tooltipExtendedText(): string[]; set tooltipExtendedText(tooltipExtendedText: ObjectDataEntryLevelFieldValueSupplier<string>); private getEffect; private setEffect; }