UNPKG

@zerospacegg/iolin

Version:

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

80 lines 4.26 kB
"use strict"; /** * ZeroSpace Missions - Complete System * * This module exports all ZeroSpace missions including cooperative campaigns, * single-player scenarios, and special challenge missions. Missions provide * structured gameplay experiences with specific objectives and challenges. * * Mission Categories: * - Co-op Missions: Cooperative campaign missions for multiple players * - Single Player: Solo campaign and challenge missions * - Special: Event and seasonal missions */ Object.defineProperty(exports, "__esModule", { value: true }); exports.missionStats = exports.defensiveMissions = exports.objectiveMissions = exports.cooperativeMissions = exports.allMissions = exports.underFire = exports.survivalMissions = exports.frozenWatch = exports.escortMissions = exports.criticalDelivery = exports.assaultDefenseMissions = exports.allCoopMissions = void 0; exports.searchMissions = searchMissions; exports.getMissionByName = getMissionByName; exports.getMissionsByType = getMissionsByType; exports.getMissionsByDifficulty = getMissionsByDifficulty; // Import mission collections const coop_js_1 = require("./coop.cjs"); Object.defineProperty(exports, "allCoopMissions", { enumerable: true, get: function () { return coop_js_1.allCoopMissions; } }); Object.defineProperty(exports, "assaultDefenseMissions", { enumerable: true, get: function () { return coop_js_1.assaultDefenseMissions; } }); Object.defineProperty(exports, "criticalDelivery", { enumerable: true, get: function () { return coop_js_1.criticalDelivery; } }); Object.defineProperty(exports, "escortMissions", { enumerable: true, get: function () { return coop_js_1.escortMissions; } }); Object.defineProperty(exports, "frozenWatch", { enumerable: true, get: function () { return coop_js_1.frozenWatch; } }); Object.defineProperty(exports, "survivalMissions", { enumerable: true, get: function () { return coop_js_1.survivalMissions; } }); Object.defineProperty(exports, "underFire", { enumerable: true, get: function () { return coop_js_1.underFire; } }); // Export all missions combined // Export all missions as a collection (create instances for property access) exports.allMissions = [ ...coop_js_1.allCoopMissions.map(MissionClass => new MissionClass()), // Future: single player missions, special missions, etc. ]; // Export missions by type exports.cooperativeMissions = coop_js_1.allCoopMissions; // Export missions by gameplay style exports.objectiveMissions = [...coop_js_1.escortMissions, ...coop_js_1.assaultDefenseMissions]; exports.defensiveMissions = [...coop_js_1.survivalMissions]; // Export default collection (all missions) exports.default = exports.allMissions; // Export mission statistics exports.missionStats = { totalMissions: exports.allMissions.length, coopMissions: coop_js_1.allCoopMissions.length, missionTypes: { escort: coop_js_1.escortMissions.length, survival: coop_js_1.survivalMissions.length, assaultDefense: coop_js_1.assaultDefenseMissions.length, }, }; // Export search functionality function searchMissions(query) { const results = exports.allMissions.filter(mission => mission.name.toLowerCase().includes(query.toLowerCase()) || mission.missionType.toLowerCase().includes(query.toLowerCase()) || (mission.description?.toLowerCase().includes(query.toLowerCase()) ?? false)); return { query, totalResults: results.length, results: results.map(mission => ({ name: mission.name, type: mission.missionType, description: (mission.description?.slice(0, 100) ?? "No description") + "...", })), missions: results, }; } // Export mission lookup by name function getMissionByName(name) { return exports.allMissions.find(mission => mission.name.toLowerCase().includes(name.toLowerCase())); } // Export missions by type function getMissionsByType(type) { return exports.allMissions.filter(mission => mission.missionType.toLowerCase() === type.toLowerCase()); } // Export missions by difficulty function getMissionsByDifficulty(difficulty) { return exports.allMissions.filter(mission => mission.name.toLowerCase().includes(difficulty.toLowerCase())); } //# sourceMappingURL=index.js.map