ZSGG Public Library
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;