ZSGG Public Library
Marv
Protectorate Hero Unit
import { ProtectorateHeroUnit } from "../../../../defaults/protectorate.js";
import { Attack, Spell } from "../../../../engine/ability.js";
export class Marv extends ProtectorateHeroUnit {
override uuid: string;
static override src = "src/zerospace/faction/protectorate/hero/marv.ts";
constructor() {
super();
this.hexiteCost = 220;
this.fluxCost = 0;
this.buildTime = 5;
this.rebuildable = true;
this.rebuildTime = 60;
this.name = "Marv";
this.description =
"Can slow and damage enemies in line, teleport or swap with other units, and grant a shield to friendly units.";
this.uuid = "888d3dce-562e-4feb-b010-b608671177ec";
this.internalId = "Troop_MPHero_Tech_C";
this.internalPath = "/Game/Nova/Archetypes_Heroes/Troop_MPHero_Tech.Default__Troop_MPHero_Tech_C";
this.internalTags = [
"Attackable.Unit.Hero",
"Logic.SpawnAtOldestSpawner",
"Attackable.Biological",
"Logic.NoVeterancy",
];
this.internalSecondaryTags = ["Infantry"];
this.hp = 130;
this.shields = 130;
this.speed = 500;
this.vision = 1800;
this.armorType = "hero";
this.stunResist = 70;
this.turnSpeed = 6000;
this.healthRegen = 12;
this.pushability = 0.1;
this.attacks.starLance = new Attack({
name: "Star Lance",
damage: 14,
cooldown: 1.0,
range: 1200,
targets: ["ground", "air"],
armorPenetration: 0,
delay: 0.01,
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.energyConduit = new Spell({
name: "Energy Conduit",
description: "Damage and slow enemies in line. \nEach enemy hit permanently increases Companion shield by +2",
hotkey: "N",
targets: ["map"],
targetMode: "strip",
cooldown: 25,
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.transposition = new Spell({
name: "Transposition",
description:
"If Transposition hits an enemy unit, swap locations, otherwise teleoprt to the location. \nUpon arrival, gain Guardian Link for 5 seconds",
hotkey: "X",
targets: ["map"],
cooldown: 15,
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.guardianLink = new Spell({
name: "Guardian Link",
description: "Grant a neutral or friendly unit +150 shields.",
cooldown: 20,
targets: ["ground", "air"],
hotkey: "X",
parentId: this.id,
parentUUID: this.uuid,
});
}
}
export default Marv;