ZSGG Public Library
Operating Tower
Protectorate T0 Base Building
import { ProtectorateBaseBuilding } from "../../../../defaults/protectorate.js";
import { Attack, Spell } from "../../../../engine/ability.js";
import { Turret } from "../../../../engine/turret.js";
export class OperatingTower extends ProtectorateBaseBuilding {
override uuid: string;
static override src = "src/zerospace/faction/protectorate/building/operating-tower.ts";
constructor() {
super();
this.hexiteCost = 400;
this.fluxCost = 0;
this.buildTime = 60;
this.buildCount = 1;
this.name = "Operating Tower";
this.description = "Mining outpost which builds extractors to mine Hexite. \nCan be upgraded with a turret.";
this.tier = "T0";
this.hotkey = "Q";
this.uuid = "a8166e7b-4a15-4ce7-b307-674adc8e9959";
this.internalId = "Building_Prot_ExtractorOperatingTower_C";
this.internalPath =
"/Game/Nova/Archetypes_Buildings/Building_Prot_ExtractorOperatingTower.Default__Building_Prot_ExtractorOperatingTower_C";
this.internalTags = [
"Building.Production.Harvester",
"Research.Requirements.UnitProducer",
"Building.OperatingTower",
"Select.AllProduction.Disabled",
"Attackable.Building.Anorganic",
"Ability.RecallTarget",
"Logic.ContestCritical",
"Research.Production.ShareLocation.Merc",
];
this.internalSecondaryTags = [];
this.hp = 2500;
this.shields = 0;
this.armorType = "heavy";
const operatingTower = this;
this.createdBy = ["faction/protectorate/unit/prot-build-drone"];
this.creates = [
"faction/protectorate/unit/prot-build-drone",
"faction/protectorate/building/prot-extractor",
"faction/protectorate/unit/protectorate-prospector",
"faction/protectorate/unit/recon-drone",
];
this.unlocks = [
"faction/protectorate/building/supply-platform",
"faction/protectorate/unit/prot-build-drone",
"faction/protectorate/unit/protectorate-prospector",
];
this.spells.homeBase = new Spell({
name: "Home Base",
hotkey: "U",
cooldown: 0.2,
targets: ["self"],
description: "Set this base as primary",
parentId: this.id,
parentUUID: this.uuid,
});
this.maxTurrets = 1;
this.turrets.operatingTowerTurret = new Turret({
name: "Operating Tower Turret",
description: "Adds defensive capabilities to the command center",
hexiteCost: 225,
fluxCost: 225,
buildTime: 45,
hp: 1000,
unlocked: false,
apply() {
operatingTower.hp = (operatingTower.hp || 0) + 500;
operatingTower.attacks.defense!.unlocked = true;
},
});
this.attacks.defense = new Attack({
name: "Defense",
description: "Defensive turret attack",
damage: 15,
cooldown: 1.2,
range: 1400,
targets: ["air", "ground"],
unlocked: false,
parentId: this.id,
parentUUID: this.uuid,
});
}
}
export default OperatingTower;