ZeroSpace.gg

Umbra

Endari Hero Unit

import { EndariHeroUnit } from "../../../../defaults/endari.js"; import { Attack, Spell } from "../../../../engine/ability.js"; class Umbra extends EndariHeroUnit { override uuid: string; static override src = "src/zerospace/mercenary/endari/hero/umbra.ts"; constructor() { super(); this.name = "Umbra"; this.description = "Mobile hero who can cloak and jump to ambush enemies. Can temporarily transform into an Impaler, which deals devastating melee damage."; // Heroes carry the dev-data cost (only Legion's extra heroes differ); everyone gets one // free hero at game start, so cost applies to the buildable instance. this.hexiteCost = 220; this.buildTime = 5; this.hotkey = ""; this.uuid = "3ff83458-989d-4759-8cb3-c447430c125e"; this.internalId = "Troop_MPHero_Endari_C"; this.internalPath = "/Game/Nova/Archetypes_Heroes/Troop_MPHero_Endari.Default__Troop_MPHero_Endari_C"; this.internalTags = [ "Attackable.Unit.Hero", "Logic.SpawnAtOldestSpawner", "Attackable.Biological", "Logic.NoVeterancy", "Local.Endari", ]; this.internalSecondaryTags = ["Biological", "Infantry"]; this.hp = 250; this.shields = 0; this.armor = 0; this.healthRegen = 12; this.speed = 500; this.stunResist = 60; this.supply = 10; this.turnSpeed = 6000; this.vision = 1800; this.pushability = 0.1; this.transformsInto = ["mercenary/endari/unit/endari-impaler"]; this.attacks.shatteredOnesGrasp = new Attack({ internalId: "Default__Weapon_EndariHero_Ranged_C", name: "Shattered One's Grasp", damage: 23, range: 1200, cooldown: 1.5, armorPenetration: 0, delay: 0.1, targets: ["ground", "air"], closeupFirerate: { threshold: 0.3, speedup: 1.75, }, parentId: this.id, parentUUID: this.uuid, }); this.spells.jump = new Spell({ name: "Jump", hotkey: "Q", description: "Jump to a location and deal 70 damage in an area.", damage: 70, cooldown: 30, delay: 0.6, range: 1400, targets: ["map"], targetMode: "location", parentId: this.id, parentUUID: this.uuid, }); // Transform's stat effect has nowhere to live yet: it reduces armor by 2 while active, and we // have no model for a mode changing a stat. this.spells.transform = new Spell({ name: "Transform", hotkey: "W", description: "Transform into Impaler for 20 seconds.", cooldown: 90, duration: 20, targets: ["self"], parentId: this.id, parentUUID: this.uuid, }); this.spells.cloak = new Spell({ name: "Cloak", hotkey: "E", description: "Targeted unit gains cloak and +20% move speed for 8 seconds.", cooldown: 20, duration: 8, targets: ["ground", "air"], targetMode: "unit", parentId: this.id, parentUUID: this.uuid, }); } } export default Umbra;