ZSGG Public Library
Bloomwell
Grell T0 Base Building
import { GrellBaseBuilding } from "../../../../defaults/grell.js";
import { Attack, Spell } from "../../../../engine/ability.js";
import { Turret } from "../../../../engine/turret.js";
export class Bloomwell extends GrellBaseBuilding {
static override src = "src/zerospace/faction/grell/building/bloomwell.ts";
constructor() {
super();
this.hexiteCost = 400;
this.fluxCost = 0;
this.buildTime = 60;
this.buildCount = 1;
this.name = "Bloomwell";
this.tier = "T0";
this.hp = 2500;
this.shields = 0;
this.armor = 2;
this.maxTurrets = 1;
this.providesBiomass = 1500;
this.description = "Mining outpost which builds extractors to mine Hexite. \nCan be upgraded to attack.";
this.uuid = "9f01463e-8972-4011-8364-6714d89d0a1e";
this.internalId = "Building_Grell_RootColony_C";
this.internalPath =
"/Game/Nova/Archetypes_Buildings/Building_Grell_RootColony.Default__Building_Grell_RootColony_C";
this.internalTags = [
"Attackable.Building",
"Select.AllProduction.Disabled",
"Building.OperatingTower",
"Ability.RecallTarget",
"Logic.ContestCritical",
"Building.Production.Harvester",
"Building.Grell",
"Research.Production.ShareLocation.Merc",
"Attackable.Biological",
];
this.internalSecondaryTags = [];
this.setupGrellPassives();
this.createdBy = ["faction/grell/unit/seedling"];
this.unlockedBy = [];
this.upgradedBy = [];
this.creates = [
"faction/grell/unit/seedling",
"faction/grell/unit/gatherer",
"faction/grell/building/feeding-vine",
];
this.unlocks = [
"faction/grell/building/nourishing-pod",
"faction/grell/building/cultivator",
"faction/grell/unit/seedling",
"faction/grell/unit/gatherer",
];
this.spells.homeBase = new Spell({
name: "Home Base",
hotkey: "U",
cooldown: 0.2,
targets: ["self"],
description: "Set this base as primary",
parentId: this.id,
parentUUID: this.uuid,
});
const colony = this;
this.attacks.attack = new Attack({
name: "Attack",
description: "Defensive attack system that targets air and ground units",
damage: 23,
cooldown: 0.66,
range: 2000,
targets: ["air", "ground"],
unlocked: false,
parentId: this.id,
parentUUID: this.uuid,
});
this.turrets.bloomwellAttacker = new Turret({
name: "Bloomwell Attacker",
description: "Allows the Bloomwell to attack enemies.",
hexiteCost: 200,
buildTime: 5,
hp: 500,
unlocked: false,
apply() {
colony.armor = (colony.armor || 0) + 1;
colony.attacks.attack!.unlocked = true;
},
});
this.attacks.attack.unlockedBy = [this.turrets.bloomwellAttacker.id];
this.turrets.bloomwellAttacker.unlocks = [this.attacks.attack.id];
}
}
export default Bloomwell;