function findRootObject(%obj) { if (!isObject(%obj)) return -1; %ret = %obj; if (isObject(%obj.getObjectMount())) %ret = findRootObject(%obj.getObjectMount()); return %ret; } function deleteMountchain(%obj) { if (!isObject(%obj)) return; %count = %obj.getMountedObjectCount(); for (%i=%count; %i>=0; %i--) { if (isObject(%obj.getMountedObject(%i))) deleteMountchain(%obj.getMountedObject(%i)); } if (%obj.isMounted()) %obj.delete(); } function setMountChainDamage(%obj,%damagePercent) { if (!isObject(%obj)) return; %count = %obj.getMountedObjectCount(); for (%i=0; %i<%count; %i++) { if (isObject(%obj.getMountedObject(%i))) setMountChainDamage(%obj.getMountedObject(%i),%damagePercent); } %obj.setDamageLevel(%obj.getMaxDamage()*%damagePercent); }