ZSGG Public Library
Thrall
Legion Co-Op T1 Army Unit
import { LegionArmyUnit } from "../../../../../defaults/legion.js";
import { Attack, Upgrade } from "../../../../../engine/ability.js";
export class CoopGalavaxThrall extends LegionArmyUnit {
static override src = "src/zerospace/coop/commander/galavax/unit/coop-galavax-thrall.ts";
constructor() {
super();
this.uuid = "ef0f3ad9-6c42-4ddd-8167-bdf09d908717";
this.hexiteCost = 50;
this.fluxCost = 0;
this.buildTime = 30;
this.buildCount = 3;
this.name = "Thrall";
this.tier = "T1";
this.internalId = "Troop_Empire_Thrall_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Empire_Thrall.Default__Troop_Empire_Thrall_C";
this.internalTags = [
"Attackable.Unit.Troop",
"Attackable.Unit.Light",
"Attackable.ArmorType.Light",
"Attackable.Biological",
"Local.Legion.Infantry.Thrall.Ranged",
];
this.internalSecondaryTags = ["Infantry"];
this.supply = 1;
this.hp = 70;
this.shields = 0;
this.armor = 0;
this.armorType = "light";
this.speed = 525;
this.turnSpeed = 5000;
this.hotkey = "Q";
this.createdBy = [
"coop/commander/galavax/building/coop-galavax-legion-barracks",
"coop/commander/galavax/building/coop-galavax-summoning-obelisk",
];
this.unlockedBy = ["coop/commander/galavax/building/coop-galavax-legion-barracks"];
this.upgradedBy = ["coop/commander/galavax/building/coop-galavax-citadel"];
this.description = "Light ranged infantry. Attacks ground and air units.";
this.tag("legion:thrall");
this.attacks.galynxAssaultCannon = new Attack({
internalId: "Default__Legion_WorkerRifle_C",
name: "Galynx Assault Cannon",
damage: 7,
cooldown: 1.5,
range: 700,
targets: ["air", "ground"],
armorPenetration: 0,
delay: 0.06,
parentId: this.id,
parentUUID: this.uuid,
});
const unit = this;
this.upgrades.battleFrenzy = new Upgrade({
name: "Battle Frenzy",
unlockedBy: ["coop/commander/galavax/building/coop-galavax-citadel"],
description: "+15 per attack to a maximum of 75%",
tier: "T1",
position: "A",
fluxCost: 100,
researchTime: 40,
apply() {},
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.chargedShot = new Upgrade({
name: "Charged Shot",
unlockedBy: ["coop/commander/galavax/building/coop-galavax-citadel"],
description: "Every 15 seconds your next attack deals +100% damage",
tier: "T1",
position: "B",
fluxCost: 100,
researchTime: 40,
apply() {},
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.performanceEnhancers = new Upgrade({
name: "Performance Enhancers",
unlockedBy: ["coop/commander/galavax/building/coop-galavax-terror-tower"],
description: "+15% attack & movement speed",
tier: "T2",
position: "A",
fluxCost: 150,
researchTime: 50,
apply() {
unit.speed = (unit.speed || 0) * 1.15;
unit.attacks.galynxAssaultCannon.cooldown = (unit.attacks.attack.cooldown || 0) * 0.85;
},
parentId: this.id,
parentUUID: this.uuid,
});
this.internalId = "Troop_Galavax_Thrall_C";
this.hexiteCost = 50;
this.fluxCost = 0;
this.buildCount = 3;
this.supply = 1;
this.hp = 70;
delete this.upgrades.performanceEnhancers;
this.upgrades.sacrificialPawns = new Upgrade({
name: "Sacrificial Pawns",
description: "Thralls spawn in groups of four at no additional Hexite cost.",
tier: "T2",
position: "A",
fluxCost: 150,
researchTime: 60,
parentId: this.id,
parentUUID: this.uuid,
uuid: "365e6629-b33b-4275-b83c-cfe438b9a123",
});
this.upgrades.witnessMe = new Upgrade({
name: "Witness Me!",
description: "On death, grants one random ally +40% attack speed and +20% movement speed for 20 seconds.",
tier: "T2",
position: "B",
fluxCost: 150,
researchTime: 60,
parentId: this.id,
parentUUID: this.uuid,
uuid: "56b7d145-3f7c-4c98-a959-dbd94efba410",
});
this.createdBy = [
"coop/commander/galavax/building/coop-galavax-legion-barracks",
"coop/commander/galavax/building/coop-galavax-summoning-obelisk",
];
this.unlockedBy = ["coop/commander/galavax/building/coop-galavax-legion-barracks"];
this.upgradedBy = ["coop/commander/galavax/building/coop-galavax-citadel"];
}
}
export default CoopGalavaxThrall;