From 4a0f165af8243022472718fddc9a3e1fcf6f0c1e Mon Sep 17 00:00:00 2001 From: Verabird Date: Sun, 22 Feb 2015 21:22:49 -0500 Subject: [PATCH 1/5] Modify daily checklists to stay checked at cron if inactive and Stealth to only apply to active dailys --- common/script/content.coffee | 4 ++-- common/script/index.coffee | 19 +++++++++++++------ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/common/script/content.coffee b/common/script/content.coffee index 08b41e97bb..658f85f3b4 100644 --- a/common/script/content.coffee +++ b/common/script/content.coffee @@ -611,8 +611,8 @@ api.spells = notes: t('spellRogueStealthNotes') cast: (user, target) -> user.stats.buffs.stealth ?= 0 - ## scales to user's # of dailies; maxes out at 100% at 100 per ## - user.stats.buffs.stealth += Math.ceil(user.dailys.length * user._statsComputed.per / 100) + ## scales to user's # of dailies; Diminishing Returns, maxes out at 25%, halfway point at 100 PER## + user.stats.buffs.stealth += Math.ceil( diminishingReturns(user._statsComputed.per, user.dailys.length*0.25,100)) healer: heal: diff --git a/common/script/index.coffee b/common/script/index.coffee index 03684dbb46..8c3edbae63 100644 --- a/common/script/index.coffee +++ b/common/script/index.coffee @@ -1493,28 +1493,35 @@ api.wrap = (user, main=true) -> {id, type, completed, repeat} = task - return if (type is 'daily') && !completed && user.stats.buffs.stealth && user.stats.buffs.stealth-- # User "evades" a certain number of uncompleted dailies +# return if (type is 'daily') && !completed && user.stats.buffs.stealth && user.stats.buffs.stealth-- # User "evades" a certain number of uncompleted dailies # Deduct experience for missed Daily tasks, but not for Todos (just increase todo's value) + EvadeTask = 0 + scheduleMisses = daysMissed unless completed - scheduleMisses = daysMissed # for dailys which have repeat dates, need to calculate how many they've missed according to their own schedule if (type is 'daily') and repeat scheduleMisses = 0 _.times daysMissed, (n) -> thatDay = moment(now).subtract({days: n + 1}) - scheduleMisses++ if api.shouldDo(thatDay, repeat, user.preferences) - if scheduleMisses > 0 + if api.shouldDo(thatDay, repeat, user.preferences) + scheduleMisses++ + if user.stats.buffs.stealth + user.stats.buffs.stealth-- + EvadeTask++ + if scheduleMisses > EvadeTask perfect = false if type is 'daily' - delta = user.ops.score({params:{id:task.id, direction:'down'}, query:{times:scheduleMisses, cron:true}}); + delta = user.ops.score({params:{id:task.id, direction:'down'}, query:{times:(scheduleMisses-EvadeTask), cron:true}}); # this line occurs for todos or dailys user.party.quest.progress.down += delta if type is 'daily' switch type when 'daily' + # This occurs whether or not the task is completed (task.history ?= []).push({ date: +new Date, value: task.value }) task.completed = false - _.each task.checklist, ((i)->i.completed=false;true) + if completed || (scheduleMisses > 0) + _.each task.checklist, ((i)->i.completed=false;true) # this should not happen for grey tasks unless they are completed when 'todo' #get updated value absVal = if (completed) then Math.abs(task.value) else task.value From 180d87e9c73e59f04a4c9d602e41e61ab39f39a4 Mon Sep 17 00:00:00 2001 From: Verabird Date: Sun, 22 Feb 2015 21:41:21 -0500 Subject: [PATCH 2/5] removed commented out old stealth code --- common/script/index.coffee | 3 --- 1 file changed, 3 deletions(-) diff --git a/common/script/index.coffee b/common/script/index.coffee index 8c3edbae63..ce48fb1fc1 100644 --- a/common/script/index.coffee +++ b/common/script/index.coffee @@ -1493,9 +1493,6 @@ api.wrap = (user, main=true) -> {id, type, completed, repeat} = task -# return if (type is 'daily') && !completed && user.stats.buffs.stealth && user.stats.buffs.stealth-- # User "evades" a certain number of uncompleted dailies - - # Deduct experience for missed Daily tasks, but not for Todos (just increase todo's value) EvadeTask = 0 scheduleMisses = daysMissed From fbeb83e8360aeea47b0ab9b45ba683ab878c2e54 Mon Sep 17 00:00:00 2001 From: Verabird Date: Fri, 13 Mar 2015 11:38:34 -0400 Subject: [PATCH 3/5] Rescale stealth to strengthen --- common/script/content.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/script/content.coffee b/common/script/content.coffee index 658f85f3b4..339062f042 100644 --- a/common/script/content.coffee +++ b/common/script/content.coffee @@ -611,8 +611,8 @@ api.spells = notes: t('spellRogueStealthNotes') cast: (user, target) -> user.stats.buffs.stealth ?= 0 - ## scales to user's # of dailies; Diminishing Returns, maxes out at 25%, halfway point at 100 PER## - user.stats.buffs.stealth += Math.ceil( diminishingReturns(user._statsComputed.per, user.dailys.length*0.25,100)) + ## scales to user's # of dailies; Diminishing Returns, maxes out at 65%, halfway point at 90 PER## + user.stats.buffs.stealth += Math.ceil( diminishingReturns(user._statsComputed.per, user.dailys.length*0.65,90)) healer: heal: From 627b07ef86f35483edf7c3885bc43762cb83a0b3 Mon Sep 17 00:00:00 2001 From: Verabird Date: Fri, 13 Mar 2015 16:45:00 -0400 Subject: [PATCH 4/5] Rebalance stealth diminishing returns again --- common/script/content.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/script/content.coffee b/common/script/content.coffee index 339062f042..bc4c04753f 100644 --- a/common/script/content.coffee +++ b/common/script/content.coffee @@ -611,8 +611,8 @@ api.spells = notes: t('spellRogueStealthNotes') cast: (user, target) -> user.stats.buffs.stealth ?= 0 - ## scales to user's # of dailies; Diminishing Returns, maxes out at 65%, halfway point at 90 PER## - user.stats.buffs.stealth += Math.ceil( diminishingReturns(user._statsComputed.per, user.dailys.length*0.65,90)) + ## scales to user's # of dailies; Diminishing Returns, maxes out at 64%, halfway point at 55 PER## + user.stats.buffs.stealth += Math.ceil( diminishingReturns(user._statsComputed.per, user.dailys.length*0.64,55)) healer: heal: From 0ceceaac1f3157719327af69405e653da8404ecb Mon Sep 17 00:00:00 2001 From: Alice Harris Date: Sat, 14 Mar 2015 19:38:58 +1000 Subject: [PATCH 5/5] compile javascript --- common/dist/scripts/habitrpg-shared.js | 31 +++++++++++++++----------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/common/dist/scripts/habitrpg-shared.js b/common/dist/scripts/habitrpg-shared.js index 35a0c07d60..a421dec48c 100644 --- a/common/dist/scripts/habitrpg-shared.js +++ b/common/dist/scripts/habitrpg-shared.js @@ -2623,7 +2623,7 @@ api.spells = { if ((_base = user.stats.buffs).stealth == null) { _base.stealth = 0; } - return user.stats.buffs.stealth += Math.ceil(user.dailys.length * user._statsComputed.per / 100); + return user.stats.buffs.stealth += Math.ceil(diminishingReturns(user._statsComputed.per, user.dailys.length * 0.64, 55)); } } }, @@ -6913,20 +6913,18 @@ api.wrap = function(user, main) { _base.down = 0; } user.todos.concat(user.dailys).forEach(function(task) { - var absVal, completed, delta, fractionChecked, id, repeat, scheduleMisses, type, _ref1; + var EvadeTask, absVal, completed, delta, fractionChecked, id, repeat, scheduleMisses, type, _ref1; if (!task) { return; } id = task.id, type = task.type, completed = task.completed, repeat = task.repeat; - if ((type === 'daily') && !completed && user.stats.buffs.stealth && user.stats.buffs.stealth--) { - return; - } + EvadeTask = 0; + scheduleMisses = daysMissed; if (completed) { if (type === 'daily') { dailyChecked += 1; } } else { - scheduleMisses = daysMissed; if ((type === 'daily') && repeat) { scheduleMisses = 0; _.times(daysMissed, function(n) { @@ -6935,11 +6933,15 @@ api.wrap = function(user, main) { days: n + 1 }); if (api.shouldDo(thatDay, repeat, user.preferences)) { - return scheduleMisses++; + scheduleMisses++; + if (user.stats.buffs.stealth) { + user.stats.buffs.stealth--; + return EvadeTask++; + } } }); } - if (scheduleMisses > 0) { + if (scheduleMisses > EvadeTask) { if (type === 'daily') { perfect = false; if (((_ref1 = task.checklist) != null ? _ref1.length : void 0) > 0) { @@ -6958,7 +6960,7 @@ api.wrap = function(user, main) { direction: 'down' }, query: { - times: scheduleMisses, + times: scheduleMisses - EvadeTask, cron: true } }); @@ -6974,10 +6976,13 @@ api.wrap = function(user, main) { value: task.value }); task.completed = false; - return _.each(task.checklist, (function(i) { - i.completed = false; - return true; - })); + if (completed || (scheduleMisses > 0)) { + return _.each(task.checklist, (function(i) { + i.completed = false; + return true; + })); + } + break; case 'todo': absVal = completed ? Math.abs(task.value) : task.value; return todoTally += absVal;