Reworked ladder game victory modal main call to action to actually submit game for ranking.
This commit is contained in:
parent
6a71e97204
commit
234b3f105d
6 changed files with 27 additions and 5 deletions
app
lib/surface
locale
templates/play/level/modal
views/play
|
@ -515,7 +515,6 @@ module.exports = Surface = class Surface extends CocoClass
|
||||||
break unless Dropper.drop()
|
break unless Dropper.drop()
|
||||||
if frameAdvanced and not worldFrameAdvanced
|
if frameAdvanced and not worldFrameAdvanced
|
||||||
# We didn't end the above loop on an integer frame, so do the world state update.
|
# We didn't end the above loop on an integer frame, so do the world state update.
|
||||||
console.log "Restore world state"
|
|
||||||
@restoreWorldState()
|
@restoreWorldState()
|
||||||
|
|
||||||
# these are skipped for dropped frames
|
# these are skipped for dropped frames
|
||||||
|
|
|
@ -179,6 +179,9 @@ module.exports = nativeDescription: "English", englishDescription: "English", tr
|
||||||
victory_sign_up: "Sign Up to Save Progress"
|
victory_sign_up: "Sign Up to Save Progress"
|
||||||
victory_sign_up_poke: "Want to save your code? Create a free account!"
|
victory_sign_up_poke: "Want to save your code? Create a free account!"
|
||||||
victory_rate_the_level: "Rate the level: "
|
victory_rate_the_level: "Rate the level: "
|
||||||
|
victory_rank_my_game: "Rank My Game"
|
||||||
|
victory_ranking_game: "Submitting..."
|
||||||
|
victory_return_to_ladder: "Return to Ladder"
|
||||||
victory_play_next_level: "Play Next Level"
|
victory_play_next_level: "Play Next Level"
|
||||||
victory_go_home: "Go Home"
|
victory_go_home: "Go Home"
|
||||||
victory_review: "Tell us more!"
|
victory_review: "Tell us more!"
|
||||||
|
|
|
@ -14,8 +14,10 @@
|
||||||
div!= body
|
div!= body
|
||||||
|
|
||||||
.modal-footer
|
.modal-footer
|
||||||
if level.get('type') === 'ladder'
|
if readyToRank
|
||||||
a.btn.btn-primary(href="/play/ladder/#{level.get('slug')}#my-matches", data-dismiss="modal", data-i18n="play_level.victory_go_home") Go Home
|
button.btn.btn-success.rank-game-button(data-i18n="play_level.victory_rank_my_game") Rank My Game
|
||||||
|
else if level.get('type') === 'ladder'
|
||||||
|
a.btn.btn-primary(href="/play/ladder/#{level.get('slug')}#my-matches", data-dismiss="modal", data-i18n="play_level.victory_go_ladder") Return to Ladder
|
||||||
else if hasNextLevel
|
else if hasNextLevel
|
||||||
button.btn.btn-primary.next-level-button(data-dismiss="modal", data-i18n="play_level.victory_play_next_level") Play Next Level
|
button.btn.btn-primary.next-level-button(data-dismiss="modal", data-i18n="play_level.victory_play_next_level") Play Next Level
|
||||||
else
|
else
|
||||||
|
|
|
@ -94,7 +94,6 @@ module.exports = class MyMatchesTabView extends CocoView
|
||||||
c1 and not _.isEqual(c1, c2)
|
c1 and not _.isEqual(c1, c2)
|
||||||
|
|
||||||
rankSession: (e) ->
|
rankSession: (e) ->
|
||||||
console.log "Clicked"
|
|
||||||
button = $(e.target).closest('.rank-button')
|
button = $(e.target).closest('.rank-button')
|
||||||
sessionID = button.data('session-id')
|
sessionID = button.data('session-id')
|
||||||
session = _.find @sessions.models, { id: sessionID }
|
session = _.find @sessions.models, { id: sessionID }
|
||||||
|
|
|
@ -316,7 +316,6 @@ module.exports = class HUDView extends View
|
||||||
@timespans = {}
|
@timespans = {}
|
||||||
dt = @thang.world.dt
|
dt = @thang.world.dt
|
||||||
actionHistory = @thang.world.actionsForThang @thang.id, true
|
actionHistory = @thang.world.actionsForThang @thang.id, true
|
||||||
console.log "got actionHistory", actionHistory
|
|
||||||
[lastFrame, lastAction] = [0, null]
|
[lastFrame, lastAction] = [0, null]
|
||||||
for hist in actionHistory.concat {frame: @thang.world.totalFrames, name: 'END'}
|
for hist in actionHistory.concat {frame: @thang.world.totalFrames, name: 'END'}
|
||||||
[newFrame, newAction] = [hist.frame, hist.name]
|
[newFrame, newAction] = [hist.frame, hist.name]
|
||||||
|
|
|
@ -11,6 +11,7 @@ module.exports = class VictoryModal extends View
|
||||||
|
|
||||||
events:
|
events:
|
||||||
'click .next-level-button': 'onPlayNextLevel'
|
'click .next-level-button': 'onPlayNextLevel'
|
||||||
|
'click .rank-game-button': 'onRankGame'
|
||||||
|
|
||||||
# review events
|
# review events
|
||||||
'mouseover .rating i': (e) -> @showStars(@starNum($(e.target)))
|
'mouseover .rating i': (e) -> @showStars(@starNum($(e.target)))
|
||||||
|
@ -58,6 +59,21 @@ module.exports = class VictoryModal extends View
|
||||||
@saveReview() if @$el.find('.review textarea').val()
|
@saveReview() if @$el.find('.review textarea').val()
|
||||||
Backbone.Mediator.publish('play-next-level')
|
Backbone.Mediator.publish('play-next-level')
|
||||||
|
|
||||||
|
onRankGame: (e) ->
|
||||||
|
button = @$el.find('.rank-game-button')
|
||||||
|
button.text($.i18n.t('play_level.victory_ranking_game', defaultValue: 'Submitting...'))
|
||||||
|
button.prop 'disabled', true
|
||||||
|
ajaxData = session: @session.id, levelID: @level.id, originalLevelID: @level.get('original'), levelMajorVersion: @level.get('version').major
|
||||||
|
ladderURL = "/play/ladder/#{@level.get('slug')}#my-matches"
|
||||||
|
goToLadder = -> Backbone.Mediator.publish 'router:navigate', route: ladderURL
|
||||||
|
$.ajax '/queue/scoring',
|
||||||
|
type: 'POST'
|
||||||
|
data: ajaxData
|
||||||
|
success: goToLadder
|
||||||
|
failure: (response) ->
|
||||||
|
console.error "Couldn't submit game for ranking:", response
|
||||||
|
goToLadder()
|
||||||
|
|
||||||
getRenderData: ->
|
getRenderData: ->
|
||||||
c = super()
|
c = super()
|
||||||
c.body = @body
|
c.body = @body
|
||||||
|
@ -65,6 +81,10 @@ module.exports = class VictoryModal extends View
|
||||||
c.hasNextLevel = _.isObject(@level.get('nextLevel')) and (@level.get('name') isnt "Mobile Artillery")
|
c.hasNextLevel = _.isObject(@level.get('nextLevel')) and (@level.get('name') isnt "Mobile Artillery")
|
||||||
c.levelName = @level.get('i18n')?[me.lang()]?.name ? @level.get('name')
|
c.levelName = @level.get('i18n')?[me.lang()]?.name ? @level.get('name')
|
||||||
c.level = @level
|
c.level = @level
|
||||||
|
if c.level.get('type') is 'ladder'
|
||||||
|
c1 = @session?.get('code')
|
||||||
|
c2 = @session?.get('submittedCode')
|
||||||
|
c.readyToRank = @session.get('levelID') and c1 and not _.isEqual(c1, c2)
|
||||||
if me.get 'hourOfCode'
|
if me.get 'hourOfCode'
|
||||||
# Show the Hour of Code "I'm Done" tracking pixel after they played for 30 minutes
|
# Show the Hour of Code "I'm Done" tracking pixel after they played for 30 minutes
|
||||||
elapsed = (new Date() - new Date(me.get('dateCreated')))
|
elapsed = (new Date() - new Date(me.get('dateCreated')))
|
||||||
|
|
Reference in a new issue