diff --git a/src/app/algos.coffee b/src/app/algos.coffee
index fe4d9d1c92..6ec2c97907 100644
--- a/src/app/algos.coffee
+++ b/src/app/algos.coffee
@@ -48,9 +48,12 @@ module.exports.hpModifier = (value, armorDef, helmDef, shieldDef, level, priorit
Future use
{priority} user-defined priority multiplier
###
-module.exports.gpModifier = (value, modifier, priority='!', streak=0) ->
+module.exports.gpModifier = (value, modifier, priority='!', streak=0, model) ->
streakBonus = streak / 100 + 1 # eg, 1-day streak is 1.1, 2-day is 1.2, etc
- return value * modifier * priorityValue(priority) * streakBonus
+ val = value * modifier * priorityValue(priority)
+ afterStreak = val * streakBonus
+ model.set('_streakBonus', afterStreak - val) if (model and streak and (val > 0)) # can we do this without model? just global emit?
+ return afterStreak
###
Calculates the next task.value based on direction
diff --git a/src/app/browser.coffee b/src/app/browser.coffee
index 9256a4021f..38e5fcc935 100644
--- a/src/app/browser.coffee
+++ b/src/app/browser.coffee
@@ -157,6 +157,12 @@ setupGrowlNotifications = (model) ->
else if num > 0
statsNotification " + #{rounded} XP", 'xp'
+ model.on 'set', '_streakBonus', (captures, args) ->
+ absolute = Math.abs(captures)
+ gold = Math.floor(absolute)
+ silver = Math.floor((absolute-gold)*100)
+ statsNotification "+ #{gold} #{silver} - Streak Bonus!", 'gp'
+
user.on 'set', 'stats.gp', (captures, args) ->
num = captures - args
absolute = Math.abs(num)
diff --git a/src/app/scoring.coffee b/src/app/scoring.coffee
index f9cf4351e8..e0fb4afeb3 100644
--- a/src/app/scoring.coffee
+++ b/src/app/scoring.coffee
@@ -119,7 +119,7 @@ score = (model, taskId, direction, times, batch, cron) ->
level = user.get('stats.lvl')
weaponStrength = items.items.weapon[user.get('items.weapon')].strength
exp += algos.expModifier(delta,weaponStrength,level, priority) / 2 # / 2 hack for now bcause people leveling too fast
- gp += algos.gpModifier(delta, 1, priority, taskObj.streak)
+ gp += algos.gpModifier(delta, 1, priority, taskObj.streak, model)
subtractPoints = ->
level = user.get('stats.lvl')