ZSGG Public Library
Mera
Protectorate Hero Unit
import { ProtectorateHeroUnit } from "../../../../defaults/protectorate.js";
import { Attack, Spell, WeaponSwitch } from "../../../../engine/ability.js";
export class Mera extends ProtectorateHeroUnit {
override uuid: string;
static override src = "src/zerospace/faction/protectorate/hero/mera.ts";
constructor() {
super();
this.hexiteCost = 220;
this.fluxCost = 0;
this.buildTime = 5;
this.name = "Mera";
this.internalId = "Troop_MPHero_Mera_C";
this.internalPath = "/Game/Nova/Archetypes_Heroes/Troop_MPHero_Mera.Default__Troop_MPHero_Mera_C";
this.internalTags = [
"Attackable.Unit.Hero",
"Logic.SpawnAtOldestSpawner",
"Attackable.Biological",
"Logic.NoVeterancy",
];
this.internalSecondaryTags = ["Infantry"];
this.uuid = "d729732c-6042-4155-8963-11fe8b06e132";
this.description =
"Hero that can switch between melee and raned weapons. \nCan dash through enemies and create an armor field around her.";
this.hp = 175;
this.shields = 175;
this.speed = 500;
this.vision = 1800;
this.turnSpeed = 6000;
this.healthRegen = 6;
this.pushability = 0.1;
this.modes = [
{ slug: "sword", name: "Sword", description: "Uses Vakira as a melee weapon." },
{ slug: "gun", name: "Gun", description: "Uses a Pulse Pistol as a ranged weapon." },
];
this.attacks.valora = new Attack({
name: "Vakira",
damage: 23,
cooldown: 1.2,
armorPenetration: 0,
delay: 0.27,
range: 200,
targets: ["ground"],
requiresMode: "sword",
parentId: this.id,
parentUUID: this.uuid,
});
this.attacks.pulsePistol = new Attack({
name: "Pulse Pistol",
damage: 24,
cooldown: 1.5,
range: 1200,
targets: ["air", "ground"],
requiresMode: "gun",
parentId: this.id,
parentUUID: this.uuid,
});
this.weaponSwitches.weaponSwitch = new WeaponSwitch({
name: "Weapon Switch",
description: "Mera switches between a Sword and a Blaster.",
hotkey: "V",
cooldown: 10,
switchBetween: ["sword", "gun"],
});
this.spells.kineticDash = new Spell({
name: "Kinetic Dash",
hotkey: "Z",
cooldown: 13,
description:
"Dash forward, dealing 25 damage to enemies in path. \n+1 armor per enemy hit and +50% movement speed for 3 seconds.",
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.protectiveBarrier = new Spell({
name: "Protective Barrier",
hotkey: "W",
cooldown: 40,
description:
"Deploy a field around Mera that grants nearby friendly units and structures +3 Armor. \nLasts 16 seconds.",
duration: 16,
parentId: this.id,
parentUUID: this.uuid,
});
}
}
export default Mera;