UNPKG

@zerospacegg/iolin

Version:

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

224 lines 10.9 kB
"use strict"; /** * 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 */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const faction_js_1 = require("../../engine/faction.cjs"); // Import all Protectorate entities const advanced_factory_js_1 = __importDefault(require("./protectorate/building/advanced-factory.cjs")); const airstrip_js_1 = __importDefault(require("./protectorate/building/airstrip.cjs")); const factory_js_1 = __importDefault(require("./protectorate/building/factory.cjs")); const light_turret_js_1 = __importDefault(require("./protectorate/building/light-turret.cjs")); const mechanical_research_lab_js_1 = __importDefault(require("./protectorate/building/mechanical-research-lab.cjs")); const operating_tower_js_1 = __importDefault(require("./protectorate/building/operating-tower.cjs")); const prot_barracks_js_1 = __importDefault(require("./protectorate/building/prot-barracks.cjs")); const prot_extractor_js_1 = __importDefault(require("./protectorate/building/prot-extractor.cjs")); const research_lab_js_1 = __importDefault(require("./protectorate/building/research-lab.cjs")); const specialized_research_lab_js_1 = __importDefault(require("./protectorate/building/specialized-research-lab.cjs")); const supply_platform_js_1 = __importDefault(require("./protectorate/building/supply-platform.cjs")); const bastion_js_1 = __importDefault(require("./protectorate/unit/bastion.cjs")); const commando_js_1 = __importDefault(require("./protectorate/unit/commando.cjs")); const cyclops_js_1 = __importDefault(require("./protectorate/unit/cyclops.cjs")); const griffin_js_1 = __importDefault(require("./protectorate/unit/griffin.cjs")); const hellfire_js_1 = __importDefault(require("./protectorate/unit/hellfire.cjs")); const ironwing_js_1 = __importDefault(require("./protectorate/unit/ironwing.cjs")); const juggernaut_js_1 = __importDefault(require("./protectorate/unit/juggernaut.cjs")); const predator_js_1 = __importDefault(require("./protectorate/unit/predator.cjs")); const prot_build_drone_js_1 = __importDefault(require("./protectorate/unit/prot-build-drone.cjs")); const prot_harvester_js_1 = __importDefault(require("./protectorate/unit/prot-harvester.cjs")); const prot_scout_drone_js_1 = __importDefault(require("./protectorate/unit/prot-scout-drone.cjs")); const sol_invictus_js_1 = __importDefault(require("./protectorate/unit/sol-invictus.cjs")); const strider_js_1 = __importDefault(require("./protectorate/unit/strider.cjs")); const titan_js_1 = __importDefault(require("./protectorate/unit/titan.cjs")); const mera_commander_js_1 = require("../coop/commander/mera-commander.cjs"); const mera_js_1 = __importDefault(require("./protectorate/hero/mera.cjs")); const prefect_aster_js_1 = __importDefault(require("./protectorate/hero/prefect-aster.cjs")); const tech_hero_js_1 = __importDefault(require("./protectorate/hero/tech-hero.cjs")); const protectorate_classes_js_1 = require("./protectorate-classes.cjs"); /** * Protectorate Faction Entity - Modern Class Architecture */ class ProtectorateFactionEntity extends faction_js_1.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 = [ operating_tower_js_1.default.id, factory_js_1.default.id, advanced_factory_js_1.default.id, prot_barracks_js_1.default.id, research_lab_js_1.default.id, mechanical_research_lab_js_1.default.id, supply_platform_js_1.default.id, airstrip_js_1.default.id, light_turret_js_1.default.id, prot_extractor_js_1.default.id, specialized_research_lab_js_1.default.id, ]; // Add all units this.units = [ prot_build_drone_js_1.default.id, prot_harvester_js_1.default.id, prot_scout_drone_js_1.default.id, commando_js_1.default.id, bastion_js_1.default.id, predator_js_1.default.id, ironwing_js_1.default.id, hellfire_js_1.default.id, titan_js_1.default.id, cyclops_js_1.default.id, juggernaut_js_1.default.id, strider_js_1.default.id, griffin_js_1.default.id, sol_invictus_js_1.default.id, ]; // Add heroes this.heroes = [prefect_aster_js_1.default.id, tech_hero_js_1.default.id, mera_js_1.default.id]; // Add commanders this.commanders = [mera_commander_js_1.MeraCoop.id]; // Set Protectorate-specific topbars this.topbars.beamUp = new protectorate_classes_js_1.ProtectorateTopbar({ name: "Beam Up", topbarType: "recall", slot: 1, description: "Teleports selected units back to base", hotkey: "Q", }); this.topbars.protectiveShield = new protectorate_classes_js_1.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 protectorate_classes_js_1.ProtectorateTopbar({ name: "Airstrike", topbarType: "ultimate", slot: 3, description: "Devastating airstrike attack", hotkey: "E", energyCost: 75, cooldown: 120, }); this.topbars.weaponX = new protectorate_classes_js_1.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 protectorate_classes_js_1.ProtectorateTalent({ name: "Improved Beam Up", level: 1, description: "Beam Up has reduced cooldown and energy cost", }); this.talents.improvedVeterancy = new protectorate_classes_js_1.ProtectorateTalent({ name: "Improved Veterancy", level: 1, description: "Units gain experience faster and veterancy bonuses are increased", }); this.talents.productionEfficiency = new protectorate_classes_js_1.ProtectorateTalent({ name: "Production Efficiency", level: 2, description: "All production buildings build units 25% faster", }); this.talents.reinforcements = new protectorate_classes_js_1.ProtectorateTalent({ name: "Reinforcements", level: 3, description: "Unlocks reinforcement deployments near Operating Tower with 45 second cooldown", }); this.talents.protectiveShieldPlus = new protectorate_classes_js_1.ProtectorateTalent({ name: "Protective Shield+", level: 3, description: "Protective Shield grants +2 veterancy instead of +1", }); this.talents.advancedWeaponry = new protectorate_classes_js_1.ProtectorateTalent({ name: "Advanced Weaponry", level: 4, description: "All units gain +15% damage and improved weapon systems", }); this.talents.airstrike = new protectorate_classes_js_1.ProtectorateTalent({ name: "Airstrike", level: 5, description: "Unlocks the Airstrike topbar ability", unlockedBy: [this.topbars.airstrike.id], }); this.talents.solInvictus = new protectorate_classes_js_1.ProtectorateTalent({ name: "Sol Invictus", level: 5, description: "Unlocks the legendary Sol Invictus unit", }); this.talents.veterancySuperiority = new protectorate_classes_js_1.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 [ operating_tower_js_1.default, prot_extractor_js_1.default, supply_platform_js_1.default, prot_barracks_js_1.default, factory_js_1.default, research_lab_js_1.default, mechanical_research_lab_js_1.default, advanced_factory_js_1.default, specialized_research_lab_js_1.default, light_turret_js_1.default, airstrip_js_1.default, ]; } get unitClasses() { return [ prot_build_drone_js_1.default, prot_harvester_js_1.default, prot_scout_drone_js_1.default, commando_js_1.default, bastion_js_1.default, predator_js_1.default, ironwing_js_1.default, hellfire_js_1.default, titan_js_1.default, cyclops_js_1.default, juggernaut_js_1.default, strider_js_1.default, griffin_js_1.default, sol_invictus_js_1.default, ]; } } ProtectorateFactionEntity.src = "src/zerospace/faction/protectorate.ts"; // Export the faction class as default exports.default = ProtectorateFactionEntity; //# sourceMappingURL=protectorate.js.map