ZSGG Public Library
Predator
Protectorate Co-Op T2 Army Unit
import { ArmyUnit } from "../../../../../engine/unit.js";
import { Attack, Spell, Upgrade } from "../../../../../engine/ability.js";
export class CoopPredator extends ArmyUnit {
static override src = "src/zerospace/coop/commander/aster/unit/coop-aster-predator.ts";
constructor() {
super();
this.faction = "protectorate";
this.factionName = "Protectorate";
this.hexiteCost = 125;
this.fluxCost = 25;
this.buildTime = 36;
this.buildCount = 2;
this.name = "Predator";
this.tier = "T2";
this.supply = 3;
this.uuid = "8081db56-9efb-44cf-a032-02a67e67b736";
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 = 300;
this.armor = 0;
this.armorType = "light";
this.speed = 800;
this.turnSpeed = 3000;
this.pushability = 0.45;
this.maxTurrets = 0;
this.description = "Fast vehicle that can lay mines.";
this.attacks.sKT23ShockCannon = new Attack({
internalId: "Default__Weapon_Vulture_GrenadeLauncher_C",
name: "SKT-23 Shock Cannon",
damage: 26,
//TODO shoots two attacks in a burst. Represent this data
cooldown: 2,
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: "Proximity 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",
unlockedBy: ["faction/protectorate/building/mechanical-research-lab"],
description: "Unlocks Proximity Mine ability\nThis upgrade is temporarily not avilable!",
tier: "T1",
position: "A",
fluxCost: 125,
researchTime: 50,
apply: () => {
this.spells.proximityMine!.unlocked = true;
},
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.reinforcedMatrix = new Upgrade({
name: "Reinforced Matrix",
unlockedBy: ["faction/protectorate/building/mechanical-research-lab"],
description: "+50 shields",
tier: "T1",
position: "B",
fluxCost: 125,
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"];
this.internalId = undefined;
this.internalPath = undefined;
this.setVariantUUID("coop-aster");
this.hp = 150;
this.fluxCost = 0;
this.unlockedBy = ["coop/commander/aster/building/coop-aster-assembly-plant"];
this.upgrades.proximityMine.description = "Unlocks Proximity Mine ability.";
this.upgrades.proximityMine.fluxCost = 100;
this.upgrades.proximityMine.researchTime = 40;
this.upgrades.reinforcedMatrix.tier = "T2";
this.upgrades.reinforcedMatrix.position = "A";
this.upgrades.proximityMine.fluxCost = 100;
this.upgrades.proximityMine.researchTime = 45;
this.createdBy = ["coop/commander/aster/building/coop-aster-assembly-plant"];
this.upgradedBy = ["coop/commander/aster/building/coop-aster-mechanical-research-lab"];
}
}
export default CoopPredator;