ZSGG Public Library
Dark Disciple
Legion Co-Op T2 Army Unit
import { LegionArmyUnit } from "../../../../../defaults/legion.js";
import { Attack, Channel, Spell, Upgrade } from "../../../../../engine/ability.js";
export class CoopGalavaxDarkDisciple extends LegionArmyUnit {
static override src = "src/zerospace/coop/commander/galavax/unit/coop-galavax-dark-disciple.ts";
constructor() {
super();
this.uuid = "3db83451-3ce1-4b46-bdad-9018bd950486";
// Fix: Movement Speed
this.speed = 450;
this.hexiteCost = 50;
this.fluxCost = 100;
this.buildTime = 48;
this.buildCount = 1;
this.name = "Dark Disciple";
this.tier = "T2";
this.internalId = "Troop_Empire_Fanatic_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Empire_Fanatic.Default__Troop_Empire_Fanatic_C";
this.internalTags = [
"Attackable.Unit.Troop",
"Attackable.Unit.Light",
"Attackable.ArmorType.Light",
"Attackable.Biological",
"Local.Legion.Infantry.DarkDisciple",
];
this.internalSecondaryTags = ["Biological", "Infantry"];
this.description = "Light ranged infantry. \nIts damage increases the longer it attacks.";
this.supply = 4;
this.hp = 180;
this.shields = 0;
this.armor = 0;
this.armorType = "light";
this.turnSpeed = 5000;
this.hotkey = "E";
this.createdBy = ["coop/commander/galavax/building/coop-galavax-legion-barracks"];
this.unlockedBy = ["coop/commander/galavax/building/coop-galavax-terror-tower"];
this.upgradedBy = ["coop/commander/galavax/building/coop-galavax-citadel"];
this.tag("legion:thrall");
this.attacks.oblivionSCall = new Attack({
internalId: "Default__Weapon_Legion_Psyker_C",
name: "Oblivion's Call",
damage: 6,
cooldown: 0.8,
armorPenetration: 0,
delay: 0.13,
range: 1400,
targets: ["air", "ground"],
bonusDamage: [{ multiplier: 1.75, vs: ["armor:heavy"] }],
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.frenzy = new Upgrade({
name: "Frenzy",
unlockedBy: ["coop/commander/galavax/building/coop-galavax-citadel"],
description: "Temporarily gain +35% attack speed when nearby friendly units die",
tier: "T1",
position: "A",
fluxCost: 125,
researchTime: 50,
apply() {},
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.frenzy.name = "Battle Frenzy";
this.spells.battleFrenzy = new Spell({
name: "Battle Frenzy",
description: "Gain +50% attack speed and +30% movement speed for 20 seconds.",
energyCost: 75,
energyType: "classic",
cooldown: 20,
duration: 20,
unlocked: false,
parentId: this.id,
parentUUID: this.uuid,
});
this.internalId = "Troop_Galavax_DarkDisciple_C";
this.hexiteCost = 50;
this.fluxCost = 100;
this.supply = 4;
this.internalTags = [
"Attackable.Unit.Troop",
"Attackable.Unit.Light",
"Attackable.ArmorType.Light",
"Attackable.Biological",
"Local.Legion.Infantry.DarkDisciple",
];
this.hp = 180;
this.energy = 100;
this.armor = 0;
this.armorType = "light";
this.speed = 450;
this.upgrades.frenzy.description =
"Gain +50% attack speed and +30% movement speed for 20 seconds. Costs 75 energy.";
this.upgrades.erodingLightning = new Upgrade({
name: "Eroding Lightning",
description: "Attacks reduce the target's armor by 5.",
tier: "T1",
position: "B",
fluxCost: 150,
researchTime: 60,
parentId: this.id,
parentUUID: this.uuid,
uuid: "8b34b5d7-4af8-43af-bd14-cbef634bb4d6",
});
this.attacks.oblivionSCall.damage = 6;
this.spells.shadowTraining = new Channel({
name: "Shadow Training",
damage: 30,
cooldown: 1,
cooldownBetweenShots: 0.5,
energyCost: 1,
energyType: "classic",
targets: ["map"],
description:
"Channel storm at targeted location. Each lightning hit consumes 1 energy. Deals 30 damage every 0.5 seconds.",
parentId: this.id,
parentUUID: this.uuid,
});
this.createdBy = ["coop/commander/galavax/building/coop-galavax-legion-barracks"];
this.unlockedBy = ["coop/commander/galavax/building/coop-galavax-terror-tower"];
this.upgradedBy = ["coop/commander/galavax/building/coop-galavax-citadel"];
this.upgrades.frenzy.fluxCost = 150;
this.upgrades.frenzy.researchTime = 60;
}
}
export default CoopGalavaxDarkDisciple;