mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-04-14 19:56:23 +00:00
21 lines
533 B
JavaScript
21 lines
533 B
JavaScript
|
|
import _ from 'lodash';
|
||
|
|
/*
|
||
|
|
Because the same op needs to be performed on the client and the server (critical hits, item drops, etc),
|
||
|
|
we need things to be "random", but technically predictable so that they don't go out-of-sync
|
||
|
|
*/
|
||
|
|
|
||
|
|
module.exports = function(user, seed) {
|
||
|
|
var x;
|
||
|
|
if (!seed || seed === Math.PI) {
|
||
|
|
seed = _.reduce(user.stats, (function(m, v) {
|
||
|
|
if (_.isNumber(v)) {
|
||
|
|
return m + v;
|
||
|
|
} else {
|
||
|
|
return m;
|
||
|
|
}
|
||
|
|
}), 0);
|
||
|
|
}
|
||
|
|
x = Math.sin(seed++) * 10000;
|
||
|
|
return x - Math.floor(x);
|
||
|
|
};
|