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