ZSGG Public Library
Griffin
Protectorate T3 Army Unit
import { ProtectorateArmyUnit } from "../../../../defaults/protectorate.js";
import { Attack, Heal, Spell, Upgrade } from "../../../../engine/ability.js";
export class Griffin extends ProtectorateArmyUnit {
override uuid: string;
static override src = "src/zerospace/faction/protectorate/unit/griffin.ts";
override get infuseCost(): number | undefined {
return 16;
}
constructor() {
super();
this.hexiteCost = 125;
this.fluxCost = 175;
this.buildTime = 53;
this.domain = "air";
this.name = "Griffin";
this.tier = "T3";
this.hotkey = "P";
this.supply = 6;
this.uuid = "e93b9c8e-9a24-470d-aa35-b65e262384ff";
this.internalId = "Troop_Prot_Griffin_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Prot_Griffin.Default__Troop_Prot_Griffin_C";
this.internalTags = ["Attackable.Unit.Troop", "Attackable.FlyingUnit", "Attackable.ArmorType.Medium"];
this.internalSecondaryTags = ["Air"];
this.providesDetection = true;
this.description = "Repairs friendly vehicles, can cast EMP.";
this.hp = 200;
this.armorType = "medium";
this.armor = 1;
this.speed = 650;
this.vision = 1800;
this.turnSpeed = 2000;
this.attacks.lightPulseCannon = new Attack({
name: "Light Pulse Cannon",
damage: 12,
cooldown: 1.1,
armorPenetration: 0,
delay: 0.01,
range: 1400,
targets: ["air", "ground"],
parentId: this.id,
parentUUID: this.uuid,
});
const unit = this;
[1, 2, 3].forEach(i => {
unit.heals[`supportMatrix${i}`] = new Heal({
name: `Support Matrix ${i}`,
healing: 6,
cooldown: 0.5,
range: 1100,
parentId: unit.id,
parentUUID: unit.uuid,
});
});
this.spells.emp = new Spell({
name: "EMP",
description: "Drain 50 energy and shields, knocks back and breifly slow enemy units",
cooldown: 50,
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.emp = new Upgrade({
name: "EMP",
description: "Unlocks EMP ability",
fluxCost: 150,
researchTime: 45,
tier: "T3.5",
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.serviceRelay = new Upgrade({
name: "Service Relay",
description: "+30% Support Matrix repair rate.",
fluxCost: 150,
researchTime: 60,
parentId: this.id,
parentUUID: this.uuid,
});
this.createdBy = ["faction/protectorate/building/skydock"];
this.unlockedBy = ["faction/protectorate/building/skydock"];
this.upgradedBy = ["faction/protectorate/building/mechanical-research-lab"];
}
}
export default Griffin;