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

Function getNextLevelForLevel

ozaria/site/common/ozariaUtils.js:148–163  ·  view source on GitHub ↗
(level, capstoneStage = 1)

Source from the content-addressed store, hash-verified

146 * @returns {Object} - Next level object containing 'Original' id and next level's stage.
147 */
148export const getNextLevelForLevel = (level, capstoneStage = 1) => {
149 const nextLevels = level.nextLevels || {}
150 let nextLevel = []
151 if (capstoneStage && level.isPlayedInStages) {
152 nextLevel = Object.values(nextLevels).filter((n) => (n.conditions || {}).afterCapstoneStage === capstoneStage)
153 } else {
154 // Ensure that the next level is sorted by afterCapstoneStage
155 nextLevel = Object.values(nextLevels).sort((a, b) => {
156 const afterCapstoneStageA = a.conditions?.afterCapstoneStage ?? 0
157 const afterCapstoneStageB = b.conditions?.afterCapstoneStage ?? 0
158
159 return afterCapstoneStageA - afterCapstoneStageB
160 })
161 }
162 return nextLevel[0] // assuming there can only be one next level for a given level and/or capstone stage
163}
164
165/**
166 * Constructs the next level link

Callers 3

showVictoryMethod · 0.90
getNextLevelOzariaMethod · 0.85
findNextLevelsBySessionFunction · 0.85

Calls 1

filterMethod · 0.80

Tested by

no test coverage detected