UNPKG

@zerospacegg/iolin

Version:

Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)

85 lines 3.34 kB
"use strict"; /** * Operating Tower - Protectorate command center * Main base building that serves as the faction's central command hub */ Object.defineProperty(exports, "__esModule", { value: true }); exports.OperatingTower = void 0; const protectorate_js_1 = require("../../../../defaults/protectorate.cjs"); const ability_js_1 = require("../../../../engine/ability.cjs"); const turret_js_1 = require("../../../../engine/turret.cjs"); class OperatingTower extends protectorate_js_1.ProtectorateBaseBuilding { constructor() { super(); this.hexiteCost = 400; this.fluxCost = 0; this.buildTime = 60; this.buildCount = 1; this.name = "Operating Tower"; this.tier = "T0"; this.hotkey = "Q"; this.uuid = "a8166e7b-4a15-4ce7-b307-674adc8e9959"; this.hp = 2500; this.shields = 0; this.armorType = "heavy"; // Capture operating tower instance for turret apply method const operatingTower = this; // Building relationships this.createdBy = ["faction/protectorate/unit/prot-build-drone"]; this.creates = [ "faction/protectorate/unit/prot-build-drone", "faction/protectorate/building/prot-extractor", "faction/protectorate/unit/prot-harvester", "faction/protectorate/unit/prot-scout-drone", ]; this.unlocks = [ "faction/protectorate/building/supply-platform", "faction/protectorate/unit/prot-build-drone", "faction/protectorate/unit/prot-harvester", ]; // Home Base spell - set as primary base for recall priority this.spells.homeBase = new ability_js_1.Spell({ name: "Home Base", hotkey: "U", cooldown: 0.2, targets: ["self"], description: "Set this base as primary", parentId: this.id, parentUUID: this.uuid, }); // Turret capability this.maxAddOns = 1; // Defensive turret capability this.turrets.operatingTowerDefender = new turret_js_1.Turret({ name: "Operating Tower Defender", description: "Adds defensive capabilities to the command center", hexiteCost: 200, buildTime: 5, hp: 500, // HP addition amount unlocked: false, apply() { // Add HP boost (+500 HP, making total 2500) operatingTower.hp = (operatingTower.hp || 0) + 500; // Unlock defensive attack ability operatingTower.attacks.defense.unlocked = true; }, }); // Defensive attack ability (unlocked by turret) this.attacks.defense = new ability_js_1.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, }); } } exports.OperatingTower = OperatingTower; // Static property for source path OperatingTower.src = "src/zerospace/faction/protectorate/building/operating-tower.ts"; exports.default = OperatingTower; //# sourceMappingURL=operating-tower.js.map