UNPKG

@zerospacegg/iolin

Version:

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

109 lines 4.35 kB
"use strict"; /** * Exalted - Elite mounted scout with devastating spear attacks * Swift reconnaissance unit with powerful spear attacks and crowd control abilities */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Exalted = void 0; const ability_js_1 = require("../../../../engine/ability.cjs"); const legion_classes_js_1 = require("../../legion-classes.cjs"); const beastiary_js_1 = __importDefault(require("../building/beastiary.cjs")); const citadel_js_1 = __importDefault(require("../building/citadel.cjs")); class Exalted extends legion_classes_js_1.LegionArmyUnit { constructor() { super(); this.name = "Exalted"; this.tier = "T1"; this.hexiteCost = 75; this.fluxCost = 0; this.buildTime = 24; this.buildCount = 1; this.uuid = "04370bdf-9b8b-409a-beda-5a2ce7e17435"; // 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; // Relationships - created by beastiary this.createdBy = [beastiary_js_1.default.id]; this.unlockedBy = [beastiary_js_1.default.id]; this.upgradedBy = [citadel_js_1.default.id]; 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: 20, cooldown: 1.9, 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