ZSGG Public Library
Exalted
Legion T1 Army Unit
import { LegionArmyUnit } from "../../../../defaults/legion.js";
import { Attack, Spell, Upgrade } from "../../../../engine/ability.js";
export class Exalted extends LegionArmyUnit {
override uuid: string;
static override src = "src/zerospace/faction/legion/unit/exalted.ts";
constructor() {
super();
this.hexiteCost = 75;
this.fluxCost = 0;
this.buildTime = 30;
this.buildCount = 1;
this.name = "Exalted";
this.description = "Fast moving raider. \nCan jump down cliffs.";
this.tier = "T1";
this.uuid = "04370bdf-9b8b-409a-beda-5a2ce7e17435";
this.internalId = "Troop_Empire_Rhino_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Empire_Rhino.Default__Troop_Empire_Rhino_C";
this.internalTags = [
"Attackable.Unit.Troop",
"Attackable.Unit.Light",
"Attackable.ArmorType.Medium",
"Attackable.Biological",
"Local.Legion.Infantry.Rhino",
];
this.internalSecondaryTags = ["Biological", "Infantry"];
this.supply = 2;
this.hp = 200;
this.shields = 0;
this.armor = 0;
this.armorType = "medium";
this.speed = 700;
this.hotkey = "R";
this.energy = 10;
this.vision = 1800;
this.turnSpeed = 8000;
this.healthRegen = 4.5;
this.createdBy = ["faction/legion/building/beastiary"];
this.unlockedBy = ["faction/legion/building/beastiary"];
this.upgradedBy = ["faction/legion/building/citadel"];
this.description = "Fast moving raider. Can jump down cliffs. Attacks ground and air units.";
this.attacks.spearOfTheChosen = new Attack({
name: "Spear of the Chosen",
damage: 22,
cooldown: 1.9,
armorPenetration: 0,
delay: 0.17,
range: 500,
targets: ["air", "ground"],
bonusDamage: [{ multiplier: 1.5, vs: ["armor:heavy"] }],
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.maul = new Spell({
name: "Maul",
energyCost: 10,
energyType: "classic",
targets: ["air", "ground"],
description: "Immobilizes target for 5 seconds",
duration: 5.0,
unlocked: false,
parentId: this.id,
parentUUID: this.uuid,
});
const unit = this;
this.upgrades.maul = new Upgrade({
name: "Maul",
description: "Attacks do bonus damage and slow",
tier: "T1.5",
fluxCost: 150,
researchTime: 60,
apply() {
unit.spells.maul!.unlocked = true;
},
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.hallowedStrike = new Upgrade({
name: "Hallowed Strike",
description: "+4 Attack Rage. \n+200% Damage against Air.",
tier: "T2.5",
fluxCost: 150,
researchTime: 60,
apply() {
unit.attacks.spearOfTheChosen.range = (unit.attacks.spearOfTheChosen.range || 0) + 300;
unit.attacks.spearOfTheChosen.bonusDamage = [
{ multiplier: 1.5, vs: ["armor:heavy"] },
{ multiplier: 2.0, vs: ["flyer"] },
];
},
parentId: this.id,
parentUUID: this.uuid,
});
}
}
export default Exalted;