UNPKG

@zerospacegg/iolin

Version:

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

90 lines 4.02 kB
"use strict"; /** * Seedling - Grell builder unit * T0 builder that can construct all Grell structures. Becomes flying scout when infused. */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Seedling = void 0; const unit_js_1 = require("../../../../engine/unit.cjs"); const grell_classes_js_1 = require("../../grell-classes.cjs"); const advanced_augmentation_pool_js_1 = require("../building/advanced-augmentation-pool.cjs"); const augmentation_pool_js_1 = require("../building/augmentation-pool.cjs"); const cultivator_js_1 = require("../building/cultivator.cjs"); const incubator_js_1 = require("../building/incubator.cjs"); const large_incubator_js_1 = require("../building/large-incubator.cjs"); const medium_incubator_js_1 = require("../building/medium-incubator.cjs"); const nourishing_pod_js_1 = require("../building/nourishing-pod.cjs"); const root_colony_js_1 = __importDefault(require("../building/root-colony.cjs")); const skrelling_nest_js_1 = require("../building/skrelling-nest.cjs"); const special_augmentation_pool_js_1 = require("../building/special-augmentation-pool.cjs"); class Seedling extends grell_classes_js_1.GrellBuilderUnit { constructor() { super(); this.name = "Seedling"; this.tier = "T0"; this.hotkey = "S"; this.hexiteCost = 0; this.fluxCost = 0; this.buildTime = 5; this.buildCount = 1; this.uuid = "f184e771-d2b9-4669-a9e3-99061a95c775"; this.unlockedBy = [root_colony_js_1.default.id]; this.createdBy = [root_colony_js_1.default.id]; this.description = "Can build structures."; // Construction capabilities - all Grell buildings this.creates = [ incubator_js_1.Incubator.id, medium_incubator_js_1.MediumIncubator.id, large_incubator_js_1.LargeIncubator.id, augmentation_pool_js_1.AugmentationPool.id, advanced_augmentation_pool_js_1.AdvancedAugmentationPool.id, special_augmentation_pool_js_1.SpecialAugmentationPool.id, cultivator_js_1.Cultivator.id, root_colony_js_1.default.id, skrelling_nest_js_1.SkrellingNest.id, nourishing_pod_js_1.NourishingPod.id, ]; this.hp = 20; this.shields = 0; this.armor = 0; this.armorType = "medium"; this.speed = 225; this.supply = 0; // domain is readonly, can't be changed after construction // Biomass healing passive inherited automatically from GrellBuilderUnit // No combat abilities - this is a pure builder/scout unit } get canBeInfused() { return this._getInfused() === unit_js_1.InfuseState.none; } get canBeReanimated() { return false; // Seedlings cannot be reanimated } // Custom infusion logic - transforms ground builder into flying scout _applyInfusion(value) { if (value !== this._getInfused()) { if (value === unit_js_1.InfuseState.none) { // Reset to base ground builder form const base = new this.constructor(); this.hp = base.hp; this.speed = base.speed; // domain is readonly, can't be changed - would need different approach } else { // Transform into flying scout (both single and double infusion same for seedling) this.hp = 120; this.speed = 575; // PKL shows 575 speed when infused // domain is readonly, can't be changed - would need different approach } this._setInfused(value); } } } exports.Seedling = Seedling; // Static property for source path Seedling.src = "src/zerospace/faction/grell/unit/seedling.ts"; exports.default = Seedling; //# sourceMappingURL=seedling.js.map