ZeroSpace.gg

Commando

Protectorate Co-Op T1 Army Unit

import { ArmyUnit } from "../../../../../engine/unit.js"; import { Attack, Spell, Upgrade } from "../../../../../engine/ability.js"; export class CoopCommando extends ArmyUnit { static override src = "src/zerospace/coop/commander/aster/unit/coop-aster-commando.ts"; constructor() { super(); this.faction = "protectorate"; this.factionName = "Protectorate"; this.hexiteCost = 50; this.fluxCost = 0; this.buildTime = 24; this.name = "Commando"; this.tier = "T1"; this.supply = 2; this.uuid = "185e6a57-464b-473c-9666-9d0f6db05a99"; this.internalId = "Troop_Prot_Commando_C"; this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Prot_Commando.Default__Troop_Prot_Commando_C"; this.internalTags = [ "Attackable.Unit.Troop", "Attackable.Unit.Light", "Attackable.ArmorType.Light", "Attackable.Biological", ]; this.internalSecondaryTags = ["Biological", "Infantry"]; this.hp = 125; this.armor = 0; this.armorType = "light"; this.speed = 550; this.turnSpeed = 5000; this.description = "Ranged infantry equipped with a jetpack"; this.attacks.s10CombatRifle = new Attack({ internalId: "Default__Weapon_Prot_MP_Commando_C", name: "S-10 Combat Rifle", damage: 7, cooldown: 0.8, armorPenetration: 0, delay: 0.01, range: 700, targets: ["ground", "air"], parentId: this.id, parentUUID: this.uuid, }); const commando = this; this.spells.jetpack = new Spell({ name: "Jetpack", hotkey: "D", cooldown: 18, description: "Jump to a target location, ignoring terrain.", parentId: this.id, parentUUID: this.uuid, }); this.upgrades.impulseThrusters = new Upgrade({ name: "Impulse Thrusters", unlockedBy: ["faction/protectorate/building/research-lab"], description: "-33% Jetpack cooldown. \n+42% Jetpack Range.\n(Affects Prefect Aster)", tier: "T1", position: "A", fluxCost: 100, researchTime: 40, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.magneticRifling = new Upgrade({ name: "Magnetic Rifling", unlockedBy: ["faction/protectorate/building/research-lab"], description: "+3 attack range\n(Affects Prefect Aster)", tier: "T1", position: "B", fluxCost: 100, researchTime: 45, apply: () => { commando.attacks.s10CombatRifle!.range! += 300; }, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.eagleTactics = new Upgrade({ name: "Eagle Tactics", unlockedBy: ["faction/protectorate/building/mechanical-research-lab"], description: "After using Jetpack, for 4 seconds: \n+40% attack speed \n+40% movement speed.\n(Affects Prefect Aster)", tier: "T2", position: "A", fluxCost: 150, researchTime: 60, parentId: this.id, parentUUID: this.uuid, }); this.createdBy = ["faction/protectorate/building/prot-barracks"]; this.upgradedBy = ["faction/protectorate/building/research-lab"]; this.unlockedBy = ["faction/protectorate/building/prot-barracks"]; this.internalId = undefined; this.internalPath = undefined; this.setVariantUUID("coop-aster"); this.hp = 130; this.upgrades.eagleTactics.tier = "T3"; this.upgrades.eagleTactics.position = "B"; this.upgrades.eagleTactics.description = "After using Jetpack, for 4 seconds: \n+40% attack speed \n+40% movement speed.\n(Affects Prefect Aster)"; this.attacks.s10CombatRifle.damage = 8; this.upgrades.shreddingRounds = new Upgrade({ name: "Shredding Rounds", description: "Attacks cause targets to take 2% more damage from all sources for 8 seconds. Stacks up to 40%.", tier: "T3", position: "A", fluxCost: 150, researchTime: 60, parentId: this.id, parentUUID: this.uuid, uuid: "2c42c0d8-ed9f-4ac8-b272-2d73423ff25d", }); this.unlockedBy = ["coop/commander/aster/building/coop-aster-prot-barracks"]; this.createdBy = ["coop/commander/aster/building/coop-aster-prot-barracks"]; this.upgradedBy = ["coop/commander/aster/building/coop-aster-research-lab"]; } } export default CoopCommando;