UNPKG

@zerospacegg/iolin

Version:

Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)

219 lines 8.82 kB
/** * Protectorate Main Faction * Technological human faction focused on engineering excellence and adaptive warfare * * Faction structure: * - Advanced technological superiority through superior planning * - Modular design and systematic coordination * - Scientific methodology and continuous innovation * - Adaptive engineering and tactical flexibility * - Combined arms warfare and force multiplication */ import { MainFaction } from "../../engine/faction.js"; // Import all Protectorate entities import AdvancedFactory from "./protectorate/building/advanced-factory.js"; import Airstrip from "./protectorate/building/airstrip.js"; import Factory from "./protectorate/building/factory.js"; import LightTurret from "./protectorate/building/light-turret.js"; import MechanicalResearchLab from "./protectorate/building/mechanical-research-lab.js"; import OperatingTower from "./protectorate/building/operating-tower.js"; import ProtBarracks from "./protectorate/building/prot-barracks.js"; import ProtExtractor from "./protectorate/building/prot-extractor.js"; import ResearchLab from "./protectorate/building/research-lab.js"; import SpecializedResearchLab from "./protectorate/building/specialized-research-lab.js"; import SupplyPlatform from "./protectorate/building/supply-platform.js"; import Bastion from "./protectorate/unit/bastion.js"; import Commando from "./protectorate/unit/commando.js"; import Cyclops from "./protectorate/unit/cyclops.js"; import Griffin from "./protectorate/unit/griffin.js"; import Hellfire from "./protectorate/unit/hellfire.js"; import Ironwing from "./protectorate/unit/ironwing.js"; import Juggernaut from "./protectorate/unit/juggernaut.js"; import Predator from "./protectorate/unit/predator.js"; import ProtBuildDrone from "./protectorate/unit/prot-build-drone.js"; import ProtHarvester from "./protectorate/unit/prot-harvester.js"; import ProtScoutDrone from "./protectorate/unit/prot-scout-drone.js"; import SolInvictus from "./protectorate/unit/sol-invictus.js"; import Strider from "./protectorate/unit/strider.js"; import Titan from "./protectorate/unit/titan.js"; import { MeraCoop } from "../coop/commander/mera-commander.js"; import Mera from "./protectorate/hero/mera.js"; import PrefectAster from "./protectorate/hero/prefect-aster.js"; import TechHero from "./protectorate/hero/tech-hero.js"; import { ProtectorateTalent, ProtectorateTopbar } from "./protectorate-classes.js"; /** * Protectorate Faction Entity - Modern Class Architecture */ class ProtectorateFactionEntity extends MainFaction { constructor() { super(); this.name = "Protectorate"; this.uuid = "91c4e008-9cef-40b5-aeea-cf74df4838f3"; // Set faction properties this.faction = "protectorate"; this.factionName = "Protectorate"; // Faction lore // Faction settings this.mercHeroesAllowed = true; this.description = `Technological human faction focused on engineering excellence, adaptive warfare, and systematic coordination. The Protectorate excels at combined arms tactics with modular systems, multi-role units, and progressive research trees. Their superior planning, technological innovation, and force multiplication through advanced engineering ensure human survival and dominance through methodical application of technological superiority.`; // Add all buildings this.buildings = [ OperatingTower.id, Factory.id, AdvancedFactory.id, ProtBarracks.id, ResearchLab.id, MechanicalResearchLab.id, SupplyPlatform.id, Airstrip.id, LightTurret.id, ProtExtractor.id, SpecializedResearchLab.id, ]; // Add all units this.units = [ ProtBuildDrone.id, ProtHarvester.id, ProtScoutDrone.id, Commando.id, Bastion.id, Predator.id, Ironwing.id, Hellfire.id, Titan.id, Cyclops.id, Juggernaut.id, Strider.id, Griffin.id, SolInvictus.id, ]; // Add heroes this.heroes = [PrefectAster.id, TechHero.id, Mera.id]; // Add commanders this.commanders = [MeraCoop.id]; // Set Protectorate-specific topbars this.topbars.beamUp = new ProtectorateTopbar({ name: "Beam Up", topbarType: "recall", slot: 1, description: "Teleports selected units back to base", hotkey: "Q", }); this.topbars.protectiveShield = new ProtectorateTopbar({ name: "Protective Shield", topbarType: "special", slot: 2, description: "Grants shield equal to 30% max HP + 50. Increases current and maximum veterancy by 1", hotkey: "W", energyCost: 25, cooldown: 45, }); this.topbars.airstrike = new ProtectorateTopbar({ name: "Airstrike", topbarType: "ultimate", slot: 3, description: "Devastating airstrike attack", hotkey: "E", energyCost: 75, cooldown: 120, }); this.topbars.weaponX = new ProtectorateTopbar({ name: "Weapon X", topbarType: "ultimate", slot: 4, description: "Experimental weapon deployment", hotkey: "R", energyCost: 100, cooldown: 180, }); // Set Protectorate-specific talents this.talents.improvedBeamUp = new ProtectorateTalent({ name: "Improved Beam Up", level: 1, description: "Beam Up has reduced cooldown and energy cost", }); this.talents.improvedVeterancy = new ProtectorateTalent({ name: "Improved Veterancy", level: 1, description: "Units gain experience faster and veterancy bonuses are increased", }); this.talents.productionEfficiency = new ProtectorateTalent({ name: "Production Efficiency", level: 2, description: "All production buildings build units 25% faster", }); this.talents.reinforcements = new ProtectorateTalent({ name: "Reinforcements", level: 3, description: "Unlocks reinforcement deployments near Operating Tower with 45 second cooldown", }); this.talents.protectiveShieldPlus = new ProtectorateTalent({ name: "Protective Shield+", level: 3, description: "Protective Shield grants +2 veterancy instead of +1", }); this.talents.advancedWeaponry = new ProtectorateTalent({ name: "Advanced Weaponry", level: 4, description: "All units gain +15% damage and improved weapon systems", }); this.talents.airstrike = new ProtectorateTalent({ name: "Airstrike", level: 5, description: "Unlocks the Airstrike topbar ability", unlockedBy: [this.topbars.airstrike.id], }); this.talents.solInvictus = new ProtectorateTalent({ name: "Sol Invictus", level: 5, description: "Unlocks the legendary Sol Invictus unit", }); this.talents.veterancySuperiority = new ProtectorateTalent({ name: "Veterancy Superiority", level: 6, description: "All units gain 1 veterancy immediately. New units start with 1 veterancy", }); // Set up talent-topbar unlock relationships this.talents.airstrike.apply = () => { this.topbars.airstrike.unlocked = true; }; } // Provide entity classes for techTree generation get buildingClasses() { return [ OperatingTower, ProtExtractor, SupplyPlatform, ProtBarracks, Factory, ResearchLab, MechanicalResearchLab, AdvancedFactory, SpecializedResearchLab, LightTurret, Airstrip, ]; } get unitClasses() { return [ ProtBuildDrone, ProtHarvester, ProtScoutDrone, Commando, Bastion, Predator, Ironwing, Hellfire, Titan, Cyclops, Juggernaut, Strider, Griffin, SolInvictus, ]; } } ProtectorateFactionEntity.src = "src/zerospace/faction/protectorate.ts"; // Export the faction class as default export default ProtectorateFactionEntity; //# sourceMappingURL=protectorate.js.map