What I had was based loosely on the Jotun deflector, but instead of upping hitpoints and power use I tried to apply a new HP Bonus based on current charge status:
As far as I can tell this wont work as 'hpBonus' is just a local variable, not the stat in the shield definition, right? I tried to look for a shield command that would parse the hpBonus variable into the stats for the shield, but those functions are pretty sparse, and seem more to do with reading shield stats than altering them.<ItemType UNID="&itKineticPhasedShield;"
name= "Kinetic Phased Shield"
level= "9"
value= "130000"
mass= "5000"
frequency= "rare"
unknownType= "&itUnknownAlienDevice;"
attributes= "Alien; MajorItem; Military"
description= "This alien shield generator has controls to adjust its strength."
>
<Image imageID="&rsItems1;" imageX="192" imageY="0" imageWidth="96" imageHeight="96"/>
<Shields
hitPoints= "100"
regen= "180"
depletionDelay= "150"
powerUse= "800"
weaponSuppress= "kinetic"
HPBonusPerCharge= "0"
powerBonusPerCharge="0"
maxCharges= "5"
/>
<Invoke installedOnly="true">
(block (charges chargesDelta newStrength maxCharges)
(setq charges (itmGetCharges gItem))
(setq maxCharges 5)
(if (ls charges maxCharges)
(setq chargesDelta 1)
(setq chargesDelta (subtract 0 maxCharges))
)
(if (eq charges 0)
(setq hpBonus "-30, 650, -30, 25, -30, 25, -30, 25, -30, 25, -30, 25")
(shpRechargeItem gSource gItem chargesDelta)
(objSendMessage gSource Nil (cat "Phase shield set to Ballistic" ))
)
(if (eq charges 1)
(setq hpBonus "-30, 25, -30, 650, -30, 25, -30, 25, -30, 25, -30, 25")
(shpRechargeItem gSource gItem chargesDelta)
(objSendMessage gSource Nil (cat "Phase shield set to Blast" ))
)
(if (eq charges 2)
(setq hpBonus "-30, 25, -30, 25, -30, 650, -30, 25, -30, 25, -30, 25")
(shpRechargeItem gSource gItem chargesDelta)
(objSendMessage gSource Nil (cat "Phase shield set to Thermo" ))
)
(if (eq charges 3)
(setq hpBonus "-30, 25, -30, 25, -30, 25, -30, 650, -30, 25, -30, 25")
(shpRechargeItem gSource gItem chargesDelta)
(objSendMessage gSource Nil (cat "Phase shield set to Plasma" ))
)
(if (eq charges 4)
(setq hpBonus "-30, 25, -30, 25, -30, 25, -30, 25, -30, 650, -30, 25")
(shpRechargeItem gSource gItem chargesDelta)
(objSendMessage gSource Nil (cat "Phase shield set to Nano" ))
)
(if (eq charges 5)
(setq hpBonus "-30, 25, -30, 25, -30, 25, -30, 25, -30, 25, -30, 650")
(shpRechargeItem gSource gItem chargesDelta)
(objSendMessage gSource Nil (cat "Phase shield set to Singularity" ))
)
)
</Invoke>
</ItemType>
Where I stopped was where I was about to add the 'weaponSuppress' change for each mode of the shield... but that too isn't a local variable, it's a shield stat.

Anyone got any ideas on this?