JSFiddle - React, Tailwind, and code Playground
by Soul_Master
HTML
Mu Origin - Upgrade calculator
JavaScript
function upgrade(level, item, bonus) {
item.blessing++;
if(level >= 6){
item.soul++;
}
if(level >= 9) {
item.chaos++;
}
var result = Math.random();
result += bonus || 0;
switch (level) {
case 3: return result <= 0.9 ? level + 1 : level;
case 4: return result <= 0.8 ? level + 1 : level;
case 5:
item.money += 320000;
return result <= 0.6 ? level + 1 : level;
case 6:
item.money += 480000;
return result <= 0.5 ? level + 1 : level - 1;
case 7:
item.money += 720000;
return result <= 0.45 ? level + 1 : level - 1;
case 8:
item.money += 1080000;
return result <= 0.45 ? level + 1 : level - 1;
case 9:
item.money += 1620000;
return result <= 0.4 ? level + 1 : level - 1;
case 10:
item.money += 2430000;
return result <= 0.4 ? level + 1 : level - 1;
case 11:
item.money += 3645000;
return result <= 0.35 ? level + 1 : level - 1;
default: return level + 1;
}
}
function getDefaultItem(){
return {
blessing: 0,
soul: 0,
chaos: 0,
money: 0
};
}
var sumItem = getDefaultItem();
var testRound = 10000;
var currentLevel = 10;
var targetLevel = 11;
for(var i = 0; i < testRound; i++){
var item = getDefaultItem();
var level = currentLevel;
while(true){
level = upgrade(level, item, 0.02);
if(level === targetLevel) break;
}
sumItem.blessing += item.blessing;
sumItem.soul += item.soul;
sumItem.chaos += item.chaos;
sumItem.money += item.money;
}
sumItem.blessing /= testRound;
sumItem.soul /= testRound;
sumItem.chaos /= testRound;
sumItem.money /= testRound;
console.log(sumItem);