Yes, you're right, it's not the ratio between numbers, just the difference. I've checked the damage script just now.
Here's how it works, first the game calculates raw damage checking for any applied effects like bless that give you max damage or outputting a random number if there are no such effects and multiplying it by the crit factor if applicable. Then the damage is reduced by resistance if any (max resistance is 95% btw). Then the damage koeficient is applied which is the unit's attack * (any racial bonuses (which are all percentile hence multiplication) + holy rage bonus) - target's defense. And lastly the damage is multiplied by any damage factors of the unit. So basically the equation goes something like this:
damage = rawdamage * (1 - resistance / 100) * x * dfactor
x = (1 + k * 0.0333) if k > 0
x = 1 / (1 - k * 0.0333) if k < 0
x = 3 if k >= 60
x = 1/3 if k <= -60
|