@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
71 lines • 2.88 kB
JavaScript
"use strict";
/**
* Prot Build Drone - Protectorate builder unit
* Essential construction unit responsible for establishing and expanding Protectorate infrastructure
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProtBuildDrone = void 0;
const ability_js_1 = require("../../../../engine/ability.cjs");
const protectorate_js_1 = require("../../../../defaults/protectorate.cjs");
class ProtBuildDrone extends protectorate_js_1.ProtectorateBuilderUnit {
get infuseCost() {
return 0;
}
constructor() {
super();
this.hexiteCost = 50;
this.fluxCost = 0;
this.buildTime = 15;
this.name = "Protectorate Build Drone";
this.tier = "T0";
this.supply = 0;
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 = [
"faction/protectorate/building/operating-tower",
"faction/protectorate/building/supply-platform",
"faction/protectorate/building/prot-barracks",
"faction/protectorate/building/factory",
"faction/protectorate/building/advanced-factory",
"faction/protectorate/building/research-lab",
"faction/protectorate/building/mechanical-research-lab",
"faction/protectorate/building/specialized-research-lab",
"faction/protectorate/building/airstrip",
];
// 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 = ["faction/protectorate/building/operating-tower"];
// 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