ZSGG Public Library
Sentinel
Protectorate T1.5 Army Unit
import { ProtectorateArmyUnit } from "../../../../defaults/protectorate.js";
import { Attack, Upgrade } from "../../../../engine/ability.js";
class Sentinel extends ProtectorateArmyUnit {
override uuid: string;
static override src = "src/zerospace/faction/protectorate/unit/sentinel.ts";
constructor() {
super();
this.hexiteCost = 75;
this.fluxCost = 75;
this.buildTime = 40;
this.buildCount = 1;
this.name = "Sentinel";
this.description = "Ranged infantry equipped with an anti-heavy cannon.";
this.tier = "T1.5";
this.hotkey = "R";
this.uuid = "71c56c20-0458-4f2d-905d-aa71d7f0f297";
this.internalId = "Troop_Prot_MP_HeavyRail_C";
this.internalPath =
"/Game/Nova/Archetypes_Troops/Multiplayer/Protectorate/Troop_Prot_MP_HeavyRail.Default__Troop_Prot_MP_HeavyRail_C";
this.internalTags = [
"Attackable.Unit.Troop",
"Attackable.Unit.Light",
"Attackable.ArmorType.Light",
"Attackable.Biological",
];
this.internalSecondaryTags = ["Infantry"];
this.hp = 180;
this.shields = 0;
this.armor = 0;
this.armorType = "light";
this.speed = 525;
this.turnSpeed = 5000;
this.vision = 1600;
this.pushability = 1;
this.supply = 3;
this.unlockedBy = ["faction/protectorate/building/research-lab"];
this.upgradedBy = ["faction/protectorate/building/research-lab"];
this.createdBy = ["faction/protectorate/building/prot-barracks"];
this.attacks.hr7mRailCannon = new Attack({
name: "HR-7M Rail Cannon",
damage: 30,
cooldown: 2.6,
armorPenetration: 0,
delay: 0.08,
range: 1300,
targets: ["ground"],
bonusDamage: [{ multiplier: 2.0, vs: ["armor:heavy"] }],
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.longshotCalibration = new Upgrade({
name: "Longshot Calibration",
description: "+4 attack range",
tier: "T1.5",
fluxCost: 100,
researchTime: 45,
apply: () => {
this.attacks.hr7mRailCannon!.range! += 400;
},
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.heavyRockets = new Upgrade({
name: "Heavy Rockets",
description: "+100% damage vs heavy armor",
tier: "T1.5",
fluxCost: 100,
researchTime: 45,
apply: () => {
const attack = this.attacks.hr7mRailCannon!;
attack.bonusDamage![0]!.multiplier! += 3.0;
},
parentId: this.id,
parentUUID: this.uuid,
});
}
}
export default Sentinel;