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

Method onClickStartLevel

app/views/play/CampaignView.js:1923–1947  ·  view source on GitHub ↗
(e)

Source from the content-addressed store, hash-verified

1921 }
1922
1923 onClickStartLevel (e) {
1924 const levelElement = $(e.target).closest('.btn')
1925 const levelSlug = levelElement.data('level-slug')
1926 const levelOriginal = levelElement.data('level-original')
1927 const levelPath = levelElement.data('level-path')
1928 const levelName = levelElement.data('level-name')
1929 const level = _.find(_.values(this.getLevels()), { slug: levelSlug })
1930
1931 if (level.requiresSignUp && me.isAnonymous()) {
1932 return this.promptForSignup({ accountRequiredMessage: $.i18n.t('account.unlock_next_level_with_sign_up') })
1933 }
1934
1935 const canPlayAnyway = [
1936 !this.requiresSubscription,
1937 this.levelStatusMap[level.slug],
1938 this.campaign.get('type') === 'hoc',
1939 ].some(Boolean)
1940
1941 if (level.requiresSubscription && !canPlayAnyway) {
1942 return this.promptForSubscription(levelSlug, 'map level clicked')
1943 } else {
1944 this.startLevel({ levelSlug, levelOriginal, levelPath, levelName })
1945 window.tracker?.trackEvent('Clicked Start Level', { category: 'World Map', levelID: levelSlug })
1946 }
1947 }
1948
1949 onClickCourseVersion (e) {
1950 const courseVersionElement = $(e.target).closest('.course-version')

Callers

nothing calls this directly

Calls 8

getLevelsMethod · 0.95
promptForSignupMethod · 0.95
promptForSubscriptionMethod · 0.95
startLevelMethod · 0.95
dataMethod · 0.80
isAnonymousMethod · 0.80
getMethod · 0.45
trackEventMethod · 0.45

Tested by

no test coverage detected