| 65 | } |
| 66 | |
| 67 | static fetchIntroContentDataForLevels (campaignLevelsModuleMap) { |
| 68 | let levels |
| 69 | let introLevels = [] |
| 70 | for (const campaignId in campaignLevelsModuleMap) { |
| 71 | const campaignModules = campaignLevelsModuleMap[campaignId] |
| 72 | for (const moduleNum in campaignModules.modules) { |
| 73 | levels = campaignModules.modules[moduleNum] |
| 74 | introLevels = introLevels.concat(levels.filter(l => l.get('introContent'))) |
| 75 | } |
| 76 | } |
| 77 | return api.levels.fetchIntroContent(introLevels) |
| 78 | .then(introLevelContentMap => { |
| 79 | return introLevels.forEach(l => { |
| 80 | return utils.addIntroLevelContent(l, introLevelContentMap) |
| 81 | }) |
| 82 | }) |
| 83 | } |
| 84 | |
| 85 | getNonLadderLevels () { |
| 86 | const levels = new Levels(_.values(this.get('levels'))) |