warscript
Version:
A typescript library for Warcraft III using Warpack.
219 lines (218 loc) • 10.5 kB
TypeScript
/// <reference types="warpack-types/warpack" />
/** @noSelfInFile */
import { TupleOf } from "../../../utility/types";
import { ArmorSoundType } from "../auxiliary/armor-sound-type";
import { CombatClassifications } from "../auxiliary/combat-classification";
import { MovementType } from "../auxiliary/movement-type";
import { Race } from "../auxiliary/race";
import { SoundSetName } from "../auxiliary/sound-set-name";
import { UnitClassifications } from "../auxiliary/unit-classification";
import { WeaponSoundType } from "../auxiliary/weapon-sound-type";
import { ObjectDataEntry, ObjectDataEntryConstructor, ObjectDataEntryId } from "../entry";
import { ObjectDataEntryIdGenerator } from "../utility/object-data-entry-id-generator";
import type { AbilityTypeId } from "./ability-type";
import type { UpgradeId } from "./upgrade";
import { AnimationQualifier } from "../auxiliary/animation-qualifier";
export type UnitTypeId = ObjectDataEntryId & {
readonly __unitTypeId: unique symbol;
};
export type StandardUnitTypeId = UnitTypeId & {
readonly __standardUnitTypeId: unique symbol;
};
export declare class UnitTypeWeapon {
private readonly unitType;
private readonly index;
private constructor();
get backSwingDuration(): number;
set backSwingDuration(backSwingDuration: number);
get impactDelay(): number;
set impactDelay(impactDelay: number);
get missileModelPath(): string;
set missileModelPath(missileModelPath: string);
get soundType(): WeaponSoundType;
set soundType(soundType: WeaponSoundType);
get soundTypeSD(): WeaponSoundType;
set soundTypeSD(soundTypeSD: WeaponSoundType);
get soundTypeHD(): WeaponSoundType;
set soundTypeHD(soundTypeHD: WeaponSoundType);
}
export declare abstract class UnitType<Id extends UnitTypeId = UnitTypeId> extends ObjectDataEntry<Id> {
static readonly [id: StandardUnitTypeId]: ObjectDataEntryConstructor<UnitType>;
protected static readonly idGenerator: ObjectDataEntryIdGenerator;
protected static generateId(): number;
protected static getObjectData(map: WarMap): WarObjects;
get abilityTypeIds(): AbilityTypeId[];
set abilityTypeIds(abilityTypeIds: AbilityTypeId[]);
get defaultActiveAbilityTypeId(): AbilityTypeId | undefined;
set defaultActiveAbilityTypeId(abilityTypeId: AbilityTypeId | undefined);
get abilityBackSwingDuration(): number;
set abilityBackSwingDuration(abilityBackSwingDuration: number);
get abilityImpactDelay(): number;
set abilityImpactDelay(castImpactDelay: number);
get animationQualifiers(): AnimationQualifier[];
set animationQualifiers(animationQualifiers: AnimationQualifier[]);
get buttonPositionX(): number;
set buttonPositionX(buttonPositionX: number);
get buttonPositionY(): number;
set buttonPositionY(buttonPositionY: number);
get casterUpgradeIconPath(): string;
set casterUpgradeIconPath(casterUpgradeIconPath: string);
get deathDuration(): number;
set deathDuration(deathDuration: number);
get iconPath(): string;
set iconPath(iconPath: string);
get iconPathSD(): string;
set iconPathSD(iconPathSD: string);
get iconPathHD(): string;
set iconPathHD(iconPathHD: string);
get isMissileScalingEnabled(): boolean;
set isMissileScalingEnabled(isMissileScalingEnabled: boolean);
get maximumPitchAngleDegrees(): number;
set maximumPitchAngleDegrees(maximumPitchAngleDegrees: number);
get maximumRollAngleDegrees(): number;
set maximumRollAngleDegrees(maximumRollAngleDegrees: number);
get missileLaunchOffsetX(): number;
set missileLaunchOffsetX(missileLaunchOffsetX: number);
get missileLaunchOffsetY(): number;
set missileLaunchOffsetY(missileLaunchOffsetY: number);
get missileLaunchOffsetZ(): number;
set missileLaunchOffsetZ(missileLaunchOffsetZ: number);
get missileLaunchOffsetZSD(): number;
set missileLaunchOffsetZSD(missileLaunchOffsetZSD: number);
get missileLaunchOffsetZHD(): number;
set missileLaunchOffsetZHD(missileLaunchOffsetZHD: number);
get missileLaunchSwimmingOffsetZ(): number;
set missileLaunchSwimmingOffsetZ(missileLaunchOffsetZ: number);
get missileLaunchSwimmingOffsetZSD(): number;
set missileLaunchSwimmingOffsetZSD(missileLaunchSwimmingOffsetZSD: number);
get missileLaunchSwimmingOffsetZHD(): number;
set missileLaunchSwimmingOffsetZHD(missileLaunchSwimmingOffsetZHD: number);
get missileLaunchVisualOffsetX(): number;
set missileLaunchVisualOffsetX(missileLaunchVisualOffsetX: number);
get missileLaunchVisualOffsetXSD(): number;
set missileLaunchVisualOffsetXSD(missileLaunchVisualOffsetXSD: number);
get missileLaunchVisualOffsetXHD(): number;
set missileLaunchVisualOffsetXHD(missileLaunchVisualOffsetXHD: number);
get missileLaunchVisualOffsetY(): number;
set missileLaunchVisualOffsetY(missileLaunchVisualOffsetY: number);
get missileLaunchVisualOffsetYSD(): number;
set missileLaunchVisualOffsetYSD(missileLaunchVisualOffsetYSD: number);
get missileLaunchVisualOffsetYHD(): number;
set missileLaunchVisualOffsetYHD(missileLaunchVisualOffsetYHD: number);
get missileImpactOffsetZ(): number;
set missileImpactOffsetZ(missileImpactOffsetZ: number);
get missileImpactOffsetZSD(): number;
set missileImpactOffsetZSD(missileImpactOffsetZSD: number);
get missileImpactOffsetZHD(): number;
set missileImpactOffsetZHD(missileImpactOffsetZHD: number);
get missileImpactSwimmingOffsetZ(): number;
set missileImpactSwimmingOffsetZ(missileImpactSwimmingOffsetZ: number);
get missileImpactSwimmingOffsetZSD(): number;
set missileImpactSwimmingOffsetZSD(missileImpactSwimmingOffsetZSD: number);
get missileImpactSwimmingOffsetZHD(): number;
set missileImpactSwimmingOffsetZHD(missileImpactSwimmingOffsetZHD: number);
get modelPath(): string;
set modelPath(modelPath: string);
get modelPathSD(): string;
set modelPathSD(modelPathSD: string);
get modelPathHD(): string;
set modelPathHD(modelPathHD: string);
get selectionCircleScale(): number;
set selectionCircleScale(selectionCircleScale: number);
get selectionCircleScaleSD(): number;
set selectionCircleScaleSD(selectionCircleScaleSD: number);
get selectionCircleScaleHD(): number;
set selectionCircleScaleHD(selectionCircleScaleHD: number);
get scale(): number;
set scale(scale: number);
get scaleSD(): number;
set scaleSD(scaleSD: number);
get scaleHD(): number;
set scaleHD(scaleHD: number);
get scoreScreenIconPath(): string;
set scoreScreenIconPath(scoreScreenIconPath: string);
get scoreScreenIconPathSD(): string;
set scoreScreenIconPathSD(scoreScreenIconPathSD: string);
get scoreScreenIconPathHD(): string;
set scoreScreenIconPathHD(scoreScreenIconPathHD: string);
get specialEffectModelPath(): string;
set specialEffectModelPath(specialEffectModelPath: string);
get specialEffectModelPathSD(): string;
set specialEffectModelPathSD(specialEffectModelPathSD: string);
get specialEffectModelPathHD(): string;
set specialEffectModelPathHD(specialEffectModelPathHD: string);
get shadowImageHeight(): number;
set shadowImageHeight(shadowImageHeight: number);
get shadowImageWidth(): number;
set shadowImageWidth(shadowImageWidth: number);
get shadowImageXOffset(): number;
set shadowImageXOffset(shadowImageXOffset: number);
get shadowImageYOffset(): number;
set shadowImageYOffset(shadowImageYOffset: number);
get armorSoundType(): ArmorSoundType;
set armorSoundType(armorSoundType: ArmorSoundType);
get armorSoundTypeSD(): ArmorSoundType;
set armorSoundTypeSD(armorSoundTypeSD: ArmorSoundType);
get armorSoundTypeHD(): ArmorSoundType;
set armorSoundTypeHD(armorSoundTypeHD: ArmorSoundType);
get combatClassifications(): CombatClassifications;
set combatClassifications(combatClassifications: CombatClassifications);
get unitClassifications(): UnitClassifications;
set unitClassifications(unitClassifications: UnitClassifications);
get firstWeapon(): UnitTypeWeapon;
get secondWeapon(): UnitTypeWeapon;
get weapons(): TupleOf<UnitTypeWeapon, 2>;
get flyHeight(): number;
set flyHeight(flyHeight: number);
get flyHeightMinimum(): number;
set flyHeightMinimum(flyHeightMinimum: number);
get movementSpeed(): number;
set movementSpeed(movementSpeed: number);
get movementSpeedMaximum(): number;
set movementSpeedMaximum(movementSpeedMaximum: number);
get movementSpeedMinimum(): number;
set movementSpeedMinimum(movementSpeedMinimum: number);
get movementType(): MovementType;
set movementType(movementType: MovementType);
get collisionSize(): number;
set collisionSize(collisionSize: number);
get pathingTexturePath(): string;
set pathingTexturePath(pathingTexturePath: string);
get soundSetName(): SoundSetName;
set soundSetName(soundSetName: SoundSetName);
get buildingDuration(): number;
set buildingDuration(buildingDuration: number);
get foodCost(): number;
set foodCost(foodCost: number);
get foodProduced(): number;
set foodProduced(foodProduced: number);
get formationRank(): number;
set formationRank(formationRank: number);
get goldCost(): number;
set goldCost(goldCost: number);
get isStructure(): boolean;
set isStructure(isStructure: boolean);
get race(): Race;
set race(race: Race);
get affectingUpgradeIds(): UpgradeId[];
set affectingUpgradeIds(affectingUpgradeIds: UpgradeId[]);
get description(): string;
set description(description: string);
get name(): string;
set name(name: string);
get tooltipText(): string;
set tooltipText(tooltipText: string);
get tooltipExtendedText(): string;
set tooltipExtendedText(tooltipExtendedText: string);
}
export type HeroUnitTypeId = UnitTypeId & {
readonly __heroUnitTypeId: unique symbol;
};
export type StandardHeroUnitTypeId = StandardUnitTypeId & HeroUnitTypeId;
export declare abstract class HeroUnitType<Id extends HeroUnitTypeId = HeroUnitTypeId> extends UnitType<Id> {
static readonly [id: StandardUnitTypeId]: ObjectDataEntryConstructor<HeroUnitType>;
protected static readonly idGenerator: ObjectDataEntryIdGenerator;
protected static generateId(): number;
get heroAbilityTypeIds(): AbilityTypeId[];
set heroAbilityTypeIds(heroAbilityTypeIds: AbilityTypeId[]);
}