ZeroSpace.gg

Spectron

Xol Co-Op T1 Army Unit

import { XolArmyUnit } from "../../../../../defaults/xol.js"; import { Attack, Spell, Upgrade } from "../../../../../engine/ability.js"; import { applyCoopXolMerges } from "../../../_util/coop-xol-merges.js"; export class CoopSpectron extends XolArmyUnit { static override src = "src/zerospace/coop/commander/anrubic/unit/coop-anrubic-spectron.ts"; override get variantOf(): string { return "faction/xol/unit/spectron"; } constructor() { super(); applyCoopXolMerges(this); this.hexiteCost = 25; this.fluxCost = 50; this.buildTime = 5; this.name = "Spectron"; this.tier = "T1"; this.hotkey = ""; //TODO Huh, why hotkey missing. Probably oversight this.uuid = "114b6f98-24da-4aeb-8371-221c7770f6ae"; this.internalId = "Troop_Xol_Spectron_C"; this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Xol_Spectron.Default__Troop_Xol_Spectron_C"; this.internalTags = [ "Attackable.Unit.Troop", "Attackable.ArmorType.Light", "Local.Xol.Spectron", "Troop.Xol.Tier1", ]; this.internalSecondaryTags = ["Infantry"]; // The listed damage is the base the export gives. Charging is a property of the attack we have // no way to represent as a stat, so it's noted at the end of the description. this.description = "Ranged unit that charges up its projectile to deal more damage. Can attack ground and air units. \nCharges up to double its attack damage while out of combat, losing the charge once it attacks."; this.hp = 120; this.shields = 0; this.armor = 0; this.armorType = "light"; this.speed = 600; this.supply = 2; this.turnSpeed = 2000; this.vision = 1600; this.pushability = 0; this.attacks.singularityOrb = new Attack({ internalId: "Default__Weapon_Xol_MP_Spectron_C", name: "Singularity Orb", damage: 18, range: 1000, cooldown: 1.3, armorPenetration: 0, delay: 0.143, targets: ["ground", "air"], bonusDamage: [{ multiplier: 1.5, vs: ["armor:heavy"] }], parentId: this.id, parentUUID: this.uuid, }); this.spells.disassimilate = new Spell({ name: "Disassimilate", description: "Quickly moves the Spectron to a target point, making it invulnerable while moving.", targets: ["map"], targetMode: "location", cooldown: 12, parentId: this.id, parentUUID: this.uuid, }); this.unlockedBy = ["coop/commander/anrubic/building/coop-anrubic-spectral-foundry"]; this.createdBy = ["coop/commander/anrubic/building/coop-anrubic-spectral-foundry"]; this.upgradedBy = ["coop/commander/anrubic/building/coop-anrubic-world-forge"]; this.upgrades.energyConversion = new Upgrade({ name: "Energy Conversion", description: "Spectron: After using Disassimilate, the unit is overclocked. \nSynapse: Increases healing effectiveness by +50%", tier: "T1", position: "A", fluxCost: 150, researchTime: 60, parentId: this.id, parentUUID: this.uuid, uuid: "941443d7-0fae-48d8-89db-1d850aea41f4", }); this.upgrades.weaponCharging = new Upgrade({ name: "Weapon Charging", description: "Spectron: Removes the timer before weapon is fully charged. \nSynapse: Attacking increases attack speed by 20% for 3 seconds, stacking up to 5 times.", tier: "T1", position: "B", fluxCost: 150, researchTime: 60, parentId: this.id, parentUUID: this.uuid, uuid: "26a3fdff-2bf2-4530-875b-7ab9bfe61f8b", }); } } export default CoopSpectron;