From 4d97029ab9899c2d047d2411112013b004aab6b2 Mon Sep 17 00:00:00 2001 From: Tyler Renelle Date: Thu, 23 Feb 2012 18:23:54 -0500 Subject: [PATCH] Apply experience deduction logic to money --- .../javascripts/backbone/models/user.js.coffee | 12 +++++++++--- app/models/habit.rb | 1 + app/models/user.rb | 3 +++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/backbone/models/user.js.coffee b/app/assets/javascripts/backbone/models/user.js.coffee index a8008b9052..29caa7969a 100644 --- a/app/assets/javascripts/backbone/models/user.js.coffee +++ b/app/assets/javascripts/backbone/models/user.js.coffee @@ -14,9 +14,15 @@ class HabitTracker.Models.User extends Backbone.Model @set({ exp: @get('exp') - @tnl() }) @set({ lvl: @get('lvl') + 1 }) - # also add money. Only take away money if it was a mistake (aka, a checkbox) - if delta>0 or (habit.isDaily() or habit.isTodo()) - @set({money: @get('money')+delta}) + # @deprecated also add money. Only take away money if it was a mistake (aka, a checkbox) + # if delta>0 or (habit.isDaily() or habit.isTodo()) + # @set({money: @get('money')+delta}) + + # apply same logic to money + @set({money: @get('money')+delta}) + if @get('money') < 0 then @set({money: 0}) + + # if buying an item, deduct cost if habit.isReward() @set({money: @get('money')-habit.get('score')}) diff --git a/app/models/habit.rb b/app/models/habit.rb index 6c3c71a12c..06e78e8ae9 100644 --- a/app/models/habit.rb +++ b/app/models/habit.rb @@ -19,6 +19,7 @@ class Habit < ActiveRecord::Base # but not for Todos (just increase todo's value) if(h.habit_type==2) h.user.exp += value + h.user.money += value h.user.save end h.score += value diff --git a/app/models/user.rb b/app/models/user.rb index c629abe1ea..6e62b26761 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -14,6 +14,9 @@ class User < ActiveRecord::Base before_save :calculate_experience def calculate_experience + + self.money = 0 if self.money < 0 + self.exp = 0 if self.exp < 0 if (self.exp > self.tnl) self.exp -= self.tnl # carry over