@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
90 lines • 4.02 kB
JavaScript
"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