ZSGG Public Library
Havoc
Xol Co-Op Army Unit
import { XolArmyUnit } from "../../../../../defaults/xol.js";
import { Passive, Spell } from "../../../../../engine/ability.js";
export class CoopHavoc extends XolArmyUnit {
static override src = "src/zerospace/coop/commander/anrubic/unit/coop-anrubic-havoc.ts";
override eligibleForInfusionOverride = true;
override replicateCostOverride = 32.5;
override get variantOf(): string {
return "faction/xol/unit/havoc";
}
constructor() {
super();
this.name = "Havoc";
this.description = "It charges through enemies. Explodes on death dealing 300 damage.";
this.tier = "T2";
this.uuid = "bdfd2849-4009-43f4-b25e-14dbb9e5410a";
// Not buildable — a Roller becomes one via the Havoc topbar — but it carries an intrinsic
// cost anyway, which is what prices Replicate and Reanimate against it.
this.internalId = "Troop_Xol_Havoc_C";
this.internalTags = [
"Attackable.Unit.Troop",
"Local.Xol.Havoc",
"Attackable.SecondaryType.Vehicle",
"Attackable.ArmorType.Medium",
"Troop.Xol.Tier2",
];
this.internalSecondaryTags = ["Vehicle"];
//TODO Stats might actually be different from PVP. Not in unit test map.
this.hexiteCost = 200;
this.fluxCost = 200;
this.hp = 400;
this.shields = 0;
this.armor = 1;
this.armorType = "medium";
this.speed = 900;
this.supply = 4;
this.carryCapacity = 8;
this.passives.rollOver = new Passive({
name: "Roll Over",
description:
"Damages units underneath the Havoc every 0.1 seconds while moving, up to 40 damage per hit at maximum speed. Deals no damage while stationary. Maximum-speed damage increases by approximately 5 per loaded Roller.",
damage: 40,
cooldown: 0.1,
targetMode: "around-self",
targets: ["ground"],
parentId: this.id,
parentUUID: this.uuid,
});
this.passives.explodes = new Passive({
name: "Explodes",
description: "Explodes on death, dealing 300 damage.",
damage: 300,
targetMode: "around-self",
targets: ["ground"],
parentId: this.id,
parentUUID: this.uuid,
});
this.supply = 2;
this.tier = "";
this.hexiteCost = 0;
this.fluxCost = 0;
this.spells.superCharge = new Spell({
name: "Supercharge",
hotkey: "F",
description: "Increases its movement speed by +50%, grants 80% damage reduction. Lasts 15 seconds.",
cooldown: 90, //TODO Verify
duration: 15,
targets: ["map"],
targetMode: "location",
parentId: this.id,
parentUUID: this.uuid,
});
}
}
export default CoopHavoc;