MCDungeonsWeapons icon indicating copy to clipboard operation
MCDungeonsWeapons copied to clipboard

It's there way to configure the Enigma Resonator's damage boost to start at certain level and reach the cap at certain level?

Open zvn570 opened this issue 1 year ago • 6 comments

So in my server, level 150 is fairly easy to reach and I wish that I could make it so it starts getting some notable damage bonus at level 150 and reach the max at level 1000.

zvn570 avatar Dec 27 '24 01:12 zvn570

@zvn570 You can adjust the divisor in the config, but, technically, Enigma Resonator will never cap out. You will reach a point of diminishing returns, though

chronosacaria avatar Dec 27 '24 03:12 chronosacaria

What's the offset should be if I wanted Enigma Resonator III to deal 89% damage at level 1000?

zvn570 avatar Dec 27 '24 05:12 zvn570

@zvn570 I mean, you're more than welcome to calculate it since the damage is directly correlated to the amount of experience you have. Formula: max((log_e(numSouls * level + 20) / offset) - 1, 0) numSouls = the number of XP the user has Offset Note: higher offset = less damage Default: 3.25f It is worth noting that log_e is the Natural Log of e, which is about 2.71828

chronosacaria avatar Dec 27 '24 05:12 chronosacaria

So I did 21.6775 as a offset but it ended up not giving any damage boost at all even when at level 1000.

zvn570 avatar Dec 27 '24 07:12 zvn570

There is a point of diminishing returns

chronosacaria avatar Feb 24 '25 17:02 chronosacaria

Setting caps are not possible as chronosacaria mentioned. There are only diminishing returns (less effective the higher it increases).

After you find "log,e" or "ln", you would divide by the offset. The quotient you get from dividing this offset should be greater than 1 in order to apply increased damage from the enchantment/formula.

ln(xplevel * enchantmentlevel + 20) divided by offset, then subtract 1 from the result.

How this looks at level 3 Enigma and XP level 1000:

ln (1000 * 3 + 20) = ln (3020) = 8.0... So it gave me a repeating number, but I'll stick with 8.0 for exactness. Now I still have to divide by the offset. What should the offset be? Too high would make our answer <1, which would result in no increase to the damage. 8.0/21.6775 yielded approximately 0.36...much less than 1, so subtracting 1 wouldn't do anything.

8.0 needs to be divided by offset but value is unknown, so we'll use "x". Then still have to subtract by 1, to equal .89, or 89%.

(8.0/x) - 1 = .89. Move the 1 to the other side, we have to get "x" by itself. (8.0/x) = 1.89. Now you multiply both sides by the offset, or "x" in order to get 8.0 = 1.89*x. Now you can divide both sides by 1.89 to get "x" by itself. Now you should get offset or "x" = ~88.5%, or .885

Hope this helped, math is cool!

ihymyly avatar Jul 03 '25 18:07 ihymyly