If someone writes such a script, I will consider adding such an item (and removing the current armours with shields).
Okay, I gave it a try and made a hack to use the existing energy shield script for physical shields.
Attached are my changes: items_XCOMFILES.rul only lists what needs to be modified from a regular shield; scripts_XCOMFILES.rul has all the affected script parts. Search for 'Juku121' to find the changes, at the end of a line if I did something to it, and as markers at the beginning and end of code blocks for new code. If you need a full script file, tell me what you want changed (which you likely do because there are design choices involved) and I can make one.
How it works: pretty close to how Xenonauts did it. Shields have X amount of 'HP', damage first reduces that HP and then does its usual thing if there's anything left over. HP is displayed as ammo, which has the interesting side effects of consuming 1 HP per shield bash (edit2: temporarily, until the next time your shield is hit, then it resets) and destroying the shield if you try to bash with a broken shield. I imagine you also lose damaged shields proportional to how much damage they've taken, like the disposable guns in Piratez, but didn't test this.
Right now, these physical shields are hardcoded to type 4 (75% kinetic and concussive damage, 50% melee damage; psi, special and smoke damage bypass shields), only block hits to the front and the shield hand side, and flash the agent a (configurable) grey on hit. They can also be dual-wielded for super-defensive goodness. Yes, a frontal hit needs to go through
both shields.
If 8mono wants to weigh in, all the better. But I figure the 'raise shield' mechanic and temporary armour derived from
both armour and shield are a bit less intuitive.
Piratez also has physical shields completely blocking melee damage, and XCHR has a combination of the two, but I think both are a bit convoluted. YMMV.
Edit2: But if you really want the priming, accuracy penalties, damage reduction per shot limited to not just remaining HP but an armour value (that's what Arsenal Additions amounts to) and/or the 'shield dodge' mechanic, I imagine I can take a look at these, too.
Edit: As an aside, I found these lines in the scripts file:
# If it's special, choking, heat, or cold, just skip the rest
if or eq damaging_type 0 eq damaging_type 9 eq damaging_type 10 eq damaging_type 11;
But damage types 10 and 11 are EMP and electrical here. Maybe some conflicts with Piratez have crept in, or perhas it's intended and I'm just imagining things.