ZSGG Public Library
Steelsworn
Legion Co-Op T1 Army Unit
import { LegionArmyUnit } from "../../../../../defaults/legion.js";
import { Attack, Upgrade } from "../../../../../engine/ability.js";
export class CoopGalavaxSteelsworn extends LegionArmyUnit {
static override src = "src/zerospace/coop/commander/galavax/unit/coop-galavax-steelsworn.ts";
constructor() {
super();
this.uuid = "43c6c3a0-81dd-4242-8551-19f5f9064779";
this.hexiteCost = 50;
this.fluxCost = 0;
this.buildTime = 24;
this.buildCount = 1;
this.name = "Steelsworn";
this.tier = "T1";
this.internalId = "Troop_Empire_Steelsworn_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Empire_Steelsworn.Default__Troop_Empire_Steelsworn_C";
this.internalTags = [
"Attackable.Unit.Troop",
"Attackable.Unit.Light",
"Attackable.ArmorType.Medium",
"Attackable.Biological",
"Local.Legion.Infantry.Thrall.Armored",
];
this.internalSecondaryTags = ["Infantry"];
this.supply = 2;
this.hp = 200;
this.shields = 0;
this.armor = 1;
this.armorType = "medium";
this.speed = 550;
this.turnSpeed = 5000;
this.hotkey = "W";
this.createdBy = ["coop/commander/galavax/building/coop-galavax-legion-barracks"];
this.unlockedBy = ["coop/commander/galavax/building/coop-galavax-legion-barracks"];
this.upgradedBy = ["coop/commander/galavax/building/coop-galavax-citadel"];
this.description = "Tanky melee infantry. Attacks ground units.";
this.tag("legion:thrall");
this.attacks.steelPincers = new Attack({
internalId: "Default__Legion_ThrallMelee_C",
name: "Steel Pincers",
damage: 15,
cooldown: 1.37,
range: 120,
targets: ["ground"],
bonusDamage: [{ multiplier: 2.0, vs: ["armor:light"] }],
armorPenetration: 0,
delay: 0.15,
parentId: this.id,
parentUUID: this.uuid,
});
const unit = this;
this.upgrades.alloyArmor = new Upgrade({
name: "Alloy Armor",
unlockedBy: ["coop/commander/galavax/building/coop-galavax-citadel"],
description: "Each hit increases attack speed (+10% up to 70%)",
tier: "T1",
position: "A",
fluxCost: 100,
researchTime: 40,
apply() {},
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.saw = new Upgrade({
name: "Saw",
unlockedBy: ["coop/commander/galavax/building/coop-galavax-citadel"],
description: "Additional +100% damage against light armor",
tier: "T1",
position: "B",
fluxCost: 100,
researchTime: 40,
apply() {
unit.attacks.steelPincers.bonusDamage = [{ multiplier: 3.0, vs: ["armor:light"] }];
},
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.performanceEnhancers = new Upgrade({
name: "Performance Enhancers",
unlockedBy: ["coop/commander/galavax/building/coop-galavax-terror-tower"],
description: "+125 movement speed.",
tier: "T2",
position: "A",
fluxCost: 150,
researchTime: 50,
apply() {
unit.speed = (unit.speed || 0) * 1.4;
},
parentId: this.id,
parentUUID: this.uuid,
});
this.internalId = "Troop_Galavax_Steelsworn_C";
this.hexiteCost = 50;
this.fluxCost = 0;
this.upgrades.alloyArmor.name = "Emperor's Blessing";
this.upgrades.alloyArmor.description =
"Steelsworn gain +50 Health and +1 Armor. Steelsworn will sacrifice nearby thralls to regain health and sending the steelsworn into a frenzy. {dur} cooldown.";
this.upgrades.saw.name = "Leech Protocol";
this.upgrades.saw.description =
"Attacks now cleave, gain additional +300% damage against light, and +50% lifesteal.";
this.upgrades.performanceEnhancers.description = "+35% movement speed";
this.createdBy = ["coop/commander/galavax/building/coop-galavax-legion-barracks"];
this.unlockedBy = ["coop/commander/galavax/building/coop-galavax-legion-barracks"];
this.upgradedBy = ["coop/commander/galavax/building/coop-galavax-citadel"];
}
}
export default CoopGalavaxSteelsworn;