diff --git a/app/models/LevelSession.coffee b/app/models/LevelSession.coffee index 36812462e..9e845fa78 100644 --- a/app/models/LevelSession.coffee +++ b/app/models/LevelSession.coffee @@ -93,12 +93,13 @@ module.exports = class LevelSession extends CocoModel state.topScores = newTopScores @set 'state', state - generateSpellsObject: -> + generateSpellsObject: (options={}) -> + {level} = options {createAetherOptions} = require 'lib/aether_utils' - aetherOptions = createAetherOptions functionName: 'plan', codeLanguage: @get('codeLanguage') + aetherOptions = createAetherOptions functionName: 'plan', codeLanguage: @get('codeLanguage'), skipProtectAPI: options.level?.isType('game-dev') spellThang = thang: {id: 'Hero Placeholder'}, aether: new Aether aetherOptions spells = "hero-placeholder/plan": thang: spellThang, name: 'plan' - source = @get('code')['hero-placeholder'].plan + source = @get('code')?['hero-placeholder']?.plan ? '' try spellThang.aether.transpile source catch e diff --git a/app/templates/courses/course-details.jade b/app/templates/courses/course-details.jade index b15e25cc1..fd3039df2 100644 --- a/app/templates/courses/course-details.jade +++ b/app/templates/courses/course-details.jade @@ -106,11 +106,11 @@ block content if previousLevelCompleted || view.teacherMode || !passedLastCompletedLevel || levelStatus - var i18n = level.isType('course-ladder') ? 'play.compete' : 'home.play'; button.btn.btn-success.btn-play-level(data-level-slug=level.get('slug'), data-i18n=i18n, data-level-id=level.get('original')) - if view.showGameDevButtons + if level.isType('game-dev') - var levelOriginal = level.get('original'); - var session = view.levelSessions.find(function(session) { return session.get('level').original === levelOriginal }); if session - a.btn.btn-warning(href="/play/game-dev-level/#{level.get('slug')}/#{session.id}") Play Game Dev + a.btn.btn-warning(href="/play/game-dev-level/#{level.get('slug')}/#{session.id}?course=#{view.courseID}") Game td if view.userLevelStateMap[me.id] div= view.userLevelStateMap[me.id][level.get('original')] diff --git a/app/views/courses/CourseDetailsView.coffee b/app/views/courses/CourseDetailsView.coffee index c910460e8..8fb01e791 100644 --- a/app/views/courses/CourseDetailsView.coffee +++ b/app/views/courses/CourseDetailsView.coffee @@ -33,7 +33,6 @@ module.exports = class CourseDetailsView extends RootView @classroom = new Classroom() @levels = new Levels() @courseInstances = new CourseInstances() - @showGameDevButtons = me.isAdmin() or window.amActually # TEMP while testing game dev level system @supermodel.trackRequest @ownedClassrooms.fetchMine({data: {project: '_id'}}) @supermodel.trackRequest(@courses.fetch().then(=> diff --git a/app/views/play/level/PlayGameDevLevelView.coffee b/app/views/play/level/PlayGameDevLevelView.coffee index 481741fa3..9de9fb440 100644 --- a/app/views/play/level/PlayGameDevLevelView.coffee +++ b/app/views/play/level/PlayGameDevLevelView.coffee @@ -9,7 +9,6 @@ Surface = require 'lib/surface/Surface' ThangType = require 'models/ThangType' Level = require 'models/Level' LevelSession = require 'models/LevelSession' -{createAetherOptions} = require 'lib/aether_utils' State = require 'models/State' TEAM = 'humans' @@ -70,7 +69,7 @@ module.exports = class PlayGameDevLevelView extends RootView @surface.setWorld(@world) @scriptManager.initializeCamera() @renderSelectors '#info-col' - @spells = @session.generateSpellsObject() + @spells = @session.generateSpellsObject level: @level @state.set('loading', false) .catch ({message}) =>