The current combat simulation system is flawed in that it only considers 2 skills for all melee attacks: fighting and the relevant weapon skill. This has made meaningful studies of pain weapons and the enhancer staves difficult. In addition, unarmed delay in heavy armour is very dependent on armour skill, is not considered. The way this is implemented causes unarmed delay to be fractional on average (you have a chance of not lowering delay using your unarmed skill if you're in heavy armour), while the fsim module only considers time as an integer.
This patch sets all magic skills to the same level as the weapon skill and the armour skill equal to the fighting skill (roughly half weapon) during the simulation. It also calculates the average time per attack as a double instead of a long, outputting a decimal value as needed.
I don't have a recent checkout of the trunk currently, so this patch is to 0.5.0, which I did have laying around.
diff to 0.5.0
Should be used.
I want to improve on this further at some point in the near future (I'll probably start on this Sundayish, this week is kinda hectic). The interface for playing with fsim variables is pretty obtuse right now, with a few things being options in init.txt and anything not there being hard coded. I want to be able to call single fsim passes (as in a single set of skill levels), change stats and monster in game and provide a more detailed look at the equipment and conditions used (terrain type, enchantment durations, full equipment list, mutations).
I would love to get into contact with someone who understands the mechanics of auxiliary unarmed attacks, as I lack an understanding of their timing and would like to make sure that they are properly considered in the combat simulation.
I'd be happy to take more fsim patches.