MCPcopy Create free account
hub / github.com/codecombat/codecombat / tasksForLevel

Function tasksForLevel

app/views/editor/level/tasks/TasksTabView.js:393–427  ·  view source on GitHub ↗
(level)

Source from the content-addressed store, hash-verified

391}
392
393var tasksForLevel = function (level) {
394 let left, oldTask, task
395 const tasks = []
396 const inappropriateTasks = {}
397 for (task of Array.from(defaultTasks)) {
398 var needle
399 if (utils.isCodeCombat && (task.name === 'Create two sample projects') && (level.get('shareable') !== 'project')) {
400 inappropriateTasks[task.name] = task
401 } else if (task.types && (((needle = level.get('realType') || level.get('type', true)), !Array.from(task.types).includes(needle)))) {
402 inappropriateTasks[task.name] = task
403 } else {
404 tasks.push(task)
405 }
406 }
407 const oldTasks = ((left = level.get('tasks')) != null ? left : []).slice()
408 const newTasks = []
409 for (task of Array.from(tasks)) {
410 var complete
411 const oldName = renamedTaskNames[task.name] || task.name
412 if (oldTask = (_.find(oldTasks, { name: oldName }) || _.find(oldTasks, { name: task.name }))) {
413 complete = oldTask.complete || Boolean(typeof task.complete === 'function' ? task.complete(level) : undefined)
414 _.remove(oldTasks, { name: oldTask.name })
415 } else {
416 complete = Boolean(typeof task.complete === 'function' ? task.complete(level) : undefined)
417 if (!complete && task.optional) { continue }
418 }
419 newTasks.push({ name: task.name, complete })
420 }
421 for (oldTask of Array.from(oldTasks)) {
422 if (!Array.from(deprecatedTaskNames).includes(oldTask.name) && !inappropriateTasks[oldTask.name]) {
423 newTasks.push(oldTask)
424 }
425 }
426 return newTasks
427}
428
429function __guard__ (value, transform) {
430 return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined

Callers 1

onLevelLoadedMethod · 0.85

Calls 2

completeMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected