Digging into all this further it appears that shields are not really holding the base health figures in self.MyShield and thus the UI has to constantly refer to the units blueprint. While for units that have their shields predefined in the blueprint or enhancement this is all good, but for units that are given shields via non standard means this creates a problem. How can the shields Max and current health figures be discovered if its not held in self.MyShields? Without which It's not possible to update Unitview.lua to show the shield max for that unit during a mouse over.
Edit: Ok figured it out...
Apparently the shields are being treated as entities (I forgot about this). Thus its possible to call on a units shield health via...
if self.MyShield then
WARN(' self.Shield: ', self.MyShield:GetMaxHealth() )
end
This its possible to alter the Unitview.lua to work with most custom shields that are not based off a units Blueprint such as the 4DFAF shield drones.
Modified snippet from Unitview.lua, that I will try out...
if not shield.ShieldMaxHealth then
if unitBp.Enhancements then
shield = unitBp.Enhancements[getEnh.GetEnhancements(info.entityId).Back]
elseif self.MyShield then
shield = self.MyShield:GetMaxHealth()
end
end
Side note: It could just as easily be unitviewdetail.lua as I'm not ever messed with either of these before and have yet to discover what each one does despite similar names and inferred purpose.