aboutsummaryrefslogtreecommitdiff
path: root/commands/calculate/calcSpeed.js
blob: 1b2eae6e62f67cba2d45450dae1c5563946f3569 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import constants from "../../util/constants"
import { parseNotatedInput } from "../../util/helperFunctions"
const PREFIX = constants.PREFIX


export function calcSpeed(powder)
{
    let speedLevels = 1,
     professionalLevels = 1

    if(powder == undefined || parseNotatedInput(powder) == "NI") return ChatLib.chat(constants.CALCULATEERRORMESSAGE)
    powder = parseNotatedInput(powder)

    while(powder > msPowder(speedLevels) + profPowder(professionalLevels))
    {
        if(ms2SpeedPerPowder(speedLevels + 1) > professionalSpeedPerPowder(professionalLevels + 1) && speedLevels < 50)
        {
            powder -= msPowder(speedLevels++)
        }
        else if (professionalLevels < 140)
        {
            powder -= profPowder(professionalLevels++)
        }
        else break 
    }
    return ChatLib.chat(`&bGet &6&l${speedLevels} &bmining speed levels and &6&l${professionalLevels} &bprofessional levels.`)
}

function ms2SpeedPerPowder(miningSpeedLevel) // 40 speed per level
{
    return 40/msPowder(miningSpeedLevel)
}

function professionalSpeedPerPowder(professionalLevel) // 5 speed per level
{
    return 5/profPowder(professionalLevel)
}

function msPowder(miningSpeedLevel)
{
    return Math.floor(Math.pow(miningSpeedLevel+1, 3.2))
}

function profPowder(professionalLevel)
{
    return Math.floor(Math.pow(professionalLevel+1, 2.3))
}