@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
90 lines • 3.67 kB
JavaScript
/**
* Seedling - Grell builder unit
* T0 builder that can construct all Grell structures. Becomes flying scout when infused.
*/
import { GrellBuilderUnit } from "../../../../defaults/grell.js";
import { InfuseState } from "../../../../engine/unit.js";
export class Seedling extends GrellBuilderUnit {
constructor() {
super();
// Auto-generated fixes from dev data comparison
this.hexiteCost = 0;
this.fluxCost = 0;
this.buildTime = 5;
this.buildCount = 1;
this.name = "Seedling";
this.tier = "T0";
this.hotkey = "S";
this.uuid = "f184e771-d2b9-4669-a9e3-99061a95c775";
// Internal game engine data
this.internalId = "Troop_Grell_Seedling_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Grell_Seedling.Default__Troop_Grell_Seedling_C";
this.internalTags = [
"Attackable.Unit.Troop",
"Attackable.Unit.Light",
"Unit.AutoControlGroup.Ignore",
"Unit.Temporary",
"Attackable.ArmorType.Light",
"Unit.Builder",
"Unit.IgnoreAllArmySelect",
"Attackable.Biological",
];
this.internalSecondaryTags = [];
this.unlockedBy = ["faction/grell/building/root-colony"];
this.createdBy = ["faction/grell/building/root-colony"];
this.description = "Can build structures.";
// Construction capabilities - all Grell buildings
this.creates = [
"faction/grell/building/incubator",
"faction/grell/building/medium-incubator",
"faction/grell/building/large-incubator",
"faction/grell/building/augmentation-pool",
"faction/grell/building/advanced-augmentation-pool",
"faction/grell/building/special-augmentation-pool",
"faction/grell/building/cultivator",
"faction/grell/building/root-colony",
"faction/grell/building/skrelling-nest",
"faction/grell/building/nourishing-pod",
];
this.hp = 20;
this.shields = 0;
this.armor = 0;
this.armorType = "medium";
this.speed = 225;
this.supply = 0;
this.vision = 1400;
this.turnSpeed = 3000;
// 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._infused === InfuseState.none;
}
get canBeReanimated() {
return false; // Seedlings cannot be reanimated
}
// Custom infusion logic - transforms ground builder into flying scout
_applyInfusion(value) {
if (value !== this._infused) {
if (value === 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._infused = value;
}
}
}
// Static property for source path
Seedling.src = "src/zerospace/faction/grell/unit/seedling.ts";
export default Seedling;
//# sourceMappingURL=seedling.js.map