Files
habitica/website/common/script/statHelpers.js
Blade Barringer 81b7eeeb71 Common reorg (#8025)
* Re-organize common folder

* fix: Correct paths in tests

* fix: move new content to proper folder

* chore: Move audio folder to assets

* Move sprites to sprites assets directory

* Move css sprites to assets directory

* Split out readmes for common code and sprites

* Move images to assets directory

* Move destinatin of shared browserified file

* remove unused file

* move compiled js to client-old

* Fix karma tests

* fix: Correct paths for sprites
2016-09-16 17:18:07 +02:00

39 lines
970 B
JavaScript

import {
MAX_LEVEL,
} from './constants';
/*
------------------------------------------------------
Level cap
------------------------------------------------------
*/
export function capByLevel (lvl) {
if (lvl > MAX_LEVEL) {
return MAX_LEVEL;
} else {
return lvl;
}
}
/*
------------------------------------------------------
Scoring
------------------------------------------------------
*/
export function toNextLevel (lvl) {
return Math.round((Math.pow(lvl, 2) * 0.25 + 10 * lvl + 139.75) / 10) * 10;
}
/*
A hyperbola function that creates diminishing returns, so you can't go to infinite (eg, with Exp gain).
{max} The asymptote
{bonus} All the numbers combined for your point bonus (eg, task.value * user.stats.int * critChance, etc)
{halfway} (optional) the point at which the graph starts bending
*/
export function diminishingReturns (bonus, max, halfway = max / 2) {
return max * (bonus / (bonus + halfway));
}