UNPKG

@zerospacegg/iolin

Version:

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

105 lines 6.35 kB
"use strict"; /** * ZeroSpace Game Mechanics - Complete System * * This module exports all game mechanics for ZeroSpace, including both basic * fundamental mechanics and advanced transformation systems. Mechanics represent * core gameplay rules and systems that define how the game operates. * * Categories: * - Basic Mechanics: Fundamental gameplay concepts and rules * - Transformation Mechanics: Complex multi-phase systems that modify units */ Object.defineProperty(exports, "__esModule", { value: true }); exports.mechanicsStats = exports.economicAndFactionMechanics = exports.utilityAndSystemMechanics = exports.combatAndTransformationMechanics = exports.transformationMechanics = exports.basicMechanics = exports.allMechanics = exports.systemMechanics = exports.supportMechanics = exports.necromancyTransformations = exports.factionMechanics = exports.enhancementTransformations = exports.economicMechanics = exports.controlTransformations = exports.combatMechanics = exports.allTransformationMechanics = exports.allBasicMechanics = void 0; exports.searchMechanics = searchMechanics; exports.getMechanicByName = getMechanicByName; exports.getMechanicsByKeyword = getMechanicsByKeyword; // Import all mechanic collections const basic_js_1 = require("./basic.cjs"); Object.defineProperty(exports, "allBasicMechanics", { enumerable: true, get: function () { return basic_js_1.allBasicMechanics; } }); Object.defineProperty(exports, "combatMechanics", { enumerable: true, get: function () { return basic_js_1.combatMechanics; } }); Object.defineProperty(exports, "economicMechanics", { enumerable: true, get: function () { return basic_js_1.economicMechanics; } }); Object.defineProperty(exports, "factionMechanics", { enumerable: true, get: function () { return basic_js_1.factionMechanics; } }); Object.defineProperty(exports, "supportMechanics", { enumerable: true, get: function () { return basic_js_1.supportMechanics; } }); Object.defineProperty(exports, "systemMechanics", { enumerable: true, get: function () { return basic_js_1.systemMechanics; } }); const transformations_js_1 = require("./transformations.cjs"); Object.defineProperty(exports, "allTransformationMechanics", { enumerable: true, get: function () { return transformations_js_1.allTransformationMechanics; } }); Object.defineProperty(exports, "controlTransformations", { enumerable: true, get: function () { return transformations_js_1.controlTransformations; } }); Object.defineProperty(exports, "enhancementTransformations", { enumerable: true, get: function () { return transformations_js_1.enhancementTransformations; } }); Object.defineProperty(exports, "necromancyTransformations", { enumerable: true, get: function () { return transformations_js_1.necromancyTransformations; } }); // Export all mechanics combined exports.allMechanics = [...basic_js_1.allBasicMechanics, ...transformations_js_1.allTransformationMechanics]; // Export mechanics by type exports.basicMechanics = basic_js_1.allBasicMechanics; exports.transformationMechanics = transformations_js_1.allTransformationMechanics; // Export mechanics by gameplay area exports.combatAndTransformationMechanics = [ ...basic_js_1.combatMechanics, ...transformations_js_1.enhancementTransformations, ...transformations_js_1.necromancyTransformations, ]; exports.utilityAndSystemMechanics = [...basic_js_1.supportMechanics, ...basic_js_1.systemMechanics, ...transformations_js_1.controlTransformations]; exports.economicAndFactionMechanics = [...basic_js_1.economicMechanics, ...basic_js_1.factionMechanics]; // Export mechanics statistics exports.mechanicsStats = { totalMechanics: exports.allMechanics.length, basicMechanics: basic_js_1.allBasicMechanics.length, transformationMechanics: transformations_js_1.allTransformationMechanics.length, categories: { combat: basic_js_1.combatMechanics.length, economic: basic_js_1.economicMechanics.length, support: basic_js_1.supportMechanics.length, faction: basic_js_1.factionMechanics.length, system: basic_js_1.systemMechanics.length, enhancement: transformations_js_1.enhancementTransformations.length, necromancy: transformations_js_1.necromancyTransformations.length, control: transformations_js_1.controlTransformations.length, }, }; // Export search functionality function searchMechanics(query) { const results = exports.allMechanics.filter(mechanic => mechanic.matches(query)); return { query, totalResults: results.length, results: results.map(mechanic => ({ name: mechanic.name, summary: mechanic.summary, keywords: mechanic.keywords, })), mechanics: results, }; } // Export mechanic lookup by name function getMechanicByName(name) { return exports.allMechanics.find(mechanic => mechanic.name.toLowerCase() === name.toLowerCase()); } // Export mechanics by keyword function getMechanicsByKeyword(keyword) { return exports.allMechanics.filter(mechanic => mechanic.keywords.some(k => k.toLowerCase().includes(keyword.toLowerCase()))); } // Default export containing all named exports for consistent API exports.default = { allBasicMechanics: basic_js_1.allBasicMechanics, allTransformationMechanics: transformations_js_1.allTransformationMechanics, combatMechanics: basic_js_1.combatMechanics, controlTransformations: transformations_js_1.controlTransformations, economicMechanics: basic_js_1.economicMechanics, enhancementTransformations: transformations_js_1.enhancementTransformations, factionMechanics: basic_js_1.factionMechanics, necromancyTransformations: transformations_js_1.necromancyTransformations, supportMechanics: basic_js_1.supportMechanics, systemMechanics: basic_js_1.systemMechanics, allMechanics: exports.allMechanics, basicMechanics: exports.basicMechanics, transformationMechanics: exports.transformationMechanics, combatAndTransformationMechanics: exports.combatAndTransformationMechanics, utilityAndSystemMechanics: exports.utilityAndSystemMechanics, economicAndFactionMechanics: exports.economicAndFactionMechanics, mechanicsStats: exports.mechanicsStats, searchMechanics, getMechanicByName, getMechanicsByKeyword, }; //# sourceMappingURL=index.js.map