ZeroSpace.gg

Strider

Protectorate Co-Op T3 Army Unit

import { ArmyUnit } from "../../../../../engine/unit.js"; import { Attack, Siege, Spell, Upgrade } from "../../../../../engine/ability.js"; export class CoopStrider extends ArmyUnit { static override src = "src/zerospace/coop/commander/aster/unit/coop-aster-strider.ts"; override replicateCostOverride = 30; constructor() { super(); this.faction = "protectorate"; this.factionName = "Protectorate"; this.hexiteCost = 225; this.fluxCost = 225; this.buildTime = 60; this.name = "Strider"; this.tier = "T3"; this.hotkey = "V"; this.supply = 6; this.uuid = "69ad2e98-f211-4bc7-9976-8c8fbfb1dd9f"; this.internalId = "Troop_Prot_Strider_C"; this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Prot_Strider.Default__Troop_Prot_Strider_C"; this.internalTags = [ "Attackable.Unit.Troop", "Attackable.Unit.Massive", "Attackable.ArmorType.Heavy", "Local.Prot.Strider", ]; this.internalSecondaryTags = ["Mech"]; this.description = "Walker capable of loading infantry, allowing them to attack with increased range. \nHeals units inside."; this.hp = 1000; this.armor = 1; this.armorType = "heavy"; this.speed = 400; this.turnSpeed = 1100; this.pushability = 0.7; this.stunResist = 50; this.carryCapacity = 16; this.createdBy = ["faction/protectorate/unit/prot-build-drone"]; this.unlockedBy = ["faction/protectorate/building/war-foundry"]; this.upgradedBy = ["faction/protectorate/building/mechanical-research-lab"]; this.constructingVersion = { uuid: "b32fdf2a-97ca-41c4-8f70-e5ee8ed45ec7", name: "Strider (Constructing)", buildTime: 45, hp: 1000, }; this.attacks["120mmLRRampartCannon"] = new Attack({ internalId: "Default__Weapon_Prot_Strider_TurboLaser_C", name: "120mm LR Rampart Cannon", damage: 12, shots: 5, cooldown: 3, cooldownBetweenShots: 0.1, range: 600, targets: ["ground"], armorPenetration: 0, delay: 0.01, parentId: this.id, parentUUID: this.uuid, }); this.spells.unload = new Spell({ name: "Unload", description: "0.2s cooldown. unload troops in targeted area", cooldown: 0.2, targets: ["ground"], range: 400, parentId: this.id, parentUUID: this.uuid, }); this.sieges.fortressMode = new Siege({ name: "Fortress Mode", reverseName: "Strider Mode", description: "Siege the Strider, reducing incoming damage by 30%. \nGrant +1 Armor and +2 Damage to nearby units. Can reinforcec nearby.", hotkey: "P", duration: 1.0, parentId: this.id, parentUUID: this.uuid, }); this.hp = 2000; this.internalId = undefined; this.internalPath = undefined; this.setVariantUUID("coop-aster"); this.upgrades.railgun = new Upgrade({ name: "H-7M5 Mega Railgun Cannon", description: "Adds a 250-damage artillery Railgun with a 2.4-second firing rate. The Strider must be sieged and can only target ground.", tier: "T1", //TODO 100% damage to massive. What is massive? Verify ingame. position: "A", fluxCost: 150, researchTime: 50, parentId: this.id, parentUUID: this.uuid, uuid: "13d5aef3-cf9d-4887-91da-3e1d2114f4c3", }); delete this.upgrades.domainProtocol; this.upgrades.overwatchRefit = new Upgrade({ name: "Overwatch Refit", unlockedBy: ["faction/protectorate/building/mechanical-research-lab"], description: "Doubles cargo capacity and the range bonus granted to garrisoned units.", tier: "T1", position: "B", fluxCost: 150, researchTime: 50, apply: () => {}, parentId: this.id, parentUUID: this.uuid, }); this.unlockedBy = ["coop/commander/aster/building/coop-aster-war-foundry"]; this.createdBy = ["coop/commander/aster/building/coop-aster-war-foundry"]; this.upgradedBy = ["coop/commander/aster/building/coop-aster-mechanical-research-lab"]; } } export default CoopStrider;