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

Function createLevelNumberMap

app/core/utils.js:939–969  ·  view source on GitHub ↗
(levels, courseID)

Source from the content-addressed store, hash-verified

937}
938
939const createLevelNumberMap = function (levels, courseID) {
940 const levelNumberMap = {}
941 let practiceLevelTotalCount = 0
942 let practiceLevelCurrentCount = 0
943 const isCoco = !showOzaria() && !OZ_COURSE_IDS.includes(courseID || '')
944 for (let i = 0; i < levels.length; i++) {
945 const level = levels[i]
946 let levelNumber = (i - practiceLevelTotalCount) + 1
947 if (isCoco && level.practice) {
948 levelNumber = (i - practiceLevelTotalCount) + String.fromCharCode('a'.charCodeAt(0) + practiceLevelCurrentCount)
949 practiceLevelTotalCount++
950 practiceLevelCurrentCount++
951 } else if (level.assessment && isCoco) {
952 practiceLevelCurrentCount = 0
953 const helpText = level.assessment === 'cumulative' ? $.t('play_level.combo_challenge') : $.t('play_level.concept_challenge')
954 levelNumber = `${levelNumber}. ${helpText}`
955 } else {
956 practiceLevelCurrentCount = 0
957 }
958 if (level.key) {
959 levelNumberMap[level.key] = levelNumber
960 } else {
961 levelNumberMap[level.key] = ''
962 }
963
964 if (courseID) {
965 levelNumberMap[courseID + ':' + level.key] = levelNumberMap[level.key]
966 }
967 }
968 return levelNumberMap
969}
970
971const isOptional = level => level != null ? level.optional : undefined
972const isLocked = level => (level != null ? level.locked : undefined) && !isOptional(level)

Callers

nothing calls this directly

Calls 1

showOzariaFunction · 0.85

Tested by

no test coverage detected