ZeroSpace.gg

Titan

Protectorate Co-Op T2.5 Army Unit

import { ArmyUnit } from "../../../../../engine/unit.js"; import { Attack, Spell, Upgrade } from "../../../../../engine/ability.js"; export class CoopTitan extends ArmyUnit { static override src = "src/zerospace/coop/commander/aster/unit/coop-aster-titan.ts"; constructor() { super(); this.faction = "protectorate"; this.factionName = "Protectorate"; this.hexiteCost = 125; this.fluxCost = 75; this.buildTime = 40; this.name = "Titan"; this.tier = "T2.5"; this.supply = 5; this.uuid = "07d9d362-c7be-48c0-95b1-8d9fdba34c5e"; this.internalId = "Troop_Prot_Titan_C"; this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Prot_Titan.Default__Troop_Prot_Titan_C"; this.internalTags = ["Attackable.Unit.Troop", "Attackable.ArmorType.Medium"]; this.internalSecondaryTags = ["Mech"]; this.hp = 425; this.armor = 0; this.armorType = "medium"; this.speed = 550; this.maxTurrets = 0; this.turnSpeed = 2000; this.pushability = 0.7; this.description = "Mobile mech that can use Jetpack. Equipped with a secondary anti-air weapon."; const unit = this; this.attacks.dualGSP11430mmRotaryCannon = new Attack({ internalId: "Default__Weapon_Atlas_Gatling_C", name: "Dual GSP-114 30mm Rotary Cannon", damage: 8, volleys: 2, cooldown: 0.5, range: 1000, targets: ["ground"], bonusDamage: [{ multiplier: 1.25, vs: ["armor:light"] }], armorPenetration: 0, parentId: this.id, parentUUID: this.uuid, }); this.attacks.sTXFanusTwinMissile = new Attack({ name: "STX Fanus Twin Missile", damage: 20, shots: 2, range: 1400, splash: { multiplier: 0.5, range: 200 }, cooldown: 1, targets: ["air"], parentId: this.id, parentUUID: this.uuid, }); this.spells.jetpack = new Spell({ name: "Jetpack", description: "Jumps to a target location, ignoring terrain.", hotkey: "D", cooldown: 18, forceAutocast: false, unlocked: false, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.jetpack = new Upgrade({ name: "Jetpack", unlockedBy: ["faction/protectorate/building/mechanical-research-lab"], description: "Unlocks the Jetpack ability", tier: "T1", position: "A", fluxCost: 125, researchTime: 50, apply: () => { unit.spells.jetpack!.unlocked = true; }, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.antimatterBoosters = new Upgrade({ name: "Antimatter Boosters", unlockedBy: ["faction/protectorate/building/mechanical-research-lab"], description: "+3 attack range", tier: "T1", position: "B", fluxCost: 125, researchTime: 50, apply() { unit.attacks.dualGSP11430mmRotaryCannon!.range! += 300; unit.attacks.sTXFanusTwinMissile!.range! += 300; }, parentId: this.id, parentUUID: this.uuid, }); this.createdBy = ["faction/protectorate/building/assembly-plant"]; this.upgradedBy = ["faction/protectorate/building/mechanical-research-lab"]; this.unlockedBy = ["faction/protectorate/building/assembly-plant"]; this.tags.push("attacker", "spellcaster", "eligible:infusion", "eligible:reanimate", "can-be-mind-controlled"); this.internalId = undefined; this.internalPath = undefined; this.setVariantUUID("coop-aster"); this.attacks.sTXFanusTwinMissile = new Attack({ name: "STX Fanus Twin Missile", damage: 24, shots: 2, range: 1500, splash: { multiplier: 0.5, range: 200 }, cooldown: 1, targets: ["air"], parentId: this.id, parentUUID: this.uuid, }); this.spells.droneStrike = new Spell({ name: "Nelson Suppression Drone", description: "Deploys an invulnerable drone that travels to the target area and deals 200 damage over 5 seconds.", damageOverTime: 200, duration: 5, delay: 1, energyCost: 65, targets: ["ground", "air"], unlocked: false, parentId: this.id, parentUUID: this.uuid, uuid: "fbd22282-6bd3-47ae-868c-42376d021059", }); this.upgrades.jetpack = new Upgrade({ name: "Jetpack", unlockedBy: ["faction/protectorate/building/mechanical-research-lab"], description: "Unlocks the Jetpack ability", tier: "T1", position: "A", fluxCost: 100, researchTime: 40, apply: () => { unit.spells.jetpack!.unlocked = true; }, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.droneStrike = new Upgrade({ name: "Nelson Suppression Drone", description: "Unlocks the Drone Strike ability.", tier: "T2", position: "B", fluxCost: 150, researchTime: 60, apply: () => { unit.spells.droneStrike!.unlocked = true; }, parentId: this.id, parentUUID: this.uuid, uuid: "5f5fb384-21ed-41a7-87a6-1ee018e11ddc", }); this.upgrades.antimatterBoosters = new Upgrade({ name: "Antimatter Boosters", unlockedBy: ["faction/protectorate/building/mechanical-research-lab"], description: "Increases weapon range by 36.364%: 15 range against ground and 20.45 against air.", tier: "T2", position: "A", fluxCost: 150, researchTime: 60, apply() { unit.attacks.sTXFanusTwinMissile!.range! += 300; }, parentId: this.id, parentUUID: this.uuid, }); this.unlockedBy = ["coop/commander/aster/building/coop-aster-mechanical-research-lab"]; this.createdBy = ["coop/commander/aster/building/coop-aster-assembly-plant"]; this.upgradedBy = ["coop/commander/aster/building/coop-aster-mechanical-research-lab"]; } } export default CoopTitan;