ZSGG Public Library
Marran Sharpshooter
Marran T1 Merc Unit
import { MarranMercUnit } from "../../../../defaults/marran.js";
import { Attack, Siege } from "../../../../engine/ability.js";
export class MarranSharpshooter extends MarranMercUnit {
override uuid: string;
static override src = "src/zerospace/mercenary/marran/unit/marran-sharpshooter.ts";
constructor() {
super();
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 = "Infantry which can deploy to attack with extra range in a limited area.";
this.shortName = "Sharpshooter";
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;
this.createdBy = ["mercenary/marran/building/marran-mothership"!];
this.unlockedBy = ["mercenary/marran/building/marran-mothership"!];
this.attacks.seekerLance = new Attack({
name: "Seeker Lance",
damage: 15,
cooldown: 1.0,
requiresMode: "sieged",
armorPenetration: 0,
delay: 0.01,
range: 1200,
targets: ["air", "ground"],
bonusDamage: [{ multiplier: 1.5, vs: ["armor:light"] }],
parentId: this.id,
parentUUID: this.uuid,
});
this.sieges.firingPosition = new Siege({
name: "Firing Position",
description:
"Gain +100% range and +50% attack speed against units in a limited arc. \nCannot move while in firing position.",
hotkey: "F",
togglesMode: "siege",
duration: 0.3,
});
}
}
export default MarranSharpshooter;