ZSGG Public Library
Hauler
Protectorate T2 Army Unit
import { ProtectorateArmyUnit } from "../../../../defaults/protectorate.js";
import { Passive, Siege, Spell, Upgrade } from "../../../../engine/ability.js";
export class Hauler extends ProtectorateArmyUnit {
override uuid: string;
static override src = "src/zerospace/faction/protectorate/unit/hauler.ts";
constructor() {
super();
this.hexiteCost = 100;
this.fluxCost = 100;
this.buildTime = 40;
this.buildCount = 1;
this.name = "Hauler";
this.tier = "T2";
this.supply = 4;
this.hotkey = "Y";
this.uuid = "7d66d0d8-3685-4d5f-917a-b797520acf5d";
this.internalId = "Troop_Prot_MP_Hammerhead_C";
this.internalPath =
"/Game/Nova/Archetypes_Troops/Multiplayer/Protectorate/Troop_Prot_MP_Hammerhead.Default__Troop_Prot_MP_Hammerhead_C";
this.internalTags = ["Attackable.ArmorType.Heavy", "Attackable.FlyingUnit", "Attackable.Unit.Troop"];
this.internalSecondaryTags = ["Air"];
this.hp = 500;
this.shields = 0;
this.armor = 2;
this.armorType = "heavy";
this.speed = 600;
this.vision = 1800;
this.turnSpeed = 2000;
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,
effectRadius: 1000,
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.combatLanding = new Siege({
name: "Combat Landing",
description:
"Lands the hauler, unloading loaded units and healing nearby biological units for 4 health per second",
hotkey: "C",
cooldown: 0.5,
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.medbays = new Upgrade({
name: "Medbays",
description: "+75% healing rate, +20% healing radius.",
tier: "T1",
position: "A",
fluxCost: 100,
researchTime: 30,
unlockedBy: ["faction/protectorate/building/mechanical-research-lab"],
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.transport = new Upgrade({
name: "Transport",
description:
"+50% transport capacity. \n+50% movement speed out of combat. \nAllows units to be loaded while flying.",
tier: "T1",
position: "B",
fluxCost: 100,
researchTime: 30,
unlockedBy: ["faction/protectorate/building/mechanical-research-lab"],
parentId: this.id,
parentUUID: this.uuid,
});
}
}
export default Hauler;