ZSGG Public Library
World Forge
Xol Tech Building
import { XolTechBuilding } from "../../../../defaults/xol.js";
import { Upgrade } 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.description =
"Choose up to 3 of 6 upgrades. Each upgrade can gain 2 ranks, or 3 ranks with the T3 Upgrades talent.\nUpgrades affect all Xol army units. Units near the World Forge gain double the upgrade bonus.";
this.wikiDescription =
"Choose up to 3 of 6 upgrades. Each upgrade can gain 2 ranks, or 3 ranks with [[faction/xol/talents/t3-upgrades]].\nUpgrades affect all Xol army units. Units near the World Forge 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.unlocks = ["faction/xol/unit/gravitron", "faction/xol/unit/eradicator"];
const sharedUpgradeData = {
maxRank: 2,
maxRankWithTalent: 3,
rankUnlockTalent: "faction/xol/talents/t3-upgrades",
appliesToTags: ["faction:xol", "unit:army"],
researchTime: 60,
parentId: this.id,
parentUUID: this.uuid,
} as const;
this.upgrades.armor = new Upgrade({
name: "Armor",
description: "+1 Armor to all Xol army units per rank.",
fluxCost: 200,
...sharedUpgradeData,
});
this.upgrades.cooldownReduction = new Upgrade({
name: "Cooldown Reduction",
description: "+20% cooldown rate to all Xol army units per rank.",
fluxCost: 200,
...sharedUpgradeData,
});
this.upgrades.damage = new Upgrade({
name: "Damage",
description: "+10% weapon damage to all Xol army units per rank.",
fluxCost: 200,
...sharedUpgradeData,
});
this.upgrades.vitals = new Upgrade({
name: "Vitals",
description: "+10% health and shields to all Xol army units per rank.",
fluxCost: 200,
...sharedUpgradeData,
});
this.upgrades.weaponRange = new Upgrade({
name: "Weapon Range",
description: "+20% weapon range to all Xol army units per rank.",
fluxCost: 200,
...sharedUpgradeData,
});
this.upgrades.castingRange = new Upgrade({
name: "Casting Range",
description: "+20% casting range to all Xol army units per rank.",
fluxCost: 400,
...sharedUpgradeData,
});
}
}
export default WorldForge;