ZSGG Public Library
Griffin
Protectorate Co-Op T3 Army Unit
import { ArmyUnit } from "../../../../../engine/unit.js";
import { Attack, Heal, Spell, Upgrade } from "../../../../../engine/ability.js";
export class CoopGriffin extends ArmyUnit {
static override src = "src/zerospace/coop/commander/aster/unit/coop-aster-griffin.ts";
constructor() {
super();
this.faction = "protectorate";
this.factionName = "Protectorate";
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 = "484fd5e4-a0f4-481e-be48-8b4464720de5";
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 = 550;
this.vision = 1800;
this.turnSpeed = 2000;
this.attacks.magellanLightPulseCannon = new Attack({
internalId: "Default__Weapon_Prot_AirCaster_C",
name: "Magellan 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;
unit.heals.supportMatrix = new Heal({
name: "Support Matrix",
healing: 11,
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",
unlockedBy: ["faction/protectorate/building/mechanical-research-lab"],
description: "Unlocks EMP ability",
fluxCost: 150,
researchTime: 60,
tier: "T1",
position: "A",
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.serviceRelay = new Upgrade({
name: "Service Relay",
unlockedBy: ["faction/protectorate/building/mechanical-research-lab"],
tier: "T1",
position: "B",
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"];
// 25 hexite cheaper than the PvP Griffin.
this.hexiteCost = 100;
this.hp = 250;
this.internalId = undefined;
this.internalPath = undefined;
this.setVariantUUID("coop-aster");
this.upgrades.bioMatrix = new Upgrade({
name: "Bio-Matrix",
description: "Allows the Griffin to heal biological units.",
tier: "T1",
position: "B",
fluxCost: 150,
researchTime: 60,
parentId: this.id,
parentUUID: this.uuid,
uuid: "7371c6ba-bb74-4233-89ab-fbcc66b1a4ce",
});
this.upgrades.serviceRelay.tier = "T2";
this.upgrades.serviceRelay.position = "A";
this.upgrades.serviceRelay.description = "+40% Support Matrix repair rate.";
this.unlockedBy = ["coop/commander/aster/building/coop-aster-war-foundry"];
this.createdBy = ["coop/commander/aster/building/coop-aster-war-foundry"];
this.upgradedBy = ["coop/commander/aster/building/coop-aster-mechanical-research-lab"];
this.upgrades.serviceRelay.fluxCost = 200;
this.upgrades.serviceRelay.researchTime = 70;
}
}
export default CoopGriffin;