There is more to this macro, but I think posting the whole thing will just cause more confusion. It is the very end of the macro that I'm having issues with.
Code: Select all
[h, if(target != "Solid Object"), code : {
[broadcast("<b>" + getName(targetId) + "</b> " + targetSide + " armor takes...")]
[h : RamDamage(targetId, targetSide, round((rammerDM * collisionDamage) * multiTargetDamage, 0))]
[h : HazardCheckForRam(targetId, targetHC)]
[broadcast("<b>" + getName(targetId) + "</b> speed is changed to " + targetNewSpeed + "!")]
[h : setProperty("CurrentSpeed", targetNewSpeed, targetId)]
}]
[broadcast("<b>" + getName(rammerId) + "</b> " + rammerSide + " armor takes...")]
[h : RamDamage(rammerId, rammerSide, round((targetDM * collisionDamage) * multiRammerDamage, 0))]
[h : HazardCheckForRam(rammerId, rammerHC)]
[broadcast("<b>" + getName(rammerId) + "</b> speed is changed to " + rammerNewSpeed + "!")]
[h : setProperty("CurrentSpeed", rammerNewSpeed, rammerId)]
WHY???
Also appears that "setProperty" calls within the "HazardCheckForRam" are behaving the same way. The property that changes there does not always get set.
Again...WHY???