ZSGG Public Library
Spectron
Xol T1 Army Unit
import { XolArmyUnit } from "../../../../defaults/xol.js";
import { Attack } from "../../../../engine/ability.js";
import { applyXolMerges } from "../_util/xol-merges.js";
export class Spectron extends XolArmyUnit {
override uuid: string;
static override src = "src/zerospace/faction/xol/unit/spectron.ts";
constructor() {
super();
applyXolMerges(this);
this.hexiteCost = 24;
this.fluxCost = 50;
this.buildTime = 5;
this.name = "Spectron";
this.tier = "T1";
this.hotkey = "";
this.uuid = "e424b0b3-3aee-49e8-97ca-fdddfe6ed2b2";
this.internalId = "Troop_Xol_Spectron_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Xol_Spectron.Default__Troop_Xol_Spectron_C";
this.internalTags = [
"Attackable.Unit.Troop",
"Attackable.ArmorType.Light",
"Local.Xol.Spectron",
"Troop.Xol.Tier1",
];
this.internalSecondaryTags = ["Infantry"];
this.description =
"Ranged unit that charges up its projectile to deal more damage. Can attack ground and air units.";
this.createdBy = ["faction/xol/building/spectral-foundry"];
this.unlockedBy = ["faction/xol/building/spectral-foundry"];
this.hp = 120;
this.shields = 0;
this.armor = 0;
this.armorType = "light";
this.speed = 600;
this.supply = 2;
this.turnSpeed = 2000;
this.vision = 1600;
this.pushability = 0;
this.modes = [
{ slug: "normal", name: "Normal", description: "Has not been upgraded by the Molten Core." },
{ slug: "molten", name: "Molten", description: "Upgraded by the Molten Core for 100 energy." },
];
this.attacks.primary = new Attack({
name: "Singularity Orb",
damage: 39,
range: 1000,
cooldown: 1.3,
armorPenetration: 0,
delay: 0.143,
targets: ["ground", "air"],
bonusDamage: [{ multiplier: 1.5, vs: ["armor:medium"] }],
requiresMode: "normal",
parentId: this.id,
parentUUID: this.uuid,
});
this.attacks.singularityOrbMolten = new Attack({
name: "Singularity Orb (Molten)",
damage: 80,
range: 1800,
cooldown: 5,
splash: { multiplier: 1, range: 150 },
bonusDamage: [{ multiplier: 1.5, vs: ["armor:medium"] }],
targets: ["ground", "air"],
requiresMode: "molten",
parentId: this.id,
parentUUID: this.uuid,
});
}
}
export default Spectron;