ZSGG Public Library
Weaver
Grell Co-Op T3.5 Army Unit
import { CoopFrenzySkill } from "../../../../../defaults/grell.js";
import { Upgrade } from "../../../../../engine/ability.js";
import { GrellArmyUnit } from "../../../../../defaults/grell.js";
import { Attack, Channel, Spell } from "../../../../../engine/ability.js";
export class CoopWeaver extends GrellArmyUnit {
override uuid: string;
static override src = "src/zerospace/coop/commander/vynthra/unit/coop-vynthra-weaver.ts";
override get variantOf(): string {
return "faction/grell/unit/weaver";
}
constructor() {
super();
this.hexiteCost = 75;
this.fluxCost = 150;
this.buildTime = 40;
this.buildCount = 1;
this.name = "Weaver";
this.tier = "T3.5";
this.hotkey = "E";
this.energy = 100;
this.uuid = "de9670d1-2bac-4c32-8ab7-3411148163aa";
this.internalId = "Troop_GrellWeaver_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_GrellWeaver.Default__Troop_GrellWeaver_C";
this.internalTags = [
"Attackable.Unit.Troop",
"Attackable.Unit.Light",
"Attackable.ArmorType.Medium",
"Logic.ConstantMaxEnergy",
"Attackable.Biological",
];
this.internalSecondaryTags = [];
this.unlockedBy = ["coop/commander/vynthra/building/coop-vynthra-elderwomb"];
this.createdBy = ["coop/commander/vynthra/building/coop-vynthra-elderwomb"];
this.upgradedBy = ["coop/commander/vynthra/building/coop-vynthra-synapse-canopy"];
const unit = this;
this.hp = 200;
this.startingEnergy = 80;
this.energyRegen = 2.5;
this.shields = 0;
this.armor = 0;
this.armorType = "medium";
this.speed = 650;
this.supply = 4;
this.turnSpeed = 2000;
this.description = "Grell caster. \nDeals bonus damage against air.";
this.attacks.mephiticSpit = new Attack({
internalId: "Default__Grell_WeaverAtack_C",
name: "Mephitic Spit",
damage: 20,
range: 1200,
cooldown: 2,
targets: ["air", "ground"],
bonusDamage: [{ multiplier: 2.0, vs: ["domain:air"] }],
parentId: this.id,
parentUUID: this.uuid,
armorPenetration: 0,
delay: 0.26,
});
this.spells.acidBlight = new Spell({
name: "Acid Blight",
description: "Create an acid puddle at target location. Puddle poisons enemy units. Lasts 10 seconds.",
energyCost: 75,
energyType: "classic",
targets: ["map"],
hotkey: "F",
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.siphonLife = new Channel({
name: "Siphon Life",
description:
"Drain enemy health, slowing them by 20%, and poisoning them \nOR \nHeal allies for 5 health per second and grant them 1 armor",
energyCost: 10,
energyType: "classic",
hotkey: "Y",
targets: ["air", "ground"],
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.koruNeuropaths = new Upgrade({
name: "Koru Neuropaths",
unlockedBy: ["coop/commander/vynthra/building/coop-vynthra-elderwomb"],
description: "+25% cast range",
tier: "T1",
position: "A",
fluxCost: 100,
researchTime: 50,
apply() {},
parentId: this.id,
parentUUID: this.uuid,
});
this.internalId = undefined;
this.internalPath = undefined;
this.setVariantUUID("coop-vynthra");
this.upgrades.healing = new Upgrade({
name: "Healing",
description: "+35% healing and damage output.",
tier: "T1",
position: "B",
fluxCost: 50,
researchTime: 25,
parentId: this.id,
parentUUID: this.uuid,
uuid: "e2913486-af64-4d6e-905e-07f281593931",
});
this.unlockedBy = ["coop/commander/vynthra/building/coop-vynthra-elderwomb"];
this.createdBy = ["coop/commander/vynthra/building/coop-vynthra-elderwomb"];
this.upgradedBy = ["coop/commander/vynthra/building/coop-vynthra-synapse-canopy"];
this.spells.frenzy = new CoopFrenzySkill({ parentId: this.id, parentUUID: this.uuid });
this.upgrades.koruNeuropaths.fluxCost = 50;
this.upgrades.koruNeuropaths.researchTime = 25;
}
}
export default CoopWeaver;