ZeroSpace.gg

Thrall

Legion Co-Op T1 Army Unit

import { LegionArmyUnit } from "../../../../../defaults/legion.js"; import { Attack, Upgrade } from "../../../../../engine/ability.js"; export class CoopGalavaxThrall extends LegionArmyUnit { static override src = "src/zerospace/coop/commander/galavax/unit/coop-galavax-thrall.ts"; constructor() { super(); this.uuid = "ef0f3ad9-6c42-4ddd-8167-bdf09d908717"; this.hexiteCost = 50; this.fluxCost = 0; this.buildTime = 30; this.buildCount = 3; this.name = "Thrall"; this.tier = "T1"; this.internalId = "Troop_Empire_Thrall_C"; this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Empire_Thrall.Default__Troop_Empire_Thrall_C"; this.internalTags = [ "Attackable.Unit.Troop", "Attackable.Unit.Light", "Attackable.ArmorType.Light", "Attackable.Biological", "Local.Legion.Infantry.Thrall.Ranged", ]; this.internalSecondaryTags = ["Infantry"]; this.supply = 1; this.hp = 70; this.shields = 0; this.armor = 0; this.armorType = "light"; this.speed = 525; this.turnSpeed = 5000; this.hotkey = "Q"; this.createdBy = [ "coop/commander/galavax/building/coop-galavax-legion-barracks", "coop/commander/galavax/building/coop-galavax-summoning-obelisk", ]; this.unlockedBy = ["coop/commander/galavax/building/coop-galavax-legion-barracks"]; this.upgradedBy = ["coop/commander/galavax/building/coop-galavax-citadel"]; this.description = "Light ranged infantry. Attacks ground and air units."; this.tag("legion:thrall"); this.attacks.galynxAssaultCannon = new Attack({ internalId: "Default__Legion_WorkerRifle_C", name: "Galynx Assault Cannon", damage: 7, cooldown: 1.5, range: 700, targets: ["air", "ground"], armorPenetration: 0, delay: 0.06, parentId: this.id, parentUUID: this.uuid, }); const unit = this; this.upgrades.battleFrenzy = new Upgrade({ name: "Battle Frenzy", unlockedBy: ["coop/commander/galavax/building/coop-galavax-citadel"], description: "+15 per attack to a maximum of 75%", tier: "T1", position: "A", fluxCost: 100, researchTime: 40, apply() {}, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.chargedShot = new Upgrade({ name: "Charged Shot", unlockedBy: ["coop/commander/galavax/building/coop-galavax-citadel"], description: "Every 15 seconds your next attack deals +100% damage", tier: "T1", position: "B", fluxCost: 100, researchTime: 40, apply() {}, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.performanceEnhancers = new Upgrade({ name: "Performance Enhancers", unlockedBy: ["coop/commander/galavax/building/coop-galavax-terror-tower"], description: "+15% attack & movement speed", tier: "T2", position: "A", fluxCost: 150, researchTime: 50, apply() { unit.speed = (unit.speed || 0) * 1.15; unit.attacks.galynxAssaultCannon.cooldown = (unit.attacks.attack.cooldown || 0) * 0.85; }, parentId: this.id, parentUUID: this.uuid, }); this.internalId = "Troop_Galavax_Thrall_C"; this.hexiteCost = 50; this.fluxCost = 0; this.buildCount = 3; this.supply = 1; this.hp = 70; delete this.upgrades.performanceEnhancers; this.upgrades.sacrificialPawns = new Upgrade({ name: "Sacrificial Pawns", description: "Thralls spawn in groups of four at no additional Hexite cost.", tier: "T2", position: "A", fluxCost: 150, researchTime: 60, parentId: this.id, parentUUID: this.uuid, uuid: "365e6629-b33b-4275-b83c-cfe438b9a123", }); this.upgrades.witnessMe = new Upgrade({ name: "Witness Me!", description: "On death, grants one random ally +40% attack speed and +20% movement speed for 20 seconds.", tier: "T2", position: "B", fluxCost: 150, researchTime: 60, parentId: this.id, parentUUID: this.uuid, uuid: "56b7d145-3f7c-4c98-a959-dbd94efba410", }); this.createdBy = [ "coop/commander/galavax/building/coop-galavax-legion-barracks", "coop/commander/galavax/building/coop-galavax-summoning-obelisk", ]; this.unlockedBy = ["coop/commander/galavax/building/coop-galavax-legion-barracks"]; this.upgradedBy = ["coop/commander/galavax/building/coop-galavax-citadel"]; } } export default CoopGalavaxThrall;