diff --git a/commands/hb.js b/commands/hb.js new file mode 100644 index 0000000..dd8cd99 --- /dev/null +++ b/commands/hb.js @@ -0,0 +1,47 @@ +const STAT_MULT_INITIAL_AB2 = 0.66; +const STAT_MULT_FULL_AB2 = 0.75; + +const STAT_EXP_INITIAL_AB2 = 0.0825; +const STAT_EXP_FULL_AB2 = 0.3375; + +const ADDITIONAL_DAMAGE_MULTIPLIER = 0.25; +const ADDITIONAL_DAMAGE_EXPONENT = 0.95; + +// Functions +function get_ab2_scaling(stat_val) { + return ( + 1.0 + + STAT_MULT_INITIAL_AB2 * + (Math.min(stat_val + 1.0, 4.0) ** STAT_EXP_INITIAL_AB2 - 1.0) + + STAT_MULT_FULL_AB2 * ((stat_val + 1.0) ** STAT_EXP_FULL_AB2 - 1.0) + ); +} + +function get_damage_multiplier(stat_val) { + return ( + 1.0 + + ADDITIONAL_DAMAGE_MULTIPLIER * + get_ab2_scaling(Math.max(stat_val, 1)) ** ADDITIONAL_DAMAGE_EXPONENT + ); +} + +exports.name = "hb"; +exports.description = ":muscle: Calculate hero boost's damage multiplier."; +exports.usage = "<"; +exports.example = "< { + if (!args[0]) + return message.channel.send("Not enough arguments, consult < { + if (!args[0]) + return message.channel.send("Not enough arguments, consult <