UNPKG

@zerospacegg/iolin

Version:

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

68 lines 2.96 kB
/** * 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 */ // Import mission collections import { allCoopMissions, assaultDefenseMissions, criticalDelivery, escortMissions, frozenWatch, survivalMissions, underFire, } from "./coop.js"; // Export individual mission collections export { allCoopMissions, assaultDefenseMissions, criticalDelivery, escortMissions, frozenWatch, survivalMissions, underFire, }; // Export all missions combined // Export all missions as a collection (create instances for property access) export const allMissions = [ ...allCoopMissions.map(MissionClass => new MissionClass()), // Future: single player missions, special missions, etc. ]; // Export missions by type export const cooperativeMissions = allCoopMissions; // Export missions by gameplay style export const objectiveMissions = [...escortMissions, ...assaultDefenseMissions]; export const defensiveMissions = [...survivalMissions]; // Export default collection (all missions) export default allMissions; // Export mission statistics export const missionStats = { totalMissions: allMissions.length, coopMissions: allCoopMissions.length, missionTypes: { escort: escortMissions.length, survival: survivalMissions.length, assaultDefense: assaultDefenseMissions.length, }, }; // Export search functionality export function searchMissions(query) { const results = 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 export function getMissionByName(name) { return allMissions.find(mission => mission.name.toLowerCase().includes(name.toLowerCase())); } // Export missions by type export function getMissionsByType(type) { return allMissions.filter(mission => mission.missionType.toLowerCase() === type.toLowerCase()); } // Export missions by difficulty export function getMissionsByDifficulty(difficulty) { return allMissions.filter(mission => mission.name.toLowerCase().includes(difficulty.toLowerCase())); } //# sourceMappingURL=index.js.map