Half way there! Here is the Blueprint.lua script to merge the data that i needed...
##########################################################################################
## --Add drone shield max health into unit bp so UI can use it
##########################################################################################
function Custom_Drone_MaxHealth_Blueprint(bp)
if not bp then return end
local id = bp.BlueprintId
local bpDefense = original_blueprints.defense[id]
-- Check to see if the gUnit has a Cloak, BuildRate or Economy, if so return false
if bp.Intel.Cloak or bp.Defense.Shield.ShieldMaxHealth > 0 or bp.Enhancements.Shield or bp.Economy.MaintenanceConsumptionPerSecondEnergy then
return false
end
-- Unit Categories to exclude
local excludedCats = {
-- Primary unit retrictions, basicly anything that build, upgrades or makes ammo
'COMMAND','SUBCOMMANDER','ENGINEER','OMNI','FACTORY','ECONOMIC','SILO',
-- Custom unit restrictions
'DRONE','MINE','PHASING','TRANSFORMABLE',
-- Misc unit restrictions
'POD','SATELLITE','UNTARGETABLE','SHIELD','WALL','PROJECTILE','OPERATION','CIVILIAN','INSIGNIFICANTUNIT','UNSELECTABLE','BENIGN','PROP',
}
local cats = bp.Categories
for k, v in excludedCats do
if table.find(cats, v) then
return false
end
end
-- Calc the drone shield max health based on the unit cat
local droneShieldHealth = bp.Defense.MaxHealth
if table.find(bp.Categories ,'EXPERIMENTAL') then
droneShieldHealth = 10000
elseif table.find(bp.Categories ,'TECH3') then
droneShieldHealth = droneShieldHealth * 0.3
elseif table.find(bp.Categories ,'TECH2') then
droneShieldHealth = droneShieldHealth * 0.5
else
droneShieldHealth = droneShieldHealth * 0.75
end
WARN('Custom_Drone_MaxHealth_Blueprint for unit ID: ', bp.General.UnitName or 'no unit name found')
local unitBp = table.deepcopy(bp.Defense)
if unitBp then
unitBp.Merge = true
unitBp.DroneShieldMaxHealth = droneShieldHealth
bp.Defense = unitBp
end
end
Repr of a units "self"... Look for the "Defense" and then "DroneShieldMaxHealth"...
WARNING: - Defense: table: 11FB39D8
WARNING: - AirThreatLevel: 0
WARNING: - ArmorType: Normal
WARNING: - DroneShieldMaxHealth: 235.5
WARNING: - EconomyThreatLevel: 0
WARNING: - Health: 314
WARNING: - MaxHealth: 314
WARNING: - Merge: true
WARNING: - PersonalShieldThreat: 0
WARNING: - RegenRate: 0
WARNING: - Shield: table: 11FB36B8
WARNING: - RegenAssistMult: 1
WARNING: - ShieldSize: 0
WARNING: - SubThreatLevel: 0
WARNING: - SurfaceThreatLevel: 13
WARNING: - UnknownWeaponThreat: 0
WARNING: - Description: Heavy Tank
WARNING: - DesiredShooterCap: 3