aboutsummaryrefslogtreecommitdiff
path: root/commands/calculate/calcSpeed.js
diff options
context:
space:
mode:
Diffstat (limited to 'commands/calculate/calcSpeed.js')
-rw-r--r--commands/calculate/calcSpeed.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/commands/calculate/calcSpeed.js b/commands/calculate/calcSpeed.js
new file mode 100644
index 0000000..1b2eae6
--- /dev/null
+++ b/commands/calculate/calcSpeed.js
@@ -0,0 +1,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))
+} \ No newline at end of file