ZSGG Public Library
Hauler
Protectorate T2 Army Unit
import { ProtectorateArmyUnit } from "../../../../defaults/protectorate.js";
import { Passive, Siege, Spell } from "../../../../engine/ability.js";
export class Hauler extends ProtectorateArmyUnit {
override uuid: string;
static override src = "src/zerospace/faction/protectorate/unit/hauler.ts";
override get infuseCost(): number | undefined {
return 16;
}
constructor() {
super();
this.hexiteCost = 100;
this.fluxCost = 100;
this.buildTime = 46;
this.buildCount = 1;
this.name = "Hauler";
this.tier = "T2";
this.supply = 4;
this.hotkey = "Y";
this.uuid = "7d66d0d8-3685-4d5f-917a-b797520acf5d";
this.hp = 350;
this.shields = 0;
this.armor = 0;
this.armorType = "heavy";
this.speed = 700;
this.vision = 1600;
this.domain = "air";
this.description =
"Air transport. Heals biological units inside. \nCan land to heal biological units nearby. \nMust be landed to load units.";
this.maxTurrets = 0;
this.carryCapacity = 20;
this.createdBy = ["faction/protectorate/building/skydock"];
this.upgradedBy = ["faction/protectorate/building/mechanical-research-lab"];
this.unlockedBy = ["faction/protectorate/building/skydock"];
this.passives.healAura = new Passive({
name: "Heal Aura",
description: "Heals nearby friendly units for 5 HP per second while in transport",
healing: 5,
cooldown: 1,
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.unload = new Spell({
name: "Unload",
description: "Unloads all contained units at the target location",
hotkey: "U",
cooldown: 0.1,
parentId: this.id,
parentUUID: this.uuid,
});
this.sieges.land = new Siege({
name: "Land",
description:
"Lands the hauler, unloading loaded units and healing nearby biological units for 4 health per second",
hotkey: "C",
cooldown: 0.5,
togglesMode: "landed",
parentId: this.id,
parentUUID: this.uuid,
});
}
}
export default Hauler;