ZSGG Public Library
Synapse
Xol Co-Op T2 Army Unit
import { XolArmyUnit } from "../../../../../defaults/xol.js";
import { Attack, Passive, Spell, Upgrade } from "../../../../../engine/ability.js";
import { applyCoopXolMerges } from "../../../_util/coop-xol-merges.js";
export class CoopSynapse extends XolArmyUnit {
static override src = "src/zerospace/coop/commander/anrubic/unit/coop-anrubic-synapse.ts";
override get variantOf(): string {
return "faction/xol/unit/synapse";
}
constructor() {
super();
applyCoopXolMerges(this);
this.buildTime = 16;
this.name = "Synapse";
this.tier = "T2";
this.hotkey = "";
this.uuid = "28bd0d25-4b63-4825-84d0-acf53ce1d0e3";
this.internalId = "Troop_Xol_Synapse_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Xol_Synapse.Default__Troop_Xol_Synapse_C";
this.internalTags = [
"Attackable.Unit.Troop",
"Local.Xol.Synapse",
"Attackable.FlyingUnit",
"Attackable.ArmorType.Light",
"Troop.Xol.Tier3",
];
this.internalSecondaryTags = ["Air"];
this.description =
"Flying unit which heals nearby units that it touches for 8 hit points each second. May use the Overclock ability on nearby allied units.\nOverclock: Grants nearby units +35% damage and movement speed for 5 seconds.";
this.hp = 250;
this.shields = 0;
this.armor = 0;
this.armorType = "light";
this.domain = "air";
this.speed = 675;
this.supply = 4;
this.turnSpeed = 4000;
this.vision = 1800;
this.pushability = 0;
this.attacks.stellarisLash = new Attack({
internalId: "Default__Weapon_Xol_Synapse_C",
name: "Stellaris Lash",
damage: 30,
range: 550,
cooldown: 1.8,
armorPenetration: 0,
delay: 0.16,
targets: ["ground", "air"],
parentId: this.id,
parentUUID: this.uuid,
});
this.passives.touchHeal = new Passive({
name: "Touch Heal",
// The rate is from patch notes: passives are not surfaced in the UI or the dev export, so
// there is nothing to check it against short of testing in game.
description: "Heals nearby units that it touches for 8 hit points each second.",
healing: 8,
cooldown: 1,
targets: ["friendly:ground", "friendly:air"],
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.overclock = new Spell({
name: "Overclock",
hotkey: "G",
description: "Gives nearby units the Overclock buff, granting +35% damage and movement speed for 5 seconds.",
cooldown: 30,
duration: 5,
targets: ["friendly:ground", "friendly:air"],
targetMode: "around-self",
parentId: this.id,
parentUUID: this.uuid,
});
this.unlockedBy = ["coop/commander/anrubic/building/coop-anrubic-world-forge"];
this.upgradedBy = ["coop/commander/anrubic/building/coop-anrubic-world-forge"];
this.upgrades.overclock = new Upgrade({
name: "Overclock",
description:
"Grants the Synapse the Overclock ability, which overclocks itself and allies in a range of 8 around the synapse.",
tier: "T1",
position: "A",
fluxCost: 150,
researchTime: 50,
parentId: this.id,
parentUUID: this.uuid,
uuid: "1ed3d440-4b0c-48cc-8b3f-3ffa4963b4f5",
});
this.upgrades.energyShock = new Upgrade({
name: "Energy Shock",
description:
"Attacks decrease enemy movement speed and attack speed by 10% for 5 seconds, stacking up to 6 times.",
tier: "T1",
position: "B",
fluxCost: 150,
researchTime: 50,
parentId: this.id,
parentUUID: this.uuid,
uuid: "f6f15cbb-717a-4b31-ae0c-d201b0ed652a",
});
}
}
export default CoopSynapse;