@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
224 lines • 10.9 kB
JavaScript
"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