UNPKG

warscript

Version:

A typescript library for Warcraft III using Warpack.

41 lines (40 loc) 2.64 kB
/** @noSelfInFile */ import { Behavior } from "../behavior"; import { Unit } from "../unit"; import { Ability } from "../internal/ability"; import { AbilityTypeId } from "../object-data/entry/ability-type"; import { Widget } from "../../core/types/widget"; import { Item } from "../internal/item"; import { Destructable } from "../../core/types/destructable"; import { EffectParameters } from "../../core/types/effect"; import { AbilityDependentValue } from "../object-field/ability"; export type AbilityBehaviorConstructor<Args extends any[]> = new (ability: Ability, ...args: Args) => AbilityBehavior; export declare abstract class AbilityBehavior<PeriodicActionParameters extends any[] = any[]> extends Behavior<Ability, PeriodicActionParameters> { constructor(ability: Ability); get ability(): Ability; protected resolveCurrentAbilityDependentValue<T extends boolean | number | string>(value: AbilityDependentValue<T>): T; protected flashAreaEffect(x: number, y: number, ...parametersOrDuration: [parameters?: EffectParameters] | [duration?: number, parameters?: EffectParameters]): void; protected flashEffect(x: number, y: number, ...parametersOrDuration: [parameters?: EffectParameters] | [duration?: number, parameters?: EffectParameters]): void; protected flashSpecialEffect(...args: [...pointOrWidget: [x: number, y: number] | [widget: Widget], duration?: number]): void; onUnitGainAbility(_unit: Unit): void; onUnitLoseAbility(_unit: Unit): void; onCastingStart(caster: Unit): void; onCastingFinish(caster: Unit): void; onChannelingStart(caster: Unit): void; onWidgetTargetChannelingStart(caster: Unit, target: Widget): void; onUnitTargetChannelingStart(caster: Unit, target: Unit): void; onItemTargetChannelingStart(caster: Unit, target: Item): void; onDestructibleTargetChannelingStart(caster: Unit, target: Destructable): void; onPointTargetChannelingStart(caster: Unit, x: number, y: number): void; onNoTargetChannelingStart(caster: Unit): void; onImpact(caster: Unit): void; onWidgetTargetImpact(caster: Unit, target: Widget): void; onUnitTargetImpact(caster: Unit, target: Unit): void; onItemTargetImpact(caster: Unit, target: Item): void; onDestructibleTargetImpact(caster: Unit, target: Destructable): void; onPointTargetImpact(caster: Unit, x: number, y: number): void; onNoTargetImpact(caster: Unit): void; onChannelingFinish(caster: Unit): void; onStop(caster: Unit): void; static bindAbilityType<Args extends any[]>(this: AbilityBehaviorConstructor<Args>, abilityTypeId: AbilityTypeId, ...args: Args): void; }