AWESOME
@Dioxine - no offense taken, I just felt like dropping my two cents thats all, contributing to the pile. And you're right the --Armor thing is a better way to go with it. Im just so used to thinking in terms of multipliers.
The negative: unloading 10 laser shots at a barn wall will make 10 holes in the barn wall, but won't destroy it for easy access.
Even with Overpenetration allowed (ability to shoot through walls), the amount of damage the weapon does should still be applied to the things it hits.
So the laser rifle not only checks to see if it can shoot through the wall, it also hands that wall it's well deserved 60 damage too. Blows holes in walls (maybe) and pierces through them too.
Maybe the damage should be rolled first to figure out if it can do one, or other, or both.
Also the protective quality of everything it has hit should add up against the shot, and possibly reduce the damage caused too. Thats why I said its a fairly hairy issue to code (I smell a FOR loop, maybe a few of them).
And even then the proper way to do it would not just be to add up the Armor values of the things its hit, but to take the biggest and add a percentage of all the others to it. That way something that can shoot through a UFO wall isnt going to be stopped by 3 brick walls. (my suggestion for that just for initial testing is take the highest, add 50% of all of the obstacles encountered and penetrated already to determine if it still has enough juice to punch through the next --- when damage is dealt the damage value is reduced by 75% of the above accrued obstacle strength).
And well, if something is supposed to explode on impact, that negates overpenetration for it.