@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
58 lines • 2.56 kB
JavaScript
"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