@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
98 lines • 3.95 kB
JavaScript
"use strict";
/**
* Legion Garrison Tower - Main base building with defensive capabilities
* Fortress-monastery that serves as both defensive stronghold and sacred center of faith
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.GarrisonTower = void 0;
const ability_js_1 = require("../../../../engine/ability.cjs");
const legion_classes_js_1 = require("../../legion-classes.cjs");
const legion_build_drone_js_1 = require("../unit/legion-build-drone.cjs");
const legion_laborer_js_1 = require("../unit/legion-laborer.cjs");
const legion_scout_drone_js_1 = require("../unit/legion-scout-drone.cjs");
const idal_conduit_js_1 = require("./idal-conduit.cjs");
const legion_barracks_js_1 = require("./legion-barracks.cjs");
const legion_extractor_js_1 = require("./legion-extractor.cjs");
class GarrisonTower extends legion_classes_js_1.LegionBaseBuilding {
constructor() {
super();
this.name = "Garrison Tower";
this.tier = "T0";
this.hexiteCost = 400;
this.fluxCost = 0;
this.buildTime = 60;
this.buildCount = 1;
this.uuid = "4d69e1d9-7c13-492d-a6ec-8bf8d0689795";
// Fortress-monastery stats
this.hp = 2000;
this.armor = 1;
this.armorType = "building";
this.speed = 0;
this.hotkey = "Q";
// Relationships
this.createdBy = [legion_build_drone_js_1.LegionBuildDrone.id];
this.unlocks = [
idal_conduit_js_1.IdalConduit.id,
legion_build_drone_js_1.LegionBuildDrone.id,
legion_laborer_js_1.LegionLaborer.id,
legion_scout_drone_js_1.LegionScoutDrone.id,
legion_extractor_js_1.LegionExtractor.id,
legion_barracks_js_1.LegionBarracks.id,
];
// Base building production capabilities
this.creates = [
legion_build_drone_js_1.LegionBuildDrone.id, // Worker unit
legion_laborer_js_1.LegionLaborer.id, // Resource gatherer
legion_scout_drone_js_1.LegionScoutDrone.id, // Scout unit
legion_extractor_js_1.LegionExtractor.id, // Resource extractor
];
// 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,
});
// Addon system
this.maxAddOns = 1;
// TODO: Convert to modern add-on API when available
// this.addAddOn("Garrison Tower Attacker", {
// description: "Adds a defensive turret and +1 armor",
// hotkey: "e",
// hexiteCost: 200,
// buildTime: 5,
// addOnType: "building-turret",
// hp: 500,
// abilities: [],
// transformations: [
// {
// type: "addon-garrison-tower-garrison-tower-attacker",
// name: "Garrison Tower Attacker Effects",
// statModifications: {
// armorAddition: 1,
// hpAddition: 500,
// },
// abilityAdditions: {
// Attack: {
// name: "Attack",
// damage: 16,
// cooldown: 0.45,
// range: 1950,
// abilityType: "attack",
// targets: ["ground", "air"],
// },
// },
// },
// ],
// uuid: "93a62194-12ca-4c6b-ad99-c1f8329e6527",
// });
// Lore - fortress-monastery and sacred center
}
}
exports.GarrisonTower = GarrisonTower;
GarrisonTower.src = "src/zerospace/faction/legion/building/garrison-tower.ts";
exports.default = GarrisonTower;
//# sourceMappingURL=garrison-tower.js.map