ZeroSpace.gg

Aster (Commander)

Protectorate Co-Op Coop Commander Unit

import { ProtectorateTopbar } from "../../../defaults/protectorate.js"; import { Attack, Spell } from "../../../engine/ability.js"; import { CommanderLevel } from "../../../engine/commander-level.js"; import { CoopCommanderUnit } from "../../../engine/unit.js"; export class AsterCoop extends CoopCommanderUnit { static override src = "src/zerospace/coop/commander/aster-commander.ts"; constructor() { super(); this.uuid = "5562f476-0611-4941-bc0a-d62d2b06a3d0"; this.name = "Aster (Commander)"; this.commanderType = "frontline"; this.maxLevel = 12; this.faction = "protectorate"; this.factionName = "Protectorate"; this.internalId = "Troop_Coop_Aster_C"; this.internalPath = undefined; this.internalTags = [ "Logic.SpawnAtOldestSpawner", "Attackable.Biological", "Logic.NoVeterancy", "Attackable.Unit.Hero.Aster", ]; this.hp = 724; this.speed = 632; this.armor = 1; this.armorType = "medium"; this.stunResist = 40; this.commanderFaction = [ "coop/commander/aster/building/coop-aster-operating-tower", "coop/commander/aster/building/coop-aster-supply-platform", "coop/commander/aster/building/coop-aster-prot-barracks", "coop/commander/aster/building/coop-aster-assembly-plant", "coop/commander/aster/building/coop-aster-war-foundry", "coop/commander/aster/building/coop-aster-research-lab", "coop/commander/aster/building/coop-aster-mechanical-research-lab", "coop/commander/aster/building/coop-aster-airstrip", "coop/commander/aster/building/coop-aster-skydock", "coop/commander/aster/building/coop-aster-prot-extractor", "coop/commander/aster/unit/coop-aster-prot-build-drone", "coop/commander/aster/unit/coop-aster-protectorate-prospector", "coop/commander/aster/unit/coop-aster-recon-drone", "coop/commander/aster/unit/coop-aster-commando", "coop/commander/aster/unit/coop-aster-bastion", "coop/commander/aster/unit/coop-aster-predator", "coop/commander/aster/unit/coop-aster-ironwing", "coop/commander/aster/unit/coop-aster-titan", "coop/commander/aster/unit/coop-aster-sentinel", "coop/commander/aster/unit/coop-aster-juggernaut", "coop/commander/aster/unit/coop-aster-strider", "coop/commander/aster/unit/coop-aster-griffin", "coop/commander/aster/unit/coop-aster-sol-invictus", ]; this.attacks.vx9IonCarbine = new Attack({ name: "VX-9 Ion Carbine", damage: 19, cooldown: 1, range: 1200, targets: ["ground", "air"], parentId: this.id, parentUUID: this.uuid, }); this.spells.plasmaBlast = new Spell({ name: "Plasma Blast", hotkey: "Q", cooldown: 7, description: "Deal 50 damage in an arc and stuns enemies for 3 seconds", damage: 50, parentId: this.id, parentUUID: this.uuid, }); this.spells.rally = new Spell({ name: "Rally", hotkey: "W", cooldown: 45, description: "Rallies nearby units. +40% attack and movement speed. Lasts 15 seconds. Biological units are healed over the duration.", duration: 15, parentId: this.id, parentUUID: this.uuid, }); this.spells.jetpack = new Spell({ name: "Jetpack", hotkey: "D", description: 'Jump to a target location, ignoring terrain. With "Combat Kit" Commander Level: Aster deals 200 damage and stuns enemy units for 3s after landing.', parentId: this.id, parentUUID: this.uuid, }); this.commanderTopbars.shockwave = new ProtectorateTopbar({ name: "Shockwave", topbarType: "special", slot: 1, hotkey: "Ctrl-Q", cooldown: 30, duration: 3, description: "Stuns enemy units in an area for 3 seconds", requiredLevel: 1, parentId: this.id, parentUUID: this.uuid, }); this.commanderTopbars.reinforcements = new ProtectorateTopbar({ name: "Reinforcements", topbarType: "summon", slot: 2, energyCost: 20, description: 'Call down reinforcements of the selected type. Can be used near Operating Towers and Striders. With "Hot Landing Zone" Commander Level: Reinforcements can be used anywhere with vision.', requiredLevel: 1, parentId: this.id, parentUUID: this.uuid, }); this.commanderTopbars.airstrike = new ProtectorateTopbar({ name: "Airstrike", topbarType: "special", slot: 3, description: "Calls down an Airstrike, dealing 200 damage to ground units. Requires Airstrips with an available Airstrike ship.", requiredLevel: 3, parentId: this.id, parentUUID: this.uuid, }); this.commanderTopbars.solInvictus = new ProtectorateTopbar({ name: "Sol Invictus", topbarType: "summon", slot: 4, cooldown: 150, energyCost: 30, description: 'Call down a powerful mech that explodes on death and sets the ground on fire. With "Mechanical Stockpile" Commander Level: Sol invictus faction power is no longer restricted by cooldown.', requiredLevel: 6, creates: ["coop/commander/aster/unit/coop-aster-sol-invictus"], unlockedBy: ["coop/commander/aster-commander/commander-level/levels/6"], parentId: this.id, parentUUID: this.uuid, }); this.levels["1"] = new CommanderLevel({ name: "Prefect Aster", level: 1, description: "Aster leads personally on the battlefield, unleashing the full might of the Protectorate.", unlocks: ["shockwave", "reinforcements"], parentId: this.id, uuid: "14feba4d-dcce-445f-b6be-a72720eb4e33", }); this.levels["2"] = new CommanderLevel({ name: "Rally", level: 2, description: "Aster gains the ability to temporarily boost nearby units.", parentId: this.id, uuid: "30102a15-901d-44a8-ac96-8576ece287b3", }); this.levels["3"] = new CommanderLevel({ name: "Airstrike", level: 3, description: "New Topbar Ability: Airstrike targeted location. Build airstrips to gain access to airstrikes", unlocks: ["airstrike", "coop/commander/aster/building/coop-aster-airstrip"], parentId: this.id, uuid: "f0bbd9bb-8d12-4e89-a337-96cf8285e813", }); this.levels["4"] = new CommanderLevel({ name: "Combat Kit", level: 4, description: "Aster's Plasma Blast cooldown reduced by 3 seconds. Aster's Jump deals damage and stuns enemies after landing.", parentId: this.id, uuid: "8a596483-88ea-4bc3-a69a-b4089549bb94", }); this.levels["5"] = new CommanderLevel({ name: "Walker Upgrade Cache", level: 5, description: "New upgrades for Titan and Strider", parentId: this.id, uuid: "b1e51875-cb91-4aa9-963e-17013f1aaaf1", }); this.levels["6"] = new CommanderLevel({ name: "Sol Invictus", level: 6, description: "New faction power: Spawn a powerful mech on the battlefield.", unlocks: [ "faction/protectorate/topbar/sol-invictus", "coop/commander/aster/unit/coop-aster-sol-invictus", ], parentId: this.id, uuid: "9a17e215-acd7-410d-acd0-4f8da5155f8a", }); this.levels["7"] = new CommanderLevel({ name: "Vanguard", level: 7, description: "Army units gain +15% health and movement speed", parentId: this.id, uuid: "b52eb367-2209-477a-b681-f4255cc8c251", }); this.levels["8"] = new CommanderLevel({ name: "Airship Upgrade Cache", level: 8, description: "New upgrades for ironwing and Griffin.", parentId: this.id, uuid: "90cac21a-d483-4f12-bd68-502d42d463f6", }); this.levels["9"] = new CommanderLevel({ name: "Production Efficiency", level: 9, description: "Flux cost of all units is reduced by 25.", parentId: this.id, uuid: "2d91df52-24b1-4a33-9e80-c179efeaea57", }); this.levels["10"] = new CommanderLevel({ name: "Hot Landing Zone", level: 10, description: "Reinforcements can be used anywhere with vision.", parentId: this.id, uuid: "6121479c-b34f-45e3-9ba6-13c6dbd6b707", }); this.levels["11"] = new CommanderLevel({ name: "Battle Hardened", level: 11, description: "Units gain veterancy 30% faster.", parentId: this.id, uuid: "4b51cfd0-0842-48ad-bf5e-9537aedb24d6", }); this.levels["12"] = new CommanderLevel({ name: "Mechanical Stockpile", level: 12, description: "Sol Invictus faction power is no longer restricted by cooldown.", parentId: this.id, uuid: "423bed0d-61ff-48ac-9fad-2cfdfc2659bf", }); } } export default AsterCoop;