ZeroSpace.gg

Xol

Main Faction

import { XolFaction, XolTalent, XolTopbar } from "../../defaults/xol.js"; export class Xol extends XolFaction { override uuid: string; static override src = "src/zerospace/faction/xol.ts"; constructor() { super(); this.name = "Xol"; this.uuid = "6f3fcc4c-0ecf-4865-8aab-5fa27adc3a7c"; // TODO: description coming from a separate source. this.description = ""; this.buildings = [ "faction/xol/building/world-engine", "faction/xol/building/extractor", "faction/xol/building/power-core", "faction/xol/building/gyroforge", "faction/xol/building/xyther-assembler", "faction/xol/building/spectral-foundry", "faction/xol/building/resonator", "faction/xol/building/world-forge", "faction/xol/building/molten-core", ]; this.units = [ "faction/xol/unit/xol-harvester", "faction/xol/unit/roller", "faction/xol/unit/xyther", "faction/xol/unit/spectron", "faction/xol/unit/echo", "faction/xol/unit/defiant", "faction/xol/unit/synapse", "faction/xol/unit/gravitron", "faction/xol/unit/eradicator", "faction/xol/unit/paradox", "faction/xol/unit/havoc", "faction/xol/unit/scouting-drone", ]; this.heroes = ["faction/xol/hero/anrubic"]; this.topbars.recall = new XolTopbar({ name: "Recall", topbarType: "recall", slot: 1, hotkey: "Q", energyCost: 5, cooldown: 90, targets: ["friendly:ground", "friendly:air", "map"], targetMode: "location", description: "Recall units to anywhere inside Power Fields.", }); this.topbars.replicate = new XolTopbar({ name: "Replicate", topbarType: "special", slot: 2, hotkey: "W", variableEnergyCost: "Varies by each copied unit", targets: ["friendly:ground", "friendly:air", "map"], targetMode: "location", description: "Create copies of friendly units in the selected area, up to the number that can be afforded with available topbar energy.", }); this.topbars.orbitalLaser = new XolTopbar({ name: "Orbital Laser", topbarType: "ultimate", requiredLevel: 5, unlocked: false, energyCost: 25, cooldown: 120, duration: 15, damage: 40, damageInstancesPerSecond: 3, targets: ["map"], targetMode: "location", description: "Spawn a controllable orbital laser for 15 seconds. Deals 40 damage 3 times per second.", }); this.topbars.havoc = new XolTopbar({ name: "Havoc", topbarType: "special", requiredLevel: 5, unlocked: false, energyCost: 10, cooldown: 60, charges: 3, targets: ["friendly:ground"], targetMode: "unit", description: "Transform a Roller into a Havoc.", wikiDescription: "Transforms a [[faction/xol/unit/roller]] into a [[faction/xol/unit/havoc]].", }); this.topbars.unmerge = new XolTopbar({ name: "Unmerge", topbarType: "special", requiredLevel: 3, unlocked: false, cooldown: 60, range: 400, targets: ["map"], targetMode: "location", description: "Unmerges Xol units in a 4 range radius.", }); this.talents.instantPowerCore = new XolTalent({ name: "Instant Power Core", level: 1, description: "Power Cores build instantly.", }); this.talents.powerCoreShields = new XolTalent({ name: "Power Core Shields", level: 1, description: "Power Cores gain 350 shields.", }); this.talents.efficientMerging = new XolTalent({ name: "Efficient Merging", level: 2, description: "Reduces merge costs by 25 Flux.", }); this.talents.efficientReplication = new XolTalent({ name: "Efficient Replication", level: 3, description: "Reduces replication time to 1 second.", }); this.talents.unmerge = new XolTalent({ name: "Unmerge", level: 3, description: "Unmerges Xol units in a 4 range radius.", wikiDescription: "Unlocks the [[faction/xol/topbar/unmerge]] ability, which unmerges Xol units in a 4 range radius.", }); this.talents.improvedSystems = new XolTalent({ name: "Improved Systems", level: 4, description: "+100% Overclock duration. \n-50% merging time.", }); this.talents.orbitalLaser = new XolTalent({ name: "Orbital Laser", level: 5, description: "Spawn a controllable laser for 15 seconds.", wikiDescription: "Unlocks the [[faction/xol/topbar/orbital-laser]] ability, which spawns a controllable laser for 15 seconds.", }); this.talents.havoc = new XolTalent({ name: "Havoc", level: 5, description: "Transform a Roller into a Havoc.", wikiDescription: "Unlocks the [[faction/xol/topbar/havoc]] ability to transform a [[faction/xol/unit/roller]] into a [[faction/xol/unit/havoc]].", }); this.talents.t3Upgrades = new XolTalent({ name: "T3 Upgrades", level: 6, description: "Allows a third rank of each selected World Forge army upgrade to be researched.", }); this.topbars.orbitalLaser.unlockedBy = [this.talents.orbitalLaser.id]; this.talents.orbitalLaser.unlocks = [this.topbars.orbitalLaser.id]; this.topbars.havoc.unlockedBy = [this.talents.havoc.id]; this.talents.havoc.unlocks = [this.topbars.havoc.id]; this.topbars.unmerge.unlockedBy = [this.talents.unmerge.id]; this.talents.unmerge.unlocks = [this.topbars.unmerge.id]; this.wireUpUnlocks(); } } export default Xol;