ZSGG Public Library
Endari Needler
Endari T1 Merc Unit
import { EndariMercUnit } from "../../../../defaults/endari.js";
import { Attack } from "../../../../engine/ability.js";
// Stats transcribed from dev unit_data.json (source of truth). Flavor fields the export does
// not carry — description, tier, friendly ability names, attack targeting — are left empty /
// placeholder pending the separate description source.
class EndariNeedler extends EndariMercUnit {
override uuid: string;
static override src = "src/zerospace/mercenary/endari/unit/endari-needler.ts";
constructor() {
super();
this.hexiteCost = 175;
this.fluxCost = 25;
this.buildCount = 2;
this.name = "Endari Needler";
this.tier = "T1";
this.hotkey = "X";
this.uuid = "cb98175f-c5d9-4755-8892-884af91a9a4b";
this.internalId = "Troop_Endari_Needler_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Endari_Needler.Default__Troop_Endari_Needler_C";
this.internalTags = [
"Attackable.Unit.Troop",
"Attackable.Unit.Light",
"Attackable.ArmorType.Light",
"Attackable.Biological",
"Local.Endari",
];
this.internalSecondaryTags = ["Biological", "Infantry"];
// FUTURE-FEATURE: AMMO — the spine stock and its recharge have no fields, so the recharge
// time only exists in the description below.
this.description =
"Ranged medium unit which pulls the spines out of itself to throw at the enemy. Attack speed slows down when out of spines. \nSpines recharge every 1.25 seconds.";
this.hp = 225;
this.shields = 0;
this.armor = 0;
this.armorType = "light";
this.speed = 650;
this.supply = 2;
this.turnSpeed = 5000;
this.vision = 1600;
this.pushability = 1;
this.createdBy = ["mercenary/endari/building/silent-hollow", "mercenary/endari/unit/awoken-hollow"];
this.attacks.impossibleShards = new Attack({
internalId: "Default__Weapon_Endari_Needler_C",
name: "Impossible Shards",
damage: 12,
range: 775,
cooldown: 0.3,
armorPenetration: 0,
delay: 0.11,
targets: ["ground", "air"],
parentId: this.id,
parentUUID: this.uuid,
});
}
}
export default EndariNeedler;