ZSGG Public Library
Reaver
Grell T3 Army Unit
import { GrellArmyUnit } from "../../../../defaults/grell.js";
import { Attack, DeathTrigger, Spell, Upgrade } from "../../../../engine/ability.js";
export class Reaver extends GrellArmyUnit {
override uuid: string;
static override src = "src/zerospace/faction/grell/unit/reaver.ts";
constructor() {
super();
this.hexiteCost = 200;
this.fluxCost = 100;
this.buildTime = 80;
this.buildCount = 1;
this.name = "Reaver";
this.tier = "T3";
this.hotkey = "A";
this.uuid = "8b84edd6-82cc-49a3-ada1-250a03eeffd5";
this.internalId = "Troop_GrellReaver_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_GrellReaver.Default__Troop_GrellReaver_C";
this.internalTags = ["Attackable.Unit.Troop", "Attackable.ArmorType.Heavy", "Logic.ABES", "Attackable.Biological"];
this.internalSecondaryTags = [];
this.unlockedBy = ["faction/grell/building/synapse-canopy"];
this.createdBy = ["faction/grell/building/elderwomb"];
this.upgradedBy = ["faction/grell/building/synapse-canopy"];
this.creates = ["faction/grell/unit/arkanid"];
this.description = "Tanky melee unit with Ravage.";
this.wikiDescription = "Tanky melee unit with [[faction/grell/unit/reaver/spells/ravage]].";
this.hp = 900;
this.shields = 0;
this.armor = 3;
this.armorType = "heavy";
this.speed = 525;
this.supply = 8;
this.stunResist = 50;
this.turnSpeed = 5000;
this.pushability = 0;
const reaver = this;
this.attacks.razorClaws = new Attack({
name: "Razor Claws",
damage: 51,
cooldown: 2,
cooldownBetweenShots: 0.5,
range: 175,
targets: ["ground"],
shots: 2,
splash: { multiplier: 0.5, range: 60 },
armorPenetration: 0,
delay: 0.2,
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.ravage = new Spell({
name: "Ravage",
description: "Charge to target location, knocking enemies back and dealing 80 damage.",
hotkey: "R",
damage: 80,
targets: ["ground"],
energyCost: 15,
energyType: "abes",
activationType: "activated",
parentId: this.id,
parentUUID: this.uuid,
});
this.onDeath.hatchArkanids = new DeathTrigger({
name: "Hatch Arkanids",
description: "Spawns 4 Arkanids when the Reaver dies.",
wikiDescription: "Spawns 4 [[faction/grell/unit/arkanid]] when the Reaver dies.",
shots: 4,
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.fluxbloodSurge = new Upgrade({
name: "Fluxblood Surge",
description: "Ravage: -50% Cast time, +50% damage dealt, +50% cast range.",
tier: "T3.5" as const,
fluxCost: 100,
researchTime: 50,
apply: () => {
if (reaver.spells.charge && reaver.spells.charge.damage) {
reaver.spells.charge.damage = Math.floor(reaver.spells.charge.damage * 1.5);
}
},
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.elderCarapace = new Upgrade({
name: "Elder Carapace",
description: "+3 armor",
tier: "T3.5" as const,
fluxCost: 100,
researchTime: 50,
apply: () => {
reaver.armor = (reaver.armor || 0) + 3;
},
parentId: this.id,
parentUUID: this.uuid,
});
}
}
export default Reaver;