mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-03-14 07:00:01 -04:00
Fixed #1604: changing languages and reloading work better now.
This commit is contained in:
parent
ab448532f5
commit
956186b538
5 changed files with 9 additions and 17 deletions
|
@ -91,6 +91,7 @@ module.exports =
|
|||
|
||||
'tome:change-language': c.object {title: 'Tome Change Language', description: 'Published when the Tome should update its programming language', required: ['language']},
|
||||
language: {type: 'string'}
|
||||
reload: {type: 'boolean', description: 'Whether player code should reload to the default when the language changes.'}
|
||||
|
||||
'tome:spell-changed-language': c.object {title: 'Spell Changed Language', description: 'Published when an individual spell has updated its code language', required: ['spell']},
|
||||
spell: {type: 'object'}
|
||||
|
|
|
@ -70,7 +70,7 @@ module.exports = class ControlBarView extends CocoView
|
|||
@openModalView gameMenuModal
|
||||
@listenToOnce gameMenuModal, 'change-hero', ->
|
||||
@setupManager?.destroy()
|
||||
@setupManager = new LevelSetupManager({supermodel: @supermodel, levelID: @level.get('slug'), parent: @})
|
||||
@setupManager = new LevelSetupManager({supermodel: @supermodel, levelID: @level.get('slug'), parent: @, session: @session})
|
||||
@setupManager.open()
|
||||
|
||||
onClickHome: (e) ->
|
||||
|
|
|
@ -78,7 +78,6 @@ module.exports = class PlayLevelView extends RootView
|
|||
'real-time-multiplayer:joined-game': 'onRealTimeMultiplayerJoinedGame'
|
||||
'real-time-multiplayer:left-game': 'onRealTimeMultiplayerLeftGame'
|
||||
'real-time-multiplayer:manual-cast': 'onRealTimeMultiplayerCast'
|
||||
'level:hero-config-changed': 'onHeroConfigChanged'
|
||||
|
||||
events:
|
||||
'click #level-done-button': 'onDonePressed'
|
||||
|
@ -281,7 +280,7 @@ module.exports = class PlayLevelView extends RootView
|
|||
# Just the level and session have been loaded by the level loader
|
||||
if e.level.get('type', true) in ['hero', 'hero-ladder', 'hero-coop'] and not _.size e.session.get('heroConfig')?.inventory ? {}
|
||||
@setupManager?.destroy()
|
||||
@setupManager = new LevelSetupManager({supermodel: @supermodel, levelID: @levelID, parent: @})
|
||||
@setupManager = new LevelSetupManager({supermodel: @supermodel, levelID: @levelID, parent: @, session: @session})
|
||||
@setupManager.open()
|
||||
|
||||
@onRealTimeMultiplayerLevelLoaded e.session if e.level.get('type') in ['ladder', 'hero-ladder']
|
||||
|
@ -397,18 +396,6 @@ module.exports = class PlayLevelView extends RootView
|
|||
break
|
||||
Backbone.Mediator.publish 'tome:cast-spell', {}
|
||||
|
||||
onHeroConfigChanged: (e) ->
|
||||
# Doesn't work because the new inventory ThangTypes may not be loaded.
|
||||
#@setLevel @level, @supermodel
|
||||
#Backbone.Mediator.publish 'tome:cast-spell', {}
|
||||
# We'll just make a new PlayLevelView instead
|
||||
console.log 'Hero config changed; reload the level.'
|
||||
Backbone.Mediator.publish 'router:navigate', {
|
||||
route: window.location.pathname,
|
||||
viewClass: PlayLevelView,
|
||||
viewArgs: [{supermodel: @supermodel, autoUnveil: true}, @levelID]
|
||||
}
|
||||
|
||||
onWindowResize: (e) => @endHighlight()
|
||||
|
||||
onDisableControls: (e) ->
|
||||
|
@ -433,7 +420,7 @@ module.exports = class PlayLevelView extends RootView
|
|||
@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',
|
||||
application.tracker?.trackEvent 'Saw Victory',
|
||||
level: @level.get('name')
|
||||
label: @level.get('name')
|
||||
getDirectFirstGroup: me.getDirectFirstGroup()
|
||||
|
|
|
@ -231,7 +231,10 @@ module.exports = class TomeView extends CocoView
|
|||
|
||||
updateLanguageForAllSpells: (e) ->
|
||||
spell.updateLanguageAether e.language for spellKey, spell of @spells when spell.canWrite()
|
||||
@cast()
|
||||
if e.reload
|
||||
@reloadAllCode()
|
||||
else
|
||||
@cast()
|
||||
|
||||
onSelectPrimarySprite: (e) ->
|
||||
# TODO: this may not be correct
|
||||
|
|
|
@ -175,6 +175,7 @@ module.exports = class PlayHeroesModal extends ModalView
|
|||
if @session.get('codeLanguage') isnt @codeLanguage
|
||||
@session.set('codeLanguage', @codeLanguage)
|
||||
changed = true
|
||||
Backbone.Mediator.publish 'tome:change-language', language: @codeLanguage, reload: true
|
||||
|
||||
@session.patch() if changed
|
||||
|
||||
|
|
Loading…
Reference in a new issue