Change to vary boost by votes

This commit is contained in:
Ajay Ramachandran
2021-05-23 21:43:23 -04:00
parent eb2ffff780
commit 52b201ff87

View File

@@ -169,9 +169,11 @@ function getWeightedRandomChoice<T extends VotableObject>(choices: T[], amountOf
//assign a weight to each choice //assign a weight to each choice
let totalWeight = 0; let totalWeight = 0;
let choicesWithWeights: TWithWeight[] = choices.map(choice => { let choicesWithWeights: TWithWeight[] = choices.map(choice => {
const boost = Math.min(choice.reputation, Math.max(0, choice.votes * 2));
//The 3 makes -2 the minimum votes before being ignored completely //The 3 makes -2 the minimum votes before being ignored completely
//this can be changed if this system increases in popularity. //this can be changed if this system increases in popularity.
const weight = Math.exp((choice.votes + 3 + choice.reputation)); const weight = Math.exp(choice.votes * Math.min(1, choice.reputation + 1) + 3 + boost);
totalWeight += weight; totalWeight += weight;
return {...choice, weight}; return {...choice, weight};