ZSGG Public Library
Defiant
Xol Co-Op T2 Army Unit
import { XolArmyUnit } from "../../../../../defaults/xol.js";
import { Attack, Upgrade } from "../../../../../engine/ability.js";
import { applyCoopXolMerges } from "../../../_util/coop-xol-merges.js";
export class CoopDefiant extends XolArmyUnit {
static override src = "src/zerospace/coop/commander/anrubic/unit/coop-anrubic-defiant.ts";
override get variantOf(): string {
return "faction/xol/unit/defiant";
}
constructor() {
super();
applyCoopXolMerges(this);
this.buildTime = 16;
this.name = "Defiant";
this.tier = "T2";
this.hotkey = "";
this.uuid = "050d69ba-1402-4c3f-bb2c-7553d084c364";
this.internalId = "Troop_Xol_Defiant_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Xol_Defiant.Default__Troop_Xol_Defiant_C";
this.internalTags = [
"Attackable.Unit.Troop",
"Local.Xol.Defiant",
"Attackable.ArmorType.Heavy",
"Logic.ABESAttacked",
"Troop.Xol.Tier2",
];
this.internalSecondaryTags = ["Infantry"];
this.description =
"Melee unit which gains energy when enemies attack it, and upon reaching full energy spins, dealing its attack damage to every enemy unit surrounding it in melee range.";
this.unlockedBy = ["faction/xol/building/molten-core"];
this.hp = 500;
this.energy = 6;
this.startingEnergy = 0;
this.shields = 0;
this.armor = 2;
this.armorType = "heavy";
this.abesEnergy = 6;
this.speed = 575;
this.supply = 4;
this.turnSpeed = 2000;
this.vision = 1600;
this.pushability = 0;
this.attacks.vectorSlash = new Attack({
internalId: "Default__Weapon_Xol_Defiant_C",
name: "Vector Slash",
damage: 36,
range: 150,
cooldown: 1.25,
armorPenetration: 0,
delay: 0.175,
targets: ["ground"],
bonusDamage: [{ multiplier: 1.5, vs: ["armor:light"] }],
parentId: this.id,
parentUUID: this.uuid,
});
this.attacks.aBESPulse = new Attack({
name: "ABES Pulse",
description: "Automatically releases when Defiant fills its ABES energy by being attacked.",
damage: 15,
range: 200,
splash: { multiplier: 1, range: 200 },
bonusDamage: [{ multiplier: 1.5, vs: ["armor:light"] }],
targets: ["ground"],
targetMode: "around-self",
energyCost: 6,
energyType: "abes",
parentId: this.id,
parentUUID: this.uuid,
});
this.unlockedBy = ["coop/commander/anrubic/building/coop-anrubic-world-forge"];
this.upgradedBy = ["coop/commander/anrubic/building/coop-anrubic-world-forge"];
this.upgrades.attackEfficiency = new Upgrade({
name: "Attack Efficiency",
description: "Decreases the number of attacks required to trigger area damage by 3.",
tier: "T1",
position: "A",
fluxCost: 150,
researchTime: 50,
parentId: this.id,
parentUUID: this.uuid,
uuid: "7c92ad4d-855d-4514-81ea-89dabd36f637",
});
this.upgrades.enrageProtocols = new Upgrade({
name: "Enrage Protocols",
description: "Decreases Overclock when shields are depleted.",
tier: "T1",
position: "B",
fluxCost: 150,
researchTime: 50,
parentId: this.id,
parentUUID: this.uuid,
uuid: "bb81f198-16d9-4613-8dc4-bd5e160d058b",
});
}
}
export default CoopDefiant;