warscript
Version:
A typescript library for Warcraft III using Warpack.
41 lines (40 loc) • 2.64 kB
TypeScript
/** @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;
}