UNPKG

@zerospacegg/iolin

Version:

Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)

117 lines 4.59 kB
/** * Exalted - Elite mounted scout with devastating spear attacks * Swift reconnaissance unit with powerful spear attacks and crowd control abilities */ import { LegionArmyUnit } from "../../../../defaults/legion.js"; import { Attack, Passive, Spell, Upgrade } from "../../../../engine/ability.js"; export class Exalted extends 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 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 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 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 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 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, }); } } // Static property for source path Exalted.src = "src/zerospace/faction/legion/unit/exalted.ts"; export default Exalted; //# sourceMappingURL=exalted.js.map