# Difference between revisions of "Talk:Weapons"

From Discworld MUD Wiki

(Looks correct to me.) |
|||

Line 13: | Line 13: | ||

:<pre> extra_dmg = base * (%enchant / (100 + %enchant)</pre> | :<pre> extra_dmg = base * (%enchant / (100 + %enchant)</pre> | ||

:Which is what is in the article. --[[User:Chat|Chat]] 14:14, 9 August 2009 (UTC) | :Which is what is in the article. --[[User:Chat|Chat]] 14:14, 9 August 2009 (UTC) | ||

+ | |||

+ | It's close. And probably close enough for _most_ integer math since the decimal bits get dropped off. But it's not right. Why not just leave it at the real formula so that it's right all the time? |

## Revision as of 08:54, 11 August 2009

The modification of damage formula for enchantments looks inconsistent with the the information in the distribution lib. Can the person who posted the formula cite their source?

- Indeed.

- std/weapon.c, lines 176-177:
tmp = val + (val * query_enchant()) / (query_max_enchant() + query_enchant());

- Subtract out the base damage:
extra_dmg = base * query_enchant() / (query_max_enchant() + query_enchant())

- Divide top and bottom by max_enchant gives:
extra_dmg = base * fraction_enchant / (1 + fraction_enchant)

- Then multiple top and bottom by 100 to use a percentage:
extra_dmg = base * (%enchant / (100 + %enchant)

- Which is what is in the article. --Chat 14:14, 9 August 2009 (UTC)

It's close. And probably close enough for _most_ integer math since the decimal bits get dropped off. But it's not right. Why not just leave it at the real formula so that it's right all the time?