codecombat/app/views/play/level/LevelGoldView.coffee

47 lines
1.4 KiB
CoffeeScript
Raw Normal View History

CocoView = require 'views/core/CocoView'
2014-02-11 15:02:27 -05:00
template = require 'templates/play/level/gold'
2014-05-02 18:12:30 -04:00
teamTemplate = require 'templates/play/level/team_gold'
2014-02-11 15:02:27 -05:00
module.exports = class LevelGoldView extends CocoView
2014-06-30 22:16:26 -04:00
id: 'gold-view'
2014-02-11 15:02:27 -05:00
template: template
subscriptions:
'surface:gold-changed': 'onGoldChanged'
'level:set-letterbox': 'onSetLetterbox'
2014-02-11 15:02:27 -05:00
2014-05-14 19:06:00 -04:00
constructor: (options) ->
super options
@teamGold = {}
@teamGoldEarned = {}
@shownOnce = false
2014-02-11 15:02:27 -05:00
onGoldChanged: (e) ->
2014-05-14 19:06:00 -04:00
return if @teamGold[e.team] is e.gold and @teamGoldEarned[e.team] is e.goldEarned
@teamGold[e.team] = e.gold
@teamGoldEarned[e.team] = e.goldEarned
2014-02-11 15:02:27 -05:00
goldEl = @$el.find('.gold-amount.team-' + e.team)
unless goldEl.length
2014-05-02 18:12:30 -04:00
teamEl = teamTemplate team: e.team
@$el[if e.team is 'humans' then 'prepend' else 'append'](teamEl)
goldEl = @$el.find('.gold-amount.team-' + e.team)
2014-04-27 18:33:16 -04:00
text = '' + e.gold
if e.goldEarned and e.goldEarned > e.gold
text += " (#{e.goldEarned})"
goldEl.text text
2014-05-14 19:06:00 -04:00
@updateTitle()
@$el.show()
@shownOnce = true
2014-05-14 19:06:00 -04:00
updateTitle: ->
strings = []
for team, gold of @teamGold
if @teamGoldEarned[team]
strings.push "Team '#{team}' has #{gold} now of #{@teamGoldEarned[team]} gold earned."
else
strings.push "Team '#{team}' has #{gold} gold."
@$el.attr 'title', strings.join ' '
2014-02-11 15:02:27 -05:00
onSetLetterbox: (e) ->
@$el.toggle not e.on if @shownOnce