ZeroSpace.gg

Legion

Main Faction

import { MainFaction } from "../../engine/faction.js"; import { LegionTalent, LegionTopbar } from "../../defaults/legion.js"; /** * Legion Faction Entity - Modern Class Architecture */ class LegionFactionEntity extends MainFaction { override uuid: string; static override src = "src/zerospace/faction/legion.ts"; constructor() { super(); this.name = "Legion"; this.uuid = "42b636c6-cf98-4534-bcf1-caaf148e2c39"; this.faction = "legion"; this.factionName = "Legion"; this.mercHeroesAllowed = false; this.commanders = ["coop/commander/galavax-commander"]; this.description = "A fanatical empire with unknown origins, devoted to the worship of the Idals, the Legion seeks to impose its divine will across the galaxy. Their zealous devotion drives them to sacrifice anything, even their own soldiers, to fulfill the will of the Idals. The Legion's forces are built around few but powerful units, including massive Terror Tanks and customizable Dreadnoughts, and they uniquely field many heroes in a single battle. Their soldiers seek honor through their sacrifice, their souls summoning the might of the Emperor himself, making the Legion a force to be feared."; this.topbars.recall = new LegionTopbar({ name: "Recall", topbarType: "recall", slot: 1, description: "Recalls all selected units to the Garrison Tower", hotkey: "Q", }); this.topbars.reanimate = new LegionTopbar({ name: "Reanimate", topbarType: "special", slot: 2, description: "Resurrects destroyed units with stat bonuses and temporary debuff immunity", hotkey: "W", energyCost: 25, cooldown: 45, }); this.topbars.ritual = new LegionTopbar({ name: "Ritual", topbarType: "ultimate", slot: 3, description: "Unlocks a ritual site that summons a temporal projection of the Emperor", wikiDescription: "Creates a [[faction/legion/building/ritual-site]] that summons an [[faction/legion/unit/emperor-projection]].", hotkey: "E", energyCost: 50, cooldown: 180, }); this.topbars.spawnMonolith = new LegionTopbar({ name: "Spawn Monolith", topbarType: "ultimate", slot: 4, description: "Spawn powerful defensive structure on battlefield", wikiDescription: "Spawns a [[faction/legion/building/monolith]] on the battlefield.", hotkey: "R", energyCost: 40, cooldown: 120, }); this.talents.warExperience = new LegionTalent({ uuid: "399A15E1-05B7-40B8-8C43-2F9F8D38B639", name: "War Experience", level: 1, description: "Gain experience by destroying enemy units", }); this.talents.improvedConduits = new LegionTalent({ uuid: "A8C7CE20-8CA0-4BA0-A79F-A6F8682D4C41", name: "Improved Conduits", level: 1, description: "-50% Conduit build time. \n+100% Conduit starting energy, max energy, and energy recharge rate", }); this.talents.efficientUpgrades = new LegionTalent({ uuid: "BC726A99-C585-4FB7-9776-5ED8A654F31F", name: "Efficient Upgrades", level: 2, description: "+40% research speed. \n-60% research cost", }); this.talents.summoningObelisk = new LegionTalent({ uuid: "4819FB77-2673-4739-A401-70A159F95B95", name: "Summoning Obelisk", level: 3, description: "Creates a Summoning Obelisk on the battlefield that summons Thralls over time", unlocks: ["faction/legion/building/summoning-obelisk"], }); this.talents.reanimateHero = new LegionTalent({ uuid: "1A0BC61D-13E3-4CD3-9EFE-4532262F97B1", name: "Reanimate Hero", level: 3, description: "Reanimate can target Heroes, debuffing them for 15s upon reanimation. Allows a third Hero to be built.", }); this.talents.improvedSpellcasting = new LegionTalent({ uuid: "3E409C0B-D96F-4C21-B37F-BC2D08A5E70D", name: "Improved Spellcasting", level: 4, description: "+50% Energy Regeneration. \n-30% Ability Cooldown", }); this.talents.ritual = new LegionTalent({ uuid: "454B28CE-6C39-4A96-B03E-ED4285CD3F27", name: "Ritual", level: 5, description: "Unlocks a ritual site that summons a temporal projection of the Emperor", wikiDescription: "Unlocks the [[faction/legion/topbar/ritual]] topbar ability.", unlocks: [this.topbars.ritual.id], }); this.talents.spawnMonolith = new LegionTalent({ uuid: "366619CB-88AC-430E-87AE-0CA2B16D585D", name: "Spawn Monolith", level: 5, description: "Spawn powerful defensive structure on battlefield", wikiDescription: "Unlocks the [[faction/legion/topbar/spawn-monolith]] topbar ability.", unlocks: [this.topbars.spawnMonolith.id], }); this.talents.unendingArmy = new LegionTalent({ uuid: "5e74d881-9b41-43d0-8c32-4db771ace0b7", name: "Unending Army", level: 6, description: "Producing any unit spawns an additional Thrall.", }); this.talents.ritual.apply = () => { this.topbars.ritual!.unlocked = true; }; this.talents.spawnMonolith.apply = () => { this.topbars.spawnMonolith!.unlocked = true; }; this.wireUpUnlocks(); this.buildings = [ "faction/legion/building/garrison-tower", "faction/legion/building/idal-conduit", "faction/legion/building/legion-barracks", "faction/legion/building/legion-extractor", "faction/legion/building/beastiary", "faction/legion/building/citadel", "faction/legion/building/altar", "faction/legion/building/terror-tower", "faction/legion/building/armory", "faction/legion/building/guardian-obelisk", "faction/legion/building/healing-obelisk", "faction/legion/building/summoning-obelisk", "faction/legion/building/monolith", "faction/legion/building/ritual-site", "faction/legion/building/sacrificial-site", ]; this.units = [ "faction/legion/unit/legion-build-drone", "faction/legion/unit/legion-labourer", "faction/legion/unit/legion-scout-drone", "faction/legion/unit/thrall", "faction/legion/unit/steelsworn", "faction/legion/unit/dark-disciple", "faction/legion/unit/storm-bringer", "faction/legion/unit/exalted", "faction/legion/unit/mammoth", "faction/legion/unit/dreadnought", "faction/legion/unit/terror-tank", "faction/legion/unit/emperor-projection", ]; this.heroes = [ "faction/legion/hero/galavax", "faction/legion/hero/inquisitress", "faction/legion/hero/kraegar", "faction/legion/hero/krag-vorn", ]; } } export default LegionFactionEntity; // Named exports removed - use direct imports from individual entity files instead