ZSGG Public Library
Titan
Protectorate Co-Op T2.5 Army Unit
import Titan from "../../../../faction/protectorate/unit/titan.js";
import { Attack, Spell, Upgrade } from "../../../../../engine/ability.js";
export class CoopTitan extends Titan {
static override src = "src/zerospace/coop/commander/aster/unit/coop-aster-titan.ts";
constructor() {
super();
this.internalId = undefined;
this.internalPath = undefined;
this.setVariantUUID("coop-aster");
const unit = this;
this.attacks.sTXFanusTwinMissile = new Attack({
name: "STX Fanus Twin Missile",
damage: 24,
shots: 2,
range: 1500,
splash: { multiplier: 0.5, range: 200 },
cooldown: 1,
targets: ["air"],
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.droneStrike = new Spell({
name: "Nelson Suppression Drone",
description: "Deploys an invulnerable drone that travels to the target area and deals 200 damage over 5 seconds.",
damageOverTime: 200,
duration: 5,
delay: 1,
energyCost: 65,
targets: ["ground", "air"],
unlocked: false,
parentId: this.id,
parentUUID: this.uuid,
uuid: "fbd22282-6bd3-47ae-868c-42376d021059",
});
this.upgrades.jetpack = new Upgrade({
name: "Jetpack",
unlockedBy: ["faction/protectorate/building/mechanical-research-lab"],
description: "Unlocks the Jetpack ability",
tier: "T1",
position: "A",
fluxCost: 100,
researchTime: 40,
apply: () => {
unit.spells.jetpack!.unlocked = true;
},
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.droneStrike = new Upgrade({
name: "Nelson Suppression Drone",
description: "Unlocks the Drone Strike ability.",
tier: "T2",
position: "B",
fluxCost: 150,
researchTime: 60,
apply: () => {
unit.spells.droneStrike!.unlocked = true;
},
parentId: this.id,
parentUUID: this.uuid,
uuid: "5f5fb384-21ed-41a7-87a6-1ee018e11ddc",
});
this.upgrades.antimatterBoosters = new Upgrade({
name: "Antimatter Boosters",
unlockedBy: ["faction/protectorate/building/mechanical-research-lab"],
description: "Increases weapon range by 36.364%: 15 range against ground and 20.45 against air.",
tier: "T2",
position: "A",
fluxCost: 150,
researchTime: 60,
apply() {
unit.attacks.sTXFanusTwinMissile!.range! += 300;
},
parentId: this.id,
parentUUID: this.uuid,
});
this.unlockedBy = ["coop/commander/aster/building/coop-aster-mechanical-research-lab"];
this.createdBy = ["coop/commander/aster/building/coop-aster-assembly-plant"];
this.upgradedBy = ["coop/commander/aster/building/coop-aster-mechanical-research-lab"];
}
}
export default CoopTitan;