Instead of applying the Attribute in UnitData you could do a behavior, which is disabled if ShieldCurrent > 0
dunno if it is possible to make a unit "Mechanical" through a behavior, but i guess so
thus would make ArmorAttribute (armored and so on) and ShieldAttribute = none,
if you want ShieldAttribute = Light ie
make a behavior which is disabled if Shield==0 via validator :)
if it is not possible to change Attribute via Behaviors, you could also use EffectSet/EffectSwitch for the weapon, and a combined validator, checking for UnitType (as thus should all have same shield-type then) and IfShield>0
Instead of applying the Attribute in UnitData you could do a behavior, which is disabled if ShieldCurrent > 0 dunno if it is possible to make a unit "Mechanical" through a behavior, but i guess so
thus would make ArmorAttribute (armored and so on) and ShieldAttribute = none,
if you want ShieldAttribute = Light ie
make a behavior which is disabled if Shield==0 via validator :)
if it is not possible to change Attribute via Behaviors, you could also use EffectSet/EffectSwitch for the weapon, and a combined validator, checking for UnitType (as thus should all have same shield-type then) and IfShield>0