@ Doctor J: I was thinking something like 5% jamming for full-auto or burst fire, less for semi-auto; it would depend on the weapon. Good point about the PHALANX-made weapons jamming -- they are indeed beta-weapons Would also be an excellent way of keeping the older "black powder" guns in the game, as backup weapons!
So you're looking into applying this 'per fire mode' as opposed to 'per bullet'. Okeh. Perhaps an average of one jam per twenty firings is still a might high, however. As a point of reference, the great board game "Squad Leader" started with a jam occurring on a roll of 12 with two six-sided dice, and modified the chance [mostly downward] as the game evolved. The 12 works out to be an average of one jam per 36 firings, or roughly 2.8%. This was higher for certain weapons, for example the failure rate of flamethrowers was 28%. Perhaps 2% for auto-fire and 1% for semi-auto, 3% for full-auto? Then again, this would be a good place for selective weapon balancing; cut the SMG down to size, for instance.
As a further thought, is the patch going to be applied so as to affect both reaction fire and normal fire? If it simplified the code base, i would be happy with it only taking effect on normal fire...
The next question is inevitably as to what happens with the weapon after a jam. Here are some ideas:
1) weapon is declared broken and removed from inventory [way harsh, but easy to do]
2) The weapon status becomes 'malfunction'. This would require that all firearms descriptions be amended to include a new status variable, as well as a decision on clearing/repairing. It also needs a way for users to check weapon status.
2a) weapon remains jammed for duration of mission, is automatically repaired upon return to base [still harsh, but easier to implement than following ideas]
2b) The weapon is automatically repaired after a certain number of turns. I don't yet have a suggestion as to how long this should be.
2c) The weapon carries the malfunction status until the soldier clears the jam by using his/her weapon skill. This is the most complex option to code, but forgiving to the player. It would require some modification to the user interface so the user can click on "Repair". At the end of the mission the weapon [if still broken] will have to be automatically repaired or automatically eliminated.