warscript
Version:
A typescript library for Warcraft III using Warpack.
60 lines (59 loc) • 2.62 kB
TypeScript
/// <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;
}