@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
76 lines • 2.92 kB
JavaScript
/**
* Prot Build Drone - Protectorate builder unit
* Essential construction unit responsible for establishing and expanding Protectorate infrastructure
*/
import { Spell } from "../../../../engine/ability.js";
import { ProtectorateBuilderUnit } from "../../protectorate-classes.js";
import AdvancedFactory from "../building/advanced-factory.js";
import Airstrip from "../building/airstrip.js";
import Factory from "../building/factory.js";
import MechanicalResearchLab from "../building/mechanical-research-lab.js";
import { OperatingTower } from "../building/operating-tower.js";
import ProtBarracks from "../building/prot-barracks.js";
import ResearchLab from "../building/research-lab.js";
import SpecializedResearchLab from "../building/specialized-research-lab.js";
import SupplyPlatform from "../building/supply-platform.js";
export class ProtBuildDrone extends 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 = [
OperatingTower.id,
SupplyPlatform.id,
ProtBarracks.id,
Factory.id,
AdvancedFactory.id,
ResearchLab.id,
MechanicalResearchLab.id,
SpecializedResearchLab.id,
Airstrip.id,
];
// Abilities
this.spells.build = new Spell({
name: "Build",
hotkey: "B",
description: "Constructs buildings and structures",
range: 100,
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.repair = new 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 = [OperatingTower.id];
// Tags for identification and targeting - none needed for Prot Build Drone
// Lore
}
}
// Static property for source path
ProtBuildDrone.src = "src/zerospace/faction/protectorate/unit/prot-build-drone.ts";
export default ProtBuildDrone;
//# sourceMappingURL=prot-build-drone.js.map