ZSGG Public Library
World Forge
Xol Tech Building
import { XolTechBuilding } from "../../../../defaults/xol.js";
import { GlobalUpgrade } from "../../../../engine/ability.js";
export class WorldForge extends XolTechBuilding {
override uuid: string;
static override src = "src/zerospace/faction/xol/building/world-forge.ts";
constructor() {
super();
this.name = "World Forge";
this.unlocksMercTier = "T3";
this.description =
"A research structure. Upgrades affect all Xol units. Only 3 upgrade types can be researched.\nUnits nearby the structure gain double the upgrade bonus.";
this.wikiDescription =
"A research structure. Upgrades affect all Xol units. Only 3 upgrade types can be researched.\nUnits nearby the structure gain double the upgrade bonus.";
this.tier = "";
this.hotkey = "X";
this.uuid = "08356581-4233-4041-b27b-59d84ab46941";
this.hexiteCost = 100;
this.fluxCost = 100;
this.buildTime = 75;
this.buildCount = 1;
this.hp = 1000;
this.armor = 1;
this.armorType = "building";
this.upgradeSelectionLimit = 3;
this.nearbyUpgradeMultiplier = 2;
this.unlockedBy = ["faction/xol/building/molten-core"];
this.unlocks = [
"faction/xol/unit/gravitron",
"faction/xol/unit/eradicator",
"faction/xol/unit/aegis",
"faction/xol/unit/cataclyst",
"faction/xol/unit/paradox",
];
const sharedUpgradeData = {
maxRank: 1,
appliesToTags: ["faction:xol", "unit"],
researchTime: 60,
parentId: this.id,
parentUUID: this.uuid,
} as const;
this.upgrades.armor = new GlobalUpgrade({
name: "Armor",
description: "+1 Armor to all Xol units.",
fluxCost: 200,
...sharedUpgradeData,
});
this.upgrades.cooldownReduction = new GlobalUpgrade({
name: "Cooldown Reduction",
description: "+20% cooldown rate to all Xol units.",
fluxCost: 200,
...sharedUpgradeData,
});
this.upgrades.damage = new GlobalUpgrade({
name: "Damage",
description: "+10% weapon damage to all Xol units.",
fluxCost: 200,
...sharedUpgradeData,
});
this.upgrades.vitals = new GlobalUpgrade({
name: "Vitals",
description: "+10% health and shields to all Xol units.",
fluxCost: 200,
...sharedUpgradeData,
});
this.upgrades.weaponRange = new GlobalUpgrade({
name: "Weapon Range",
description: "+20% weapon range to all Xol units.",
fluxCost: 200,
...sharedUpgradeData,
});
this.upgrades.castingRange = new GlobalUpgrade({
name: "Casting Range",
description: "+20% casting range to all Xol units.",
fluxCost: 400,
...sharedUpgradeData,
});
}
}
export default WorldForge;