ZSGG Public Library
Hellfire
Protectorate T2.5 Army Unit
import { ProtectorateArmyUnit } from "../../../../defaults/protectorate.js";
import { Attack, Siege, Upgrade } from "../../../../engine/ability.js";
export class Hellfire extends ProtectorateArmyUnit {
override uuid: string;
static override src = "src/zerospace/faction/protectorate/unit/hellfire.ts";
override get infuseCost(): number | undefined {
return 13;
}
constructor() {
super();
this.hexiteCost = 150;
this.fluxCost = 100;
this.buildTime = 65;
this.name = "Hellfire";
this.tier = "T2.5";
this.supply = 6;
this.uuid = "a4cb9bbf-57ca-4d5a-8611-6dad6020799e";
this.internalId = "Troop_Prot_Hellfire_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Prot_Hellfire.Default__Troop_Prot_Hellfire_C";
this.internalTags = ["Attackable.Unit.Troop", "Attackable.ArmorType.Medium"];
this.internalSecondaryTags = ["Vehicle"];
this.description = "Long range artillery";
this.hp = 300;
this.armorType = "medium";
this.speed = 400;
this.turnSpeed = 1000;
this.pushability = 0.45;
const unit = this;
this.attacks.missileLauncher = new Attack({
name: "Missile Launcher",
damage: 16,
shots: 6,
cooldown: 5,
cooldownBetweenShots: 0.2,
requiresMode: "sieged",
armorPenetration: 0,
delay: 0,
range: 1600,
splash: { multiplier: 1.0, range: 200 },
targets: ["ground"],
parentId: this.id,
parentUUID: this.uuid,
});
this.sieges.siegeMode = new Siege({
name: "Siege mode",
description: "Siege to gain +87.5% attack range. Cannot move while sieged.",
hotkey: "C",
togglesMode: "siege",
cooldown: 2.5,
});
this.upgrades.resonantMissiles = new Upgrade({
name: "Resonant Missiles",
description: "+50% missile speed. \n+15% more missiles",
tier: "T3.5",
fluxCost: 150,
researchTime: 60,
apply() {
// we don't have projectile speed as a thing we can track, so cant do missile speed
unit.attacks.missileLauncher!.shots! += 1; // this is the 15% more missiles
},
parentId: this.id,
parentUUID: this.uuid,
});
this.createdBy = ["faction/protectorate/building/assembly-plant"];
this.upgradedBy = ["faction/protectorate/building/mechanical-research-lab"];
this.unlockedBy = ["faction/protectorate/building/assembly-plant"];
}
}
export default Hellfire;