ZeroSpace.gg

Anrubic

Xol Hero Unit

import { XolHeroUnit } from "../../../../defaults/xol.js"; import { Attack, Spell, SpellModeSwitch } from "../../../../engine/ability.js"; export class Anrubic extends XolHeroUnit { override uuid: string; static override src = "src/zerospace/faction/xol/hero/anrubic.ts"; constructor() { super(); this.name = "Anrubic"; this.description = "Powerful hero that can grapple enemies and merge with other Xol units to augment its abilities."; this.hexiteCost = 220; this.buildTime = 5; this.hotkey = ""; this.uuid = "8d742b58-2487-448e-9378-7520a054ba0b"; this.internalId = "Troop_Hero_MP_XolHero_C"; this.internalPath = "/Game/Nova/Archetypes_Heroes/Multiplayer/Troop_Hero_MP_XolHero.Default__Troop_Hero_MP_XolHero_C"; this.internalTags = [ "Attackable.Unit.Hero", "Logic.SpawnAtOldestSpawner", "Attackable.Biological", "Logic.NoVeterancy", "Troop.Xol.Hero", ]; this.internalSecondaryTags = ["Biological", "Infantry"]; this.hp = 175; this.shields = 175; this.armor = 0; this.armorType = "hero"; this.healthRegen = 6; this.stunResist = 70; this.speed = 500; this.supply = 10; this.turnSpeed = 6000; this.vision = 1800; this.pushability = 0.1; this.modes = [ { slug: "unmerged", name: "Unmerged", description: "Has not merged with any T1 unit yet." }, { slug: "roller", name: "Roller", description: "Last merged with a Roller." }, { slug: "xyther", name: "Xyther", description: "Last merged with a Xyther." }, { slug: "spectron", name: "Spectron", description: "Last merged with a Spectron." }, ]; this.attacks.morphBlade = new Attack({ name: "Morph Blade", damage: 23, range: 200, cooldown: 1.2, splash: { multiplier: 0.5, range: 150 }, armorPenetration: 0, delay: 0.27, targets: ["ground"], requiresMode: "unmerged", parentId: this.id, parentUUID: this.uuid, }); this.attacks.morphBladeRoller = new Attack({ name: "Morph Blade (Roller)", damage: 12, range: 400, cooldown: 0.4, targets: ["ground", "air"], requiresMode: "roller", parentId: this.id, parentUUID: this.uuid, }); this.attacks.morphBladeXyther = new Attack({ name: "Morph Blade (Xyther)", damage: 27, range: 200, cooldown: 1.2, splash: { multiplier: 0.5, range: 150 }, targets: ["ground"], requiresMode: "xyther", parentId: this.id, parentUUID: this.uuid, }); this.attacks.morphBladeSpectron = new Attack({ name: "Morph Blade (Spectron)", damage: 63, range: 1000, cooldown: 1, bonusDamage: [{ multiplier: 1.25, vs: ["armor:heavy"] }], targets: ["ground", "air"], requiresMode: "spectron", parentId: this.id, parentUUID: this.uuid, }); this.spellModes.merge = new SpellModeSwitch({ name: "Merge", hotkey: "Q", cooldown: 16, targets: ["ground", "air"], targetMode: "unit", switchBetween: ["unmerged", "roller", "xyther", "spectron"], description: "Merge with a T1 Xol unit, gaining an ability and stats based on the unit type, healing 50% of the unit's health, and Overclocking Anrubic for 5 seconds. Overclock grants +35% damage and movement speed for 5 seconds. \nWhen targeting an enemy unit, deal damage and heal for 35 + 10% of the target's health. \n\nRoller: Gain Throw Rollers and a Roller weapon. +50 permanent move speed. \nXyther: Gain Shield and a 20 shield damage cap. +25 permanent health and shields. \nSpectron: Gain Blink and a charging ranged weapon. +10% permanent attack damage.", wikiDescription: ` Merge with a T1 Xol unit, gaining an ability and stats based on the unit type, healing 50% of the unit's health, and Overclocking Anrubic for 5 seconds. Overclock grants +35% damage and movement speed for 5 seconds. When targeting an enemy unit, deal damage and heal for 35 + 10% of the target's health. - [[faction/xol/unit/roller]]: Gain [[faction/xol/hero/anrubic/spells/throw-rollers]] and a Roller weapon. +50 permanent move speed. - [[faction/xol/unit/xyther]]: Gain [[faction/xol/hero/anrubic/spells/shield]] and a 20 shield damage cap. +25 permanent health and shields. - [[faction/xol/unit/spectron]]: Gain [[faction/xol/hero/anrubic/spells/blink]] and a charging ranged weapon. +10% permanent attack damage. `, parentId: this.id, parentUUID: this.uuid, }); this.spells.grapple = new Spell({ name: "Grapple", hotkey: "W", cooldown: 12, targets: ["ground", "air"], targetMode: "unit", description: "Pulls Anrubic to the target unit, stunning it and dealing 2x weapon damage to the target and any units along the way.", parentId: this.id, parentUUID: this.uuid, }); this.spells.throwRollers = new Spell({ name: "Throw Rollers", hotkey: "E", cooldown: 2, targets: ["map"], targetMode: "location", requiresMode: "roller", description: "Throw a nearby Roller to the target location.", parentId: this.id, parentUUID: this.uuid, }); this.spells.shield = new Spell({ name: "Shield", hotkey: "E", cooldown: 90, duration: 20, targets: ["map"], targetMode: "location", requiresMode: "xyther", description: "Place down a shield that blocks incoming shots. \nThe shield absorbs 3x Anrubic's maximum shields. Lasts 20 seconds.", parentId: this.id, parentUUID: this.uuid, }); this.spells.blink = new Spell({ name: "Blink", hotkey: "E", cooldown: 18, targets: ["map"], targetMode: "location", requiresMode: "spectron", description: "Instantly teleports Anrubic and nearby allied units to a nearby location.", parentId: this.id, parentUUID: this.uuid, }); } } export default Anrubic;