UNPKG

@zerospacegg/iolin

Version:

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

58 lines 2.56 kB
"use strict"; /** * Marran Sharpshooter - T1 precision sniper with firing position ability * Elite marksman who embodies Marran defensive philosophy through patient precision */ Object.defineProperty(exports, "__esModule", { value: true }); exports.MarranSharpshooter = void 0; const ability_js_1 = require("../../../../engine/ability.cjs"); const marran_classes_js_1 = require("../../marran-classes.cjs"); const marran_merc_outpost_js_1 = require("../building/marran-merc-outpost.cjs"); class MarranSharpshooter extends marran_classes_js_1.MarranMercUnit { constructor() { super(); this.name = "Marran Sharpshooter"; this.tier = "T1"; this.buildCount = 3; this.hexiteCost = 100; this.fluxCost = 200; this.uuid = "fa911f95-449e-47a7-9aa4-8084ed260d3d"; this.description = "Light infantry which can set up to attack with extra range in a limited area. Attacks ground and air units."; // Set short name this.shortName = "Sharpshooter"; // Mutable properties - precision sniper with advanced positioning this.supply = 3; this.hp = 100; this.shields = 100; this.armorType = "light"; this.speed = 450; // TODO: Convert to getter - this.infuseCost = 5; // Relationships this.createdBy = [marran_merc_outpost_js_1.MarranMercOutpostBuilding.id]; this.unlockedBy = [marran_merc_outpost_js_1.MarranMercOutpostBuilding.id]; // Attack ability with bonus vs light armor this.attacks.attack = new ability_js_1.Attack({ name: "Attack", damage: 15, cooldown: 1.0, range: 1200, targets: ["air", "ground"], bonusDamage: [{ multiplier: 1.5, vs: ["armor:light"] }], parentId: this.id, parentUUID: this.uuid, }); // Firing Position toggle ability - signature Marran siege mode this.sieges.firingPosition = new ability_js_1.Siege({ name: "Firing Position", description: "0.3s to set up. gain 100% range and 50% attack speed against units in a limited arc. cannot move while in firing position", hotkey: "F", togglesMode: "siege", duration: 0.3, }); } } exports.MarranSharpshooter = MarranSharpshooter; // Static property for source path MarranSharpshooter.src = "src/zerospace/mercenary/marran/unit/marran-sharpshooter.ts"; exports.default = MarranSharpshooter; //# sourceMappingURL=marran-sharpshooter.js.map