Armor Formula

正在查看此主题的用户

The current armor formula (I gather) is:
插入代码块:
damage = max(0, rawDamage - armor)

I am in favor of (and think it would be more realistic):
插入代码块:
damage = floor((rawDamage^2) / (rawDamage + armor))

This makes a nice, smooth, asymptotic graph.  Damage is reduced by a maximum of 'armor', if the damage is very high.  Lower amounts of damage are reduced by less, though you're still totally immune to damage that is much lower than your armor.  I'd love to post a couple Excel graphs, but alas, this forum won't host images.

It would prevent the 'invincibility' syndrome of wearing full plate, for example.  If you have 60 armor and are dealt 50 damage from a heavy 2-handed axe, currently, you take 0 damage.  In reality that should hurt a lot.  In the proposed armor model, you would take 50^2/(50+60) = 2500/110 = 22 damage.

Obviously, if the new damage model were implemented, all armor numbers would have to be revised - although, trivially, multiplying them all by 2 should do the trick (in that case, the axe would deal 14 damage), or even 3 (10 damage).

The point is that there is currently this weird discontinuity below which you are invincible and above which armor no longer offers increasing protection as it should (since a more powerful strike will cause the armor to absorb more energy by deforming or tearing more).

It's also possible to do a blend or weighted average of the two models, of course...  or use the old model for arrows/bolts and new model for melee/thrown/trample.


By the way, don't worry about pierce/blunt for now - those modifiers would just be multiplied into the 'armor' number.
 
Call me retarded, but I don't fully understand your model.  How did you come up with it?  What is "floor"?  And in the "original", why is there a comma?  Seems almost like a coordinate.
 
"floor"
floor(a) - the largest integer not greater than 'a'.
But I did't understand the model too.

And the current formula is more complicated.
插入代码块:
reducedDamage =rawDamage - (armor * soakFactor) 
damage =  reducedDamage * (1 -  (armor/100 * reductionFactor))
 
I am assuming the difference between base damage and raw damage is speed modifications, power strike, etc.

Rongar, I can understand your formula a lot better.
 
I am assuming the difference between base damage and raw damage is speed modifications, power strike, etc.
I have mistyped.  Base damage and raw damage should be the same. Raw damage is damage to unamored. It takes into account speed modifications, power strike. Corrected.
http://forums.taleworlds.com/index.php/topic,26790.msg670028.html#msg670028
that's it

 
后退
顶部 底部