@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
83 lines • 3.67 kB
JavaScript
"use strict";
/**
* Prot Build Drone - Protectorate builder unit
* Essential construction unit responsible for establishing and expanding Protectorate infrastructure
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProtBuildDrone = void 0;
const ability_js_1 = require("../../../../engine/ability.cjs");
const protectorate_classes_js_1 = require("../../protectorate-classes.cjs");
const advanced_factory_js_1 = __importDefault(require("../building/advanced-factory.cjs"));
const airstrip_js_1 = __importDefault(require("../building/airstrip.cjs"));
const factory_js_1 = __importDefault(require("../building/factory.cjs"));
const mechanical_research_lab_js_1 = __importDefault(require("../building/mechanical-research-lab.cjs"));
const operating_tower_js_1 = require("../building/operating-tower.cjs");
const prot_barracks_js_1 = __importDefault(require("../building/prot-barracks.cjs"));
const research_lab_js_1 = __importDefault(require("../building/research-lab.cjs"));
const specialized_research_lab_js_1 = __importDefault(require("../building/specialized-research-lab.cjs"));
const supply_platform_js_1 = __importDefault(require("../building/supply-platform.cjs"));
class ProtBuildDrone extends protectorate_classes_js_1.ProtectorateBuilderUnit {
get infuseCost() {
return 0;
}
constructor() {
super();
this.name = "Protectorate Build Drone";
this.tier = "T0";
this.supply = 0;
this.hexiteCost = 50;
this.fluxCost = 0;
this.buildTime = 15;
this.uuid = "13b39476-cf10-477d-bd74-c8d8563aee7f";
this.unlockedBy = ["faction/protectorate/building/operating-tower"];
// Mutable properties in constructor
this.hp = 100;
this.armor = 0;
this.armorType = "light";
this.speed = 500;
this.description =
"Automated construction unit capable of building all Protectorate structures and infrastructure.";
// Builder capabilities
this.creates = [
operating_tower_js_1.OperatingTower.id,
supply_platform_js_1.default.id,
prot_barracks_js_1.default.id,
factory_js_1.default.id,
advanced_factory_js_1.default.id,
research_lab_js_1.default.id,
mechanical_research_lab_js_1.default.id,
specialized_research_lab_js_1.default.id,
airstrip_js_1.default.id,
];
// Abilities
this.spells.build = new ability_js_1.Spell({
name: "Build",
hotkey: "B",
description: "Constructs buildings and structures",
range: 100,
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.repair = new ability_js_1.Spell({
name: "Repair",
hotkey: "R",
description: "Repairs damaged mechanical units and structures",
range: 100,
healing: 10,
parentId: this.id,
parentUUID: this.uuid,
});
// Entity relationships using static ID references
this.createdBy = [operating_tower_js_1.OperatingTower.id];
// Tags for identification and targeting - none needed for Prot Build Drone
// Lore
}
}
exports.ProtBuildDrone = ProtBuildDrone;
// Static property for source path
ProtBuildDrone.src = "src/zerospace/faction/protectorate/unit/prot-build-drone.ts";
exports.default = ProtBuildDrone;
//# sourceMappingURL=prot-build-drone.js.map