From 8f07f06cb0d29e68d40b8c7793727b4b2603f737 Mon Sep 17 00:00:00 2001 From: Alice Harris Date: Sat, 17 May 2014 19:55:08 +1000 Subject: [PATCH] fix bug where an un-checked to-do with checklist removes only part of reward When a to-do is checked off, the rewards are increased by the number of checklist items that have been completed. However as reported in https://github.com/HabitRPG/habitrpg/issues/3474, if the to-do is later un-checked, then the rewards subtracted are not being similarly increased by the number of checklist items completed. This fix will change that - the number of checklist items completed will have an equal effect on checking and unchecking a to-do. This of course won't fix the problem of, upon unchecking, not being able to calculate the exact value of the rewards that had been given upon checking, so there will still be a discrepancy between checking and unchecking, but it will be much smaller than it is currently. --- dist/habitrpg-shared.js | 4 ++-- script/index.coffee | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dist/habitrpg-shared.js b/dist/habitrpg-shared.js index 3f79c05f12..facf307826 100644 --- a/dist/habitrpg-shared.js +++ b/dist/habitrpg-shared.js @@ -13159,7 +13159,7 @@ api.wrap = function(user, main) { return m + (i.completed ? 1 : 0); }), 0) / task.checklist.length; } - if (task.type === 'todo' && direction === 'up') { + if (task.type === 'todo') { nextDelta *= 1 + _.reduce(task.checklist, (function(m, i) { return m + (i.completed ? 1 : 0); }), 0); @@ -13834,4 +13834,4 @@ api.wrap = function(user, main) { }).call(this,require("/Users/lefnire/Dropbox/Sites/habitrpg/modules/habitrpg-shared/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js")) -},{"./content.coffee":5,"./i18n.coffee":6,"/Users/lefnire/Dropbox/Sites/habitrpg/modules/habitrpg-shared/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":2,"lodash":3,"moment":4}]},{},[1]) \ No newline at end of file +},{"./content.coffee":5,"./i18n.coffee":6,"/Users/lefnire/Dropbox/Sites/habitrpg/modules/habitrpg-shared/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":2,"lodash":3,"moment":4}]},{},[1]) diff --git a/script/index.coffee b/script/index.coffee index c915168e71..11057fcfae 100644 --- a/script/index.coffee +++ b/script/index.coffee @@ -792,7 +792,7 @@ api.wrap = (user, main=true) -> if direction is 'down' and task.type is 'daily' and options.cron nextDelta *= (1 - _.reduce(task.checklist,((m,i)->m+(if i.completed then 1 else 0)),0) / task.checklist.length) # If To-Do, point-match the TD per checklist item completed - if task.type is 'todo' and direction is 'up' + if task.type is 'todo' nextDelta *= (1 + _.reduce(task.checklist,((m,i)->m+(if i.completed then 1 else 0)),0)) unless task.type is 'reward'