azerothcore / azerothcore-wotlk

Complete Open Source and Modular solution for MMO
http://www.azerothcore.org
GNU Affero General Public License v3.0
6.63k stars 2.65k forks source link

All damage/healing values ignore decimals #17192

Open ghost opened 1 year ago

ghost commented 1 year ago

Reported on CC: https://github.com/chromiecraft/chromiecraft/issues/6113

What client do you play on?

enUS

Faction

Both

Content Phase:

Generic

Current Behaviour

Every spell or ability with damage/healing modifiers from talents, spell power, attack power etc. has a chance to become a calculated value that is not a whole number. Spells and abilities cannot do split damage/healing values, so in this case, CC simply cuts off the decimals and the spells/abilities all do the lower end of the damage/healing. For example, Moonfire rank12 DOT damage ticks for 150 damage every 3sec by default, but receives a 13% spell power coefficient per tick (confirmed in multiple sources). With 310 spell power, this yields a net +40,3 damage, which means on CC every tick will do 190 damage and the 0.3 decimals get lost.

Expected Blizzlike Behaviour

On wotlk classic blizzard calculates with the decimal values in a way that a portion of the spell hits (or dot/hot ticks) will do the higher end of the damage/healing. For example, Moonfire rank12 DOT damage ticks for 150 damage every 3sec by default, but receives a 13% spell power coefficient per tick (confirmed in multiple sources). With 310 spell power, this yields a net +40,3 damage, which means on wotlk classic about 70% of the total ticks will do 190 damage, while about 30 % of the total tick count will do 191 damage. The decimals don't get lost.

Source

moonfire test done on moonfire wotlk classic (courtesy of Kerrik) calculated damage 190.3 (431 spell power)

thorns431 test done on thorns wotlk classic calculated damage 39,2 (431 spell power)

Steps to reproduce the problem

Make a druid .char level 70 .learn 26988 https://www.wowhead.com/wotlk/spell=26988/moonfire equip template gear for 310 spell power (ill add links later) observe damage values against random boars in hellfire peninsula (.tele hellfirepen)

Extra Notes

Decimals being handled wrong for possibly every spell/ability where calculated damage/healing is not a whole number. Less noticeable on abilities with a large damage/healing range. Note: Also affects health regeneration per tick from spirit.

AC rev. hash/commit

https://github.com/chromiecraft/azerothcore-wotlk/commit/280822cb8350213f374e59741506a607ce17dcaa

Operating system

Ubuntu 20.04

Modules

Customizations

None

Server

ChromieCraft

Tereneckla commented 1 year ago

Duplicate of #12387 (although it is more detailed)