From 1891ada92ab1911cfaaa7ad0e72c85573f4fcbb6 Mon Sep 17 00:00:00 2001 From: Ninjune x Date: Tue, 13 Dec 2022 20:47:42 -0600 Subject: v1.8.0 --- commands/calculate/tick.js | 93 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 commands/calculate/tick.js (limited to 'commands/calculate/tick.js') diff --git a/commands/calculate/tick.js b/commands/calculate/tick.js new file mode 100644 index 0000000..f8b2433 --- /dev/null +++ b/commands/calculate/tick.js @@ -0,0 +1,93 @@ +import constants from "../../util/constants" +const PREFIX = constants.PREFIX + +export function tickCommand(speed, block) +{ + if(speed == undefined || parseInt(speed) != speed) + return ChatLib.chat(`${PREFIX}&cMining speed must be an integer!`) + if(block == undefined) + return ChatLib.chat(constants.CALCULATEERRORMESSAGE) + const ticks = findTick(speed, block) + if(ticks.err) return ChatLib.chat(`${PREFIX}&cBlock must be a gemstone or positive breaking power! (or starting letter of gemstone)`) + + + ChatLib.chat(`\n&bCurrently mining blocks in &6&l${Math.round(ticks.currentBlockTick)} ticks` + + `\n&bCurrently mining shards in &6&l${Math.round(ticks.currentShardTick)} ticks` + + `\n&bNext block tick will be at: &6&l${Math.round(ticks.nextBlockSpeed)} mining speed` + + `\n&bNext shard tick will be at: &6&l${Math.round(ticks.nextShardSpeed)} mining speed` + + `\n&bYou need &6&l${Math.round(ticks.nextBlockSpeed - speed)} mining speed&b to get the next block tick.` + + `\n&bYou need &6&l${Math.round(ticks.nextShardSpeed - speed)} mining speed&b to get the next shard tick.\n`) +} + + +export function findTick(speed, block) +{ + let ticks = {err: false}, + strength = findStrength(block) + + ticks.currentBlockTick = strength*30/speed + ticks.currentShardTick = (strength-200)*30/speed + + if(strength < 1) return ticks.err = true + + + if(ticks.currentBlockTick < Math.floor(ticks.currentBlockTick) + 0.5) + ticks.nextBlockSpeed = strength*30/(Math.floor(ticks.currentBlockTick)-0.5) + else + ticks.nextBlockSpeed = strength*30/(Math.floor(ticks.currentBlockTick)+0.5) + + if(ticks.currentShardTick < Math.floor(ticks.currentShardTick) + 0.5) + ticks.nextShardSpeed = strength*30/(Math.floor(ticks.currentShardTick)-0.5) + else + ticks.nextShardSpeed = strength*30/(Math.floor(ticks.currentShardTick)+0.5) + + return ticks +} + +function findStrength(block) +{ + let strength = -1 + + if(block == parseInt(block) && block > 5) // change if add block to tick speed blocks in settings + strength = block + else + { + switch(block.toString().toLowerCase()) + { + case "0": + case "green_mithril": + strength = 800 + break + case "1": + case "blue_mithril": + strength = 1500 + break + case "2": + case "ruby": + case "r": + strength = 2500 + break + case "3": + case "j": + case "jade": + case "a": + case "amber": + case "amethyst": + case "s": + case "sapphire": + strength = 3200 + break + case "4": + case "t": + case "topaz": + case "o": + case "opal": + strength = 4000 + case "5": + case "jasper": + strength = 5000 + } + } + + return strength +} -- cgit