diff --git a/website/common/script/ops/scoreTask.js b/website/common/script/ops/scoreTask.js index 5a46d01ada..59645e4b71 100644 --- a/website/common/script/ops/scoreTask.js +++ b/website/common/script/ops/scoreTask.js @@ -104,6 +104,7 @@ function _gainMP (user, val) { // ===== CONSTITUTION ===== // TODO Decreases HP loss from bad habits / missed dailies by 0.5% per point. function _subtractPoints (user, task, stats, delta) { + if (task.group.id && !task.userId) return stats.hp; let conBonus = 1 - statsComputed(user).con / 250; if (conBonus < 0.1) conBonus = 0.1; diff --git a/website/server/libs/cron.js b/website/server/libs/cron.js index f08702d761..d44b4a4b4c 100644 --- a/website/server/libs/cron.js +++ b/website/server/libs/cron.js @@ -352,17 +352,18 @@ export async function cron (options = {}) { if (!user.party.quest.progress.down) user.party.quest.progress.down = 0; tasksByType.dailys.forEach(task => { + const isTeamBoardTask = task.group.id && !task.userId; if ( - task.group.assignedDate + !isTeamBoardTask && task.group.assignedDate && moment(task.group.assignedDate).isAfter(user.auth.timestamps.updated) ) return; const { completed } = task; // Deduct points for missed Daily tasks - let EvadeTask = 0; + let evadeTask = 0; let scheduleMisses = daysMissed; if (completed) { - dailyChecked += 1; + if (!isTeamBoardTask) dailyChecked += 1; if (!atLeastOneDailyDue) { // only bother checking until the first thing is found const thatDay = moment(now).subtract({ days: daysMissed }); atLeastOneDailyDue = shouldDo(thatDay.toDate(), task, user.preferences); @@ -377,15 +378,15 @@ export async function cron (options = {}) { if (shouldDo(thatDay.toDate(), task, user.preferences)) { atLeastOneDailyDue = true; scheduleMisses += 1; - if (user.stats.buffs.stealth) { + if (user.stats.buffs.stealth && !isTeamBoardTask) { user.stats.buffs.stealth -= 1; - EvadeTask += 1; + evadeTask += 1; } } if (multiDaysCountAsOneDay) break; } - if (scheduleMisses > EvadeTask) { + if (scheduleMisses > evadeTask) { // The user did not complete this due Daily // (but no penalty if cron is running in safe mode). if (CRON_SAFE_MODE) { @@ -411,7 +412,7 @@ export async function cron (options = {}) { user, task, direction: 'down', - times: multiDaysCountAsOneDay ? 1 : scheduleMisses - EvadeTask, + times: multiDaysCountAsOneDay ? 1 : scheduleMisses - evadeTask, cron: true, });