ZSGG Public Library
Strider
Protectorate T3 Army Unit
import { ProtectorateArmyUnit } from "../../../../defaults/protectorate.js";
import { Attack, Siege, Spell, Upgrade } from "../../../../engine/ability.js";
export class Strider extends ProtectorateArmyUnit {
override uuid: string;
static override src = "src/zerospace/faction/protectorate/unit/strider.ts";
override get infuseCost(): number | undefined {
return 15;
}
constructor() {
super();
this.hexiteCost = 225;
this.fluxCost = 225;
this.buildTime = 60;
this.name = "Strider";
this.tier = "T3";
this.hotkey = "S";
this.supply = 6;
this.uuid = "a505b1a1-2a65-4e4b-b334-e655c2c58b43";
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 = 0;
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.rampartCannon = new Attack({
name: "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.siegeMode = new Siege({
name: "Siege Mode",
description:
"Siege the Strider, reducing incoming damage by 30%. \nGrant +1 Armor and +2 Damage to nearby units. Can reinforcec nearby.",
hotkey: "P",
togglesMode: "siege",
duration: 1.0,
});
this.upgrades.fortressProtocol = new Upgrade({
name: "Fortress Protocol",
description: "Doubles Siege Mode bonuses.",
tier: "T3.5",
fluxCost: 100,
researchTime: 20,
apply: () => {},
parentId: this.id,
parentUUID: this.uuid,
});
}
}
export default Strider;