ZeroSpace.gg

Lasher

Grell Co-Op T1 Army Unit

import { CoopFrenzySkill } from "../../../../../defaults/grell.js"; import { GrellArmyUnit } from "../../../../../defaults/grell.js"; import { Attack, Spell, Upgrade } from "../../../../../engine/ability.js"; export class CoopLasher extends GrellArmyUnit { override uuid: string; static override src = "src/zerospace/coop/commander/vynthra/unit/coop-vynthra-lasher.ts"; override get variantOf(): string { return "faction/grell/unit/lasher"; } constructor() { super(); this.hexiteCost = 50; this.fluxCost = 25; this.buildTime = 26; this.buildCount = 1; this.name = "Lasher"; this.description = "Ranged combat unit."; this.tier = "T1"; this.hotkey = "R"; this.uuid = "f511d6e3-4839-410a-a10f-272eac84b3ef"; this.internalId = "Troop_GrellLasher_C"; this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_GrellLasher.Default__Troop_GrellLasher_C"; this.internalTags = [ "Attackable.Unit.Troop", "Attackable.Unit.Light", "Attackable.ArmorType.Light", "Attackable.Biological", ]; this.internalSecondaryTags = ["Biological"]; this.unlockedBy = ["coop/commander/vynthra/building/coop-vynthra-broodwomb"]; this.createdBy = ["coop/commander/vynthra/building/coop-vynthra-broodwomb"]; this.upgradedBy = ["coop/commander/vynthra/building/coop-vynthra-young-canopy"]; const unit = this; this.hp = 150; this.shields = 0; this.armor = 0; this.armorType = "light"; this.speed = 550; this.supply = 2; this.vision = 1800; this.turnSpeed = 4000; this.attacks.acidicSpines = new Attack({ internalId: "Default__Grell_LasherWeapon_C", name: "Acidic Spines", damage: 18, range: 800, cooldown: 1.2, armorPenetration: 0, delay: 0.12, targets: ["air", "ground"], parentId: this.id, parentUUID: this.uuid, }); this.spells.camouflage = new Spell({ name: "Camouflage", description: "Grants invisibility and +75% movement speed for 6s", hotkey: "X", cooldown: 20, duration: 6, unlocked: false, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.extensorAdaptation = new Upgrade({ name: "Extensor Adaptation", unlockedBy: ["coop/commander/vynthra/building/coop-vynthra-young-canopy"], description: "+4 attack range", tier: "T1", position: "A", fluxCost: 100, researchTime: 50, apply() { unit.attacks.attack!.range = (unit.attacks.attack!.range || 0) + 200; }, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.sinuousMusculature = new Upgrade({ name: "Sinuous Musculature", unlockedBy: ["coop/commander/vynthra/building/coop-vynthra-young-canopy"], description: "+125 movement speed.", tier: "T1", position: "B", fluxCost: 100, researchTime: 50, apply() { unit.speed = (unit.speed || 0) * 1.25; }, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.corrosiveSecretion = new Upgrade({ name: "Corrosive Secretion", unlockedBy: ["coop/commander/vynthra/building/coop-vynthra-elderwomb"], description: "+75% damage to medium", tier: "T2", position: "A", fluxCost: 100, researchTime: 50, apply() { unit.attacks.attack!.bonusDamage = [{ multiplier: 1.75, vs: ["armor:medium"] }]; }, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.camouflage = new Upgrade({ name: "Camouflage", unlockedBy: ["coop/commander/vynthra/building/coop-vynthra-elderwomb"], description: "Unlocks the Camouflage ability (+25% movement speed and cloak for 6s)", tier: "T2", position: "B", fluxCost: 150, researchTime: 60, apply() { unit.spells.camouflage!.unlocked = true; }, parentId: this.id, parentUUID: this.uuid, }); this.internalId = undefined; this.internalPath = undefined; this.setVariantUUID("coop-vynthra"); this.upgrades.extensorAdaptation.description = "+4 attack range."; this.upgrades.sinuousMusculature.description = "+50% movement speed."; this.upgrades.camouflage.description = "Unlocks Camouflage: +25% movement speed and cloak for 5 seconds. 20-second cooldown."; this.unlockedBy = ["coop/commander/vynthra/building/coop-vynthra-young-canopy"]; this.createdBy = ["coop/commander/vynthra/building/coop-vynthra-broodwomb"]; this.upgradedBy = ["coop/commander/vynthra/building/coop-vynthra-young-canopy"]; this.spells.frenzy = new CoopFrenzySkill({ parentId: this.id, parentUUID: this.uuid }); this.upgrades.camouflage.fluxCost = 75; this.upgrades.camouflage.researchTime = 30; this.upgrades.corrosiveSecretion.fluxCost = 75; this.upgrades.corrosiveSecretion.researchTime = 30; this.upgrades.extensorAdaptation.fluxCost = 50; this.upgrades.extensorAdaptation.researchTime = 25; this.upgrades.sinuousMusculature.fluxCost = 62.5; this.upgrades.sinuousMusculature.researchTime = 30; } } export default CoopLasher;