ZSGG Public Library
Commando
Protectorate T1 Army Unit
import { ProtectorateArmyUnit } from "../../../../defaults/protectorate.js";
import { Attack, Spell, Upgrade } from "../../../../engine/ability.js";
export class Commando extends ProtectorateArmyUnit {
override uuid: string;
static override src = "src/zerospace/faction/protectorate/unit/commando.ts";
override get infuseCost(): number | undefined {
return 3;
}
constructor() {
super();
this.hexiteCost = 50;
this.fluxCost = 0;
this.buildTime = 24;
this.name = "Commando";
this.tier = "T1";
this.supply = 2;
this.uuid = "38c2cfa9-c894-47b9-a2c0-7715de8ed15c";
this.internalId = "Troop_Prot_Commando_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Prot_Commando.Default__Troop_Prot_Commando_C";
this.internalTags = [
"Attackable.Unit.Troop",
"Attackable.Unit.Light",
"Attackable.ArmorType.Light",
"Attackable.Biological",
];
this.internalSecondaryTags = ["Biological", "Infantry"];
this.hp = 130;
this.armor = 0;
this.armorType = "light";
this.speed = 550;
this.turnSpeed = 5000;
this.description = "Ranged infantry equipped with a jetpack";
this.attacks.s10CombatRifle = new Attack({
name: "S-10 Combat Rifle",
damage: 8,
cooldown: 0.84,
armorPenetration: 0,
delay: 0.01,
range: 700,
targets: ["ground", "air"],
parentId: this.id,
parentUUID: this.uuid,
});
const commando = this;
this.spells.jetpack = new Spell({
name: "Jetpack",
hotkey: "D",
cooldown: 18,
description: "Jump to a target location, ignoring terrain.",
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.impulseThrusters = new Upgrade({
name: "Impulse Thrusters",
description: "-33% Jetpack cooldown. \n+42% Jetpack Range.",
tier: "T1",
fluxCost: 100,
researchTime: 40,
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.precisionScope = new Upgrade({
name: "Precision Scope",
description: "+4 attack range",
tier: "T1.5",
fluxCost: 100,
researchTime: 45,
apply: () => {
commando.attacks.s10CombatRifle!.range! += 400;
},
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.assaultTraining = new Upgrade({
name: "Assault Training",
description: "After using Jetpack, for 4 seconds: \n+50% attack speed \n+50% movement speed.",
tier: "T2.5",
fluxCost: 150,
researchTime: 60,
parentId: this.id,
parentUUID: this.uuid,
});
this.createdBy = ["faction/protectorate/building/prot-barracks"];
this.upgradedBy = ["faction/protectorate/building/research-lab"];
this.unlockedBy = ["faction/protectorate/building/prot-barracks"];
}
}
export default Commando;