UNPKG

@zerospacegg/iolin

Version:

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

69 lines 2.91 kB
/** * Marran Sharpshooter - T1 precision sniper with firing position ability * Elite marksman who embodies Marran defensive philosophy through patient precision */ import { MarranMercUnit } from "../../../../defaults/marran.js"; import { Attack, Siege } from "../../../../engine/ability.js"; export class MarranSharpshooter extends MarranMercUnit { constructor() { super(); // Auto-generated fixes from dev data comparison this.hexiteCost = 100; this.fluxCost = 200; this.buildCount = 3; this.name = "Marran Sharpshooter"; this.tier = "T1"; this.internalId = "Troop_Marran_Sharpshooter_C"; this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Marran_Sharpshooter.Default__Troop_Marran_Sharpshooter_C"; this.internalTags = [ "Attackable.Unit.Troop", "Attackable.Unit.Light", "Attackable.ArmorType.Light", "Attackable.Biological", ]; this.internalSecondaryTags = ["Infantry"]; 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; this.vision = 1800; this.turnSpeed = 5000; // TODO: Convert to getter - this.infuseCost = 5; // Relationships this.createdBy = ["mercenary/marran/building/marran-merc-outpost"]; this.unlockedBy = ["mercenary/marran/building/marran-merc-outpost"]; // Attack ability with bonus vs light armor this.attacks.attack = new Attack({ name: "Attack", damage: 15, cooldown: 1.0, cooldownBetweenShots: 1, armorPenetration: 0, delay: 0.01, 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 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, }); } } // Static property for source path MarranSharpshooter.src = "src/zerospace/mercenary/marran/unit/marran-sharpshooter.ts"; export default MarranSharpshooter; //# sourceMappingURL=marran-sharpshooter.js.map