mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-04-27 06:23:41 -04:00
Preserve original scripts; don't overwrite with nothing if new world finishes before script initialization.
This commit is contained in:
parent
a36a7792ec
commit
418c2f1a2c
3 changed files with 10 additions and 12 deletions
app
|
@ -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
|
||||
|
||||
|
|
@ -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': ->
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue