Preserve original scripts; don't overwrite with nothing if new world finishes before script initialization.

This commit is contained in:
Nick Winter 2014-05-16 17:38:33 -07:00
parent a36a7792ec
commit 418c2f1a2c
3 changed files with 10 additions and 12 deletions

View file

@ -12,7 +12,7 @@ module.exports = class GoalsScriptModule extends ScriptModule
endNotes: ->
return []
skipNotes: ->
return @startNotes()
@ -21,7 +21,6 @@ module.exports = class GoalsScriptModule extends ScriptModule
channel: 'level-add-goals'
event:
goals: @noteGroup.goals.add
worldName: @view.world.name
return note
removeNote: ->
@ -29,7 +28,4 @@ module.exports = class GoalsScriptModule extends ScriptModule
channel: 'level-remove-goals'
event:
goals: @noteGroup.goals.remove
worldName: @view.world.name
return note

View file

@ -14,15 +14,15 @@ module.exports = class ControlBarView extends View
events:
'click #multiplayer-button': ->
window.tracker?.trackEvent 'Clicked Multiplayer', level: @worldName, label: @worldName
window.tracker?.trackEvent 'Clicked Multiplayer', level: @level.get('name'), label: @level.get('name')
@showMultiplayerModal()
'click #docs-button': ->
window.tracker?.trackEvent 'Clicked Docs', level: @worldName, label: @worldName
window.tracker?.trackEvent 'Clicked Docs', level: @level.get('name'), label: @level.get('name')
@showGuideModal()
'click #restart-button': ->
window.tracker?.trackEvent 'Clicked Restart', level: @worldName, label: @worldName
window.tracker?.trackEvent 'Clicked Restart', level: @level.get('name'), label: @level.get('name')
@showRestartModal()
'click #next-game-button': ->

View file

@ -198,7 +198,7 @@ module.exports = class PlayLevelView extends View
for spellTeam, spells of @session.get('teamSpells') ? @otherSession?.get('teamSpells') ? {}
continue if spellTeam is myTeam or not myTeam
opponentSpells = opponentSpells.concat spells
if (not @session.get('teamSpells')) and @otherSession?.get('teamSpells')
if (not @session.get('teamSpells')) and @otherSession?.get('teamSpells')
@session.set('teamSpells',@otherSession.get('teamSpells'))
opponentCode = @otherSession?.get('transpiledCode') or {}
myCode = @session.get('code') or {}
@ -295,7 +295,7 @@ module.exports = class PlayLevelView extends View
@victorySeen = true
victoryTime = (new Date()) - @loadEndTime
if victoryTime > 10 * 1000 # Don't track it if we're reloading an already-beaten level
application.tracker?.trackEvent 'Saw Victory', level: @world.name, label: @world.name
application.tracker?.trackEvent 'Saw Victory', level: @level.get('name'), label: @level.get('name')
application.tracker?.trackTiming victoryTime, 'Level Victory Time', @levelID, @levelID, 100
showVictory: ->
@ -309,12 +309,12 @@ module.exports = class PlayLevelView extends View
@tome.reloadAllCode()
Backbone.Mediator.publish 'level:restarted'
$('#level-done-button', @$el).hide()
application.tracker?.trackEvent 'Confirmed Restart', level: @world.name, label: @world.name
application.tracker?.trackEvent 'Confirmed Restart', level: @level.get('name'), label: @level.get('name')
onInfiniteLoop: (e) ->
return unless e.firstWorld
@openModalView new InfiniteLoopModal()
application.tracker?.trackEvent 'Saw Initial Infinite Loop', level: @world.name, label: @world.name
application.tracker?.trackEvent 'Saw Initial Infinite Loop', level: @level.get('name'), label: @level.get('name')
onPlayNextLevel: ->
nextLevelID = @getNextLevelID()
@ -485,7 +485,9 @@ module.exports = class PlayLevelView extends View
onNewWorld: (e) ->
return if @headless
scripts = @world.scripts # Since these worlds don't have scripts, preserve them.
@world = e.world
@world.scripts = scripts
thangTypes = @supermodel.getModels(ThangType)
for [spriteName, message] in @world.thangDialogueSounds()
continue unless thangType = _.find thangTypes, (m) -> m.get('name') is spriteName