UNPKG

@zerospacegg/iolin

Version:

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

76 lines 2.92 kB
/** * 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