@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
121 lines • 4.78 kB
JavaScript
"use strict";
/**
* Exalted - Elite mounted scout with devastating spear attacks
* Swift reconnaissance unit with powerful spear attacks and crowd control abilities
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.Exalted = void 0;
const legion_js_1 = require("../../../../defaults/legion.cjs");
const ability_js_1 = require("../../../../engine/ability.cjs");
class Exalted extends legion_js_1.LegionArmyUnit {
constructor() {
super();
// Auto-generated fixes from dev data comparison
this.hexiteCost = 75;
this.fluxCost = 0;
this.buildTime = 24;
this.buildCount = 1;
this.name = "Exalted";
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 = ["Infantry"];
// Mutable properties - elite mounted warrior with enhanced capabilities
this.supply = 2;
this.hp = 200;
this.shields = 0;
this.armor = 0;
this.armorType = "medium";
this.speed = 700; // Swift mounted reconnaissance
this.hotkey = "E";
this.energy = 10;
this.vision = 1800;
this.turnSpeed = 8000;
this.healthRegen = 4.5;
// Relationships - created by beastiary
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.";
// Tags for identification and targeting - none needed for Exalted
// Spear throwing attack with anti-heavy armor bonus
this.attacks.spearThrow = new ability_js_1.Attack({
name: "Spear Throw",
damage: 23,
cooldown: 1.9,
cooldownBetweenShots: 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,
});
// Maul ability - crowd control immobilization
this.spells.maul = new ability_js_1.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,
});
// Health regeneration passive
this.passives.healthRegeneration = new ability_js_1.Passive({
name: "Health Regeneration",
description: "Regenerates 1.5 HP per second",
parentId: this.id,
parentUUID: this.uuid,
});
// Capture instance for upgrade apply methods
const unit = this;
// Maul upgrade - unlocks the Maul ability
this.upgrades.maul = new ability_js_1.Upgrade({
name: "Maul",
description: "Unlocks the Maul ability",
tier: "T1.5",
fluxCost: 150,
researchTime: 60,
apply() {
unit.spells.maul.unlocked = true;
},
parentId: this.id,
parentUUID: this.uuid,
});
// Hallowed Strike upgrade - enhanced range and air damage
this.upgrades.hallowedStrike = new ability_js_1.Upgrade({
name: "Hallowed Strike",
description: "Attack range increased by 300. Attacks deal double damage against air",
tier: "T2.5",
fluxCost: 100,
researchTime: 50,
apply() {
unit.attacks.spearThrow.range = (unit.attacks.spearThrow.range || 0) + 300;
// Add air damage bonus
unit.attacks.spearThrow.bonusDamage = [
{ multiplier: 1.5, vs: ["armor:heavy"] },
{ multiplier: 2.0, vs: ["flyer"] },
];
},
parentId: this.id,
parentUUID: this.uuid,
});
}
}
exports.Exalted = Exalted;
// Static property for source path
Exalted.src = "src/zerospace/faction/legion/unit/exalted.ts";
exports.default = Exalted;
//# sourceMappingURL=exalted.js.map