Preserving opponent flags.

This commit is contained in:
Nick Winter 2014-10-18 18:57:33 -07:00
parent 66c728210b
commit 9f216e3361
3 changed files with 12 additions and 2 deletions

View file

@ -91,6 +91,9 @@ module.exports = class LevelLoader extends CocoClass
loadDependenciesForSession: (session) ->
if session is @session
Backbone.Mediator.publish 'level:session-loaded', level: @level, session: @session
@consolidateFlagHistory() if @opponentSession?.loaded
else
@consolidateFlagHistory() if @session.loaded
return unless @level.get('type', true) in ['hero', 'hero-ladder', 'hero-coop']
heroConfig = session.get('heroConfig')
heroConfig ?= me.get('heroConfig') if session is @session
@ -113,6 +116,13 @@ module.exports = class LevelLoader extends CocoClass
@loadDefaultComponentsForThangType itemThangType
@loadThangsRequiredByThangType itemThangType
consolidateFlagHistory: ->
state = @session.get('state') ? {}
myFlagHistory = _.filter state.flagHistory ? [], team: @session.get('team')
opponentFlagHistory = _.filter @opponentSession.get('state')?.flagHistory ? [], team: @opponentSession.get('team')
state.flagHistory = myFlagHistory.concat opponentFlagHistory
@session.set 'state', state
# Grabbing the rest of the required data for the level
populateLevel: ->

View file

@ -29,7 +29,7 @@ module.exports = class VictoryModal extends ModalView
constructor: (options) ->
application.router.initializeSocialMediaServices()
victory = options.level.get('victory')
victory = options.level.get('victory', true)
body = utils.i18n(victory, 'body') or 'Sorry, this level has no victory message yet.'
@body = marked(body)
@level = options.level

View file

@ -163,7 +163,7 @@ module.exports = class TomeView extends CocoView
sessionState = @options.session.get('state') ? {}
if realTime
sessionState.submissionCount = (sessionState.submissionCount ? 0) + 1
sessionState.flagHistory = []
sessionState.flagHistory = _.filter sessionState.flagHistory ? [], (event) => event.team isnt @options.session.get('team')
@options.session.set 'state', sessionState
Backbone.Mediator.publish 'tome:cast-spells', spells: @spells, preload: preload, realTime: realTime, submissionCount: sessionState.submissionCount ? 0, flagHistory: sessionState.flagHistory ? []