ZeroSpace.gg

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;