Beating replayable levels now shows you the proper gems and xp.

This commit is contained in:
Nick Winter 2015-01-07 18:36:02 -08:00
parent aeebee891e
commit d66243ad75
2 changed files with 17 additions and 8 deletions

View file

@ -17,18 +17,19 @@ block modal-body-content
div.achievement-description= achievement.get('description')
div.achievement-rewards
- var worth = achievement.get('worth', true);
- var worth = achievement.worth;
- var gems = achievement.gems;
if worth
.reward-panel.numerical.xp(data-number=worth, data-number-unit='xp')
.reward-image-container(class=animate ? 'pending-reward-image' : 'show')
img(src="/images/pages/play/level/modal/reward_icon_xp.png")
.reward-text= animate ? '+0' : '+'+worth
if rewards.gems
.reward-panel.numerical.gems(data-number=rewards.gems, data-number-unit='gem')
if gems
.reward-panel.numerical.gems(data-number=gems, data-number-unit='gem')
.reward-image-container(class=animate ? 'pending-reward-image' : 'show')
img(src="/images/pages/play/level/modal/reward_icon_gems.png")
.reward-text= animate ? '+0' : '+'+rewards.gems
.reward-text= animate ? '+0' : '+'+gems
if rewards.heroes
for hero in rewards.heroes

View file

@ -84,7 +84,7 @@ module.exports = class HeroVictoryModal extends ModalView
@listenToOnce me, 'sync', ->
@readyToContinue = true
@updateSavingProgressStatus()
me.fetch cache:false unless me.loading
me.fetch cache: false unless me.loading
@readyToContinue = true if not @achievements.models.length
@ -96,7 +96,17 @@ module.exports = class HeroVictoryModal extends ModalView
earnedAchievement = earnedAchievementMap[achievement.id]
if earnedAchievement
achievement.completedAWhileAgo = new Date() - Date.parse(earnedAchievement.get('created')) > 30 * 1000
c.achievements = @achievements.models
achievement.worth = achievement.get 'worth', true
achievement.gems = achievement.get('rewards')?.gems
c.achievements = @achievements.models.slice()
for achievement in c.achievements
continue unless @supermodel.finished() and proportionalTo = achievement.get 'proportionalTo'
# For repeatable achievements, we modify their base worth/gems by their repeatable growth functions.
achievedAmount = utils.getByPath @session.attributes, proportionalTo
func = achievement.getExpFunction()
achievement.worth = (achievement.get('worth') ? 0) * func achievedAmount
rewards = achievement.get 'rewards'
achievement.gems = rewards?.gems * func achievedAmount if rewards?.gems
# for testing the three states
#if c.achievements.length
@ -110,8 +120,6 @@ module.exports = class HeroVictoryModal extends ModalView
# rewards = achievement.get('rewards') or {}
# rewards.gems *= (index + 1)
# TODO: use earned achievement worths or somehow pull in recalculated exp/gems
c.thangTypes = @thangTypes
c.me = me
c.readyToRank = @level.get('type', true) is 'hero-ladder' and @session.readyToRank()