ZSGG Public Library
Predator
Protectorate T2 Army Unit
import { ProtectorateArmyUnit } from "../../../../defaults/protectorate.js";
import { Attack, Spell, Upgrade } from "../../../../engine/ability.js";
class Predator extends ProtectorateArmyUnit {
override uuid: string;
static override src = "src/zerospace/faction/protectorate/unit/predator.ts";
override get infuseCost(): number | undefined {
return 3;
}
constructor() {
super();
this.hexiteCost = 125;
this.fluxCost = 25;
this.buildTime = 32;
this.buildCount = 2;
this.name = "Predator";
this.tier = "T2";
this.supply = 3;
this.uuid = "c8c73071-90af-403f-9929-32efb79242c3";
this.internalId = "Troop_Prot_Predator_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Prot_Predator.Default__Troop_Prot_Predator_C";
this.internalTags = ["Attackable.Unit.Troop", "Attackable.ArmorType.Light"];
this.internalSecondaryTags = ["Vehicle"];
this.hp = 125;
this.armor = 0;
this.armorType = "light";
this.speed = 900;
this.turnSpeed = 3000;
this.pushability = 0.45;
this.maxTurrets = 0;
this.description = "Fast vehicle that can lay mines.";
this.attacks.shockCannon = new Attack({
name: "Shock Cannon",
damage: 26,
cooldown: 1.6,
armorPenetration: 0,
delay: 0,
range: 700,
targets: ["ground"],
bonusDamage: [{ multiplier: 1.5, vs: ["armor:medium"] }],
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.proximityMine = new Spell({
name: "Lay Mine",
description:
"Lay a Proximity Mine (25hp, cloaked, deals 25 dmg, gives vision on slowed units when an enemy gets close)",
cooldown: 120,
forceAutocast: false,
unlocked: false,
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.proximityMine = new Upgrade({
name: "Proximity Mine",
description: "Unlocks Proximity Mine ability",
tier: "T1.5",
fluxCost: 100,
researchTime: 40,
apply: () => {
this.spells.layMine!.unlocked = true;
},
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.reinforcedMatrix = new Upgrade({
name: "Reinforced Matrix",
description: "+75 shields",
tier: "T2.5",
fluxCost: 150,
researchTime: 50,
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 Predator;