ZeroSpace.gg

Lasher

Grell T1 Army Unit

import { GrellArmyUnit } from "../../../../defaults/grell.js"; import { Attack, Spell, Upgrade } from "../../../../engine/ability.js"; export class Lasher extends GrellArmyUnit { override uuid: string; static override src = "src/zerospace/faction/grell/unit/lasher.ts"; 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 = "6c1ec0c5-af3f-4bb1-867f-bd16792d2de6"; 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 = ["faction/grell/building/broodwomb"]; this.createdBy = ["faction/grell/building/broodwomb"]; this.upgradedBy = ["faction/grell/building/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: ["faction/grell/building/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: ["faction/grell/building/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: ["faction/grell/building/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: ["faction/grell/building/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, }); } } export default Lasher;